Skip to content

Commit 808f866

Browse files
OmarAlJarrahclaude
andcommitted
feat: export reconnecting SSE client from http.sse
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent a5c3200 commit 808f866

2 files changed

Lines changed: 42 additions & 19 deletions

File tree

packages/dexpace-sdk-core/src/dexpace/sdk/core/http/sse/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
# Copyright (c) 2026 dexpace and Omar Aljarrah.
22
# Licensed under the MIT License. See LICENSE.md in the repository root for details.
33

4-
"""WHATWG-spec Server-Sent Events parsing."""
4+
"""WHATWG-spec Server-Sent Events parsing and reconnecting client."""
55

66
from __future__ import annotations
77

8+
from .connection import AsyncSseConnection, SseConnection
89
from .parser import AsyncSseStream, SseEvent, SseParser, parse_async_events, parse_events
910

1011
__all__ = [
12+
"AsyncSseConnection",
1113
"AsyncSseStream",
14+
"SseConnection",
1215
"SseEvent",
1316
"SseParser",
1417
"parse_async_events",

tools/surface_baseline.json

Lines changed: 38 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -736,11 +736,26 @@
736736
}
737737
}
738738
},
739+
"dexpace.sdk.core.http.sse.connection": {
740+
"AsyncSseConnection": {
741+
"bases": [],
742+
"methods": {
743+
"aclose": "async aclose(self) -> None"
744+
}
745+
},
746+
"SseConnection": {
747+
"bases": [],
748+
"methods": {
749+
"close": "close(self) -> None"
750+
}
751+
}
752+
},
739753
"dexpace.sdk.core.http.sse.parser": {
740754
"AsyncSseStream": {
741755
"bases": [],
742756
"methods": {
743-
"aclose": "async aclose(self) -> None"
757+
"aclose": "async aclose(self) -> None",
758+
"retry": "retry(self) -> int | None"
744759
}
745760
},
746761
"SseEvent": {
@@ -752,7 +767,8 @@
752767
"methods": {
753768
"drain": "drain(self) -> Iterator[SseEvent]",
754769
"end": "end(self) -> Iterator[SseEvent]",
755-
"feed": "feed(self, chunk: bytes) -> None"
770+
"feed": "feed(self, chunk: bytes) -> None",
771+
"retry": "retry(self) -> int | None"
756772
}
757773
},
758774
"parse_async_events": "parse_async_events(chunks: AsyncIterable[bytes]) -> AsyncSseStream",
@@ -968,27 +984,11 @@
968984
"by_page": "async by_page(self) -> AsyncIterator[Page[T]]"
969985
}
970986
},
971-
"AsyncPipelineLike": {
972-
"bases": [
973-
"Protocol"
974-
],
975-
"methods": {
976-
"run": "async run(self, request: Request, dispatch: DispatchContext) -> AsyncResponse"
977-
}
978-
},
979987
"Paginator": {
980988
"bases": [],
981989
"methods": {
982990
"by_page": "by_page(self) -> Iterator[Page[T]]"
983991
}
984-
},
985-
"SyncPipelineLike": {
986-
"bases": [
987-
"Protocol"
988-
],
989-
"methods": {
990-
"run": "run(self, request: Request, dispatch: DispatchContext) -> Response"
991-
}
992992
}
993993
},
994994
"dexpace.sdk.core.pagination.strategy": {
@@ -1070,6 +1070,24 @@
10701070
"default_async_pipeline": "default_async_pipeline(client: AsyncHttpClient, *, redirect: AsyncRedirectPolicy | None, idempotency: AsyncIdempotencyPolicy | None, retry: AsyncRetryPolicy | None, set_date: AsyncSetDatePolicy | None, client_identity: AsyncClientIdentityPolicy | None, auth: AsyncPolicy | None) -> AsyncStagedPipelineBuilder",
10711071
"default_pipeline": "default_pipeline(client: HttpClient, *, redirect: RedirectPolicy | None, idempotency: IdempotencyPolicy | None, retry: RetryPolicy | None, set_date: SetDatePolicy | None, client_identity: ClientIdentityPolicy | None, auth: Policy | None, logging: LoggingPolicy | None, tracing: TracingPolicy | None) -> StagedPipelineBuilder"
10721072
},
1073+
"dexpace.sdk.core.pipeline.dispatch": {
1074+
"AsyncPipelineLike": {
1075+
"bases": [
1076+
"Protocol"
1077+
],
1078+
"methods": {
1079+
"run": "async run(self, request: Request, dispatch: DispatchContext) -> AsyncResponse"
1080+
}
1081+
},
1082+
"SyncPipelineLike": {
1083+
"bases": [
1084+
"Protocol"
1085+
],
1086+
"methods": {
1087+
"run": "run(self, request: Request, dispatch: DispatchContext) -> Response"
1088+
}
1089+
}
1090+
},
10731091
"dexpace.sdk.core.pipeline.pipeline": {
10741092
"Pipeline": {
10751093
"bases": [],
@@ -1492,7 +1510,9 @@
14921510
"Status"
14931511
],
14941512
"dexpace.sdk.core.http.sse": [
1513+
"AsyncSseConnection",
14951514
"AsyncSseStream",
1515+
"SseConnection",
14961516
"SseEvent",
14971517
"SseParser",
14981518
"parse_async_events",

0 commit comments

Comments
 (0)