This commit is contained in:
Ravivarman R 2026-04-13 18:48:25 +00:00 committed by GitHub
commit ab4b339498
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 64 additions and 2 deletions

View File

@ -1,4 +1,4 @@
from ollama._client import AsyncClient, Client
from ollama._client import AsyncClient, Client, __version__
from ollama._types import (
ChatResponse,
EmbeddingsResponse,
@ -23,6 +23,8 @@ __all__ = [
'AsyncClient',
'ChatResponse',
'Client',
'__version__',
'version',
'EmbedResponse',
'EmbeddingsResponse',
'GenerateResponse',
@ -55,5 +57,6 @@ list = _client.list
copy = _client.copy
show = _client.show
ps = _client.ps
version = _client.version
web_search = _client.web_search
web_fetch = _client.web_fetch

View File

@ -628,6 +628,13 @@ class Client(BaseClient):
'GET',
'/api/tags',
)
def version(self) -> str:
r = self._request_raw(
'GET',
'/api/version'
)
return r.json().get('version', '')
def delete(self, model: str) -> StatusResponse:
r = self._request_raw(
@ -1270,6 +1277,14 @@ class AsyncClient(BaseClient):
'/api/tags',
)
async def version(self) -> str:
r = await self._request_raw(
'GET',
'/api/version',
)
return r.json().get('version', '')
async def delete(self, model: str) -> StatusResponse:
r = await self._request_raw(
'DELETE',

View File

@ -5,7 +5,7 @@ import re
import tempfile
from pathlib import Path
from typing import Any
import ollama
import pytest
from httpx import Response as httpxResponse
from pydantic import BaseModel
@ -99,6 +99,50 @@ def test_client_chat_with_logprobs(httpserver: HTTPServer):
assert response['logprobs'][0]['top_logprobs'][1]['token'] == 'Hi'
def test_package_version():
assert hasattr(ollama, '__version__')
assert isinstance(ollama.__version__, str)
assert ollama.__version__ != ''
assert callable(ollama.version)
assert hasattr(ollama, 'version')
def test_client_version_missing_field(httpserver: HTTPServer):
httpserver.expect_ordered_request(
'/api/version',
method='GET',
).respond_with_json({})
client = Client(httpserver.url_for('/'))
response = client.version()
assert response == ''
async def test_async_client_version(httpserver: HTTPServer):
httpserver.expect_ordered_request(
'/api/version',
method='GET',
).respond_with_json(
{
'version': '0.1.0',
}
)
client = AsyncClient(httpserver.url_for('/'))
response = await client.version()
assert response == '0.1.0'
assert isinstance(response, str)
async def test_async_client_version_missing_field(httpserver: HTTPServer):
httpserver.expect_ordered_request(
'/api/version',
method='GET',
).respond_with_json({})
client = AsyncClient(httpserver.url_for('/'))
response = await client.version()
assert response == ''
def test_client_chat_stream(httpserver: HTTPServer):
def stream_handler(_: Request):
def generate():