diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 85dab35a..689700e6 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.17.6" + ".": "0.17.7" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 85df8598..d8b537bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,20 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## 0.17.7 (2026-02-24) + +Full Changelog: [v0.17.6...v0.17.7](https://github.com/openlayer-ai/openlayer-python/compare/v0.17.6...v0.17.7) + +### Bug Fixes + +* **open-8974:** detect all tool types in Google ADK agent traces ([0ee64fe](https://github.com/openlayer-ai/openlayer-python/commit/0ee64fe46b1adf5eebcb9cd48fab052c730f2b42)) + + +### Chores + +* **internal:** add request options to SSE classes ([a60c8e4](https://github.com/openlayer-ai/openlayer-python/commit/a60c8e4d4502df796d36390564017743d1c74459)) +* **internal:** make `test_proxy_environment_variables` more resilient ([428cd95](https://github.com/openlayer-ai/openlayer-python/commit/428cd95607584130c4341e573dedcf7363d4aa3a)) + ## 0.17.6 (2026-02-20) Full Changelog: [v0.17.5...v0.17.6](https://github.com/openlayer-ai/openlayer-python/compare/v0.17.5...v0.17.6) diff --git a/pyproject.toml b/pyproject.toml index 1bed4c8a..7aaa29a6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "openlayer" -version = "0.17.6" +version = "0.17.7" description = "The official Python library for the openlayer API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/openlayer/_response.py b/src/openlayer/_response.py index ce4b8870..047b478c 100644 --- a/src/openlayer/_response.py +++ b/src/openlayer/_response.py @@ -152,6 +152,7 @@ def _parse(self, *, to: type[_T] | None = None) -> R | _T: ), response=self.http_response, client=cast(Any, self._client), + options=self._options, ), ) @@ -162,6 +163,7 @@ def _parse(self, *, to: type[_T] | None = None) -> R | _T: cast_to=extract_stream_chunk_type(self._stream_cls), response=self.http_response, client=cast(Any, self._client), + options=self._options, ), ) @@ -175,6 +177,7 @@ def _parse(self, *, to: type[_T] | None = None) -> R | _T: cast_to=cast_to, response=self.http_response, client=cast(Any, self._client), + options=self._options, ), ) diff --git a/src/openlayer/_streaming.py b/src/openlayer/_streaming.py index 61391b6e..12a2f027 100644 --- a/src/openlayer/_streaming.py +++ b/src/openlayer/_streaming.py @@ -4,7 +4,7 @@ import json import inspect from types import TracebackType -from typing import TYPE_CHECKING, Any, Generic, TypeVar, Iterator, AsyncIterator, cast +from typing import TYPE_CHECKING, Any, Generic, TypeVar, Iterator, Optional, AsyncIterator, cast from typing_extensions import Self, Protocol, TypeGuard, override, get_origin, runtime_checkable import httpx @@ -13,6 +13,7 @@ if TYPE_CHECKING: from ._client import Openlayer, AsyncOpenlayer + from ._models import FinalRequestOptions _T = TypeVar("_T") @@ -22,7 +23,7 @@ class Stream(Generic[_T]): """Provides the core interface to iterate over a synchronous stream response.""" response: httpx.Response - + _options: Optional[FinalRequestOptions] = None _decoder: SSEBytesDecoder def __init__( @@ -31,10 +32,12 @@ def __init__( cast_to: type[_T], response: httpx.Response, client: Openlayer, + options: Optional[FinalRequestOptions] = None, ) -> None: self.response = response self._cast_to = cast_to self._client = client + self._options = options self._decoder = client._make_sse_decoder() self._iterator = self.__stream__() @@ -85,7 +88,7 @@ class AsyncStream(Generic[_T]): """Provides the core interface to iterate over an asynchronous stream response.""" response: httpx.Response - + _options: Optional[FinalRequestOptions] = None _decoder: SSEDecoder | SSEBytesDecoder def __init__( @@ -94,10 +97,12 @@ def __init__( cast_to: type[_T], response: httpx.Response, client: AsyncOpenlayer, + options: Optional[FinalRequestOptions] = None, ) -> None: self.response = response self._cast_to = cast_to self._client = client + self._options = options self._decoder = client._make_sse_decoder() self._iterator = self.__stream__() diff --git a/src/openlayer/_version.py b/src/openlayer/_version.py index b7982fb5..e57501a2 100644 --- a/src/openlayer/_version.py +++ b/src/openlayer/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "openlayer" -__version__ = "0.17.6" # x-release-please-version +__version__ = "0.17.7" # x-release-please-version diff --git a/tests/test_client.py b/tests/test_client.py index bace02bf..72c22a67 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -1028,6 +1028,8 @@ def retry_handler(_request: httpx.Request) -> httpx.Response: def test_proxy_environment_variables(self, monkeypatch: pytest.MonkeyPatch) -> None: # Test that the proxy environment variables are set correctly monkeypatch.setenv("HTTPS_PROXY", "https://example.org") + # Delete in case our environment has this set + monkeypatch.delenv("HTTP_PROXY", raising=False) client = DefaultHttpxClient() @@ -2015,6 +2017,8 @@ async def test_get_platform(self) -> None: async def test_proxy_environment_variables(self, monkeypatch: pytest.MonkeyPatch) -> None: # Test that the proxy environment variables are set correctly monkeypatch.setenv("HTTPS_PROXY", "https://example.org") + # Delete in case our environment has this set + monkeypatch.delenv("HTTP_PROXY", raising=False) client = DefaultAsyncHttpxClient()