From 2b2d41017ffa2a0d458c34b3d07cf158523326af Mon Sep 17 00:00:00 2001 From: Joe Date: Tue, 31 Mar 2026 12:40:14 -0400 Subject: [PATCH 1/3] python: fix up steaming response got cut off --- packages/code-storage-python/pierre_storage/repo.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/code-storage-python/pierre_storage/repo.py b/packages/code-storage-python/pierre_storage/repo.py index 945510f..5a73df7 100644 --- a/packages/code-storage-python/pierre_storage/repo.py +++ b/packages/code-storage-python/pierre_storage/repo.py @@ -51,15 +51,18 @@ class StreamingResponse: """Stream wrapper that keeps the HTTP client alive until closed.""" - def __init__(self, response: httpx.Response, client: httpx.AsyncClient) -> None: + def __init__(self, response: httpx.Response, client: httpx.AsyncClient, stream_context: Any = None) -> None: self._response = response self._client = client + self._stream_context = stream_context def __getattr__(self, name: str) -> Any: return getattr(self._response, name) async def aclose(self) -> None: await self._response.aclose() + if self._stream_context is not None: + await self._stream_context.__aexit__(None, None, None) await self._client.aclose() async def __aenter__(self) -> "StreamingResponse": @@ -264,7 +267,7 @@ async def get_file_stream( await client.aclose() raise - return StreamingResponse(response, client) + return StreamingResponse(response, client, stream_context) async def get_archive_stream( self, @@ -324,7 +327,7 @@ async def get_archive_stream( await client.aclose() raise - return StreamingResponse(response, client) + return StreamingResponse(response, client, stream_context) async def list_files( self, From 87436be5c8dd4a3b9206479cd906564482aa7b1d Mon Sep 17 00:00:00 2001 From: Joe Date: Tue, 31 Mar 2026 13:25:58 -0400 Subject: [PATCH 2/3] More concrete type --- packages/code-storage-python/pierre_storage/repo.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/code-storage-python/pierre_storage/repo.py b/packages/code-storage-python/pierre_storage/repo.py index 5a73df7..f49248a 100644 --- a/packages/code-storage-python/pierre_storage/repo.py +++ b/packages/code-storage-python/pierre_storage/repo.py @@ -1,5 +1,6 @@ """Repository implementation for Pierre Git Storage SDK.""" +import contextlib import warnings from datetime import datetime, timezone from types import TracebackType @@ -51,7 +52,7 @@ class StreamingResponse: """Stream wrapper that keeps the HTTP client alive until closed.""" - def __init__(self, response: httpx.Response, client: httpx.AsyncClient, stream_context: Any = None) -> None: + def __init__(self, response: httpx.Response, client: httpx.AsyncClient, stream_context: Optional[contextlib.AbstractAsyncContextManager] = None) -> None: self._response = response self._client = client self._stream_context = stream_context From b91ee7ba5563c7295cf1830b95e56c64405302e8 Mon Sep 17 00:00:00 2001 From: Joe Date: Tue, 31 Mar 2026 13:31:32 -0400 Subject: [PATCH 3/3] python: bump version to 1.4.4 for streaming fix release Co-Authored-By: Claude Opus 4.6 (1M context) --- packages/code-storage-python/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/code-storage-python/pyproject.toml b/packages/code-storage-python/pyproject.toml index 228736a..bd1640e 100644 --- a/packages/code-storage-python/pyproject.toml +++ b/packages/code-storage-python/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "pierre-storage" -version = "1.4.3" +version = "1.4.4" description = "Pierre Git Storage SDK for Python" readme = "README.md" license = "MIT"