datacurrent 1.0.0__tar.gz → 1.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. {datacurrent-1.0.0 → datacurrent-1.0.1}/CHANGELOG.md +27 -0
  2. {datacurrent-1.0.0/datacurrent.egg-info → datacurrent-1.0.1}/PKG-INFO +54 -5
  3. {datacurrent-1.0.0 → datacurrent-1.0.1}/README.md +48 -4
  4. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/_version.py +1 -1
  5. {datacurrent-1.0.0 → datacurrent-1.0.1/datacurrent.egg-info}/PKG-INFO +54 -5
  6. {datacurrent-1.0.0 → datacurrent-1.0.1}/pyproject.toml +7 -0
  7. {datacurrent-1.0.0 → datacurrent-1.0.1}/LICENSE +0 -0
  8. {datacurrent-1.0.0 → datacurrent-1.0.1}/MANIFEST.in +0 -0
  9. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/__init__.py +0 -0
  10. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/buffering/__init__.py +0 -0
  11. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/buffering/backpressure.py +0 -0
  12. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/buffering/queue.py +0 -0
  13. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/concurrency/__init__.py +0 -0
  14. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/concurrency/limits.py +0 -0
  15. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/concurrency/tasks.py +0 -0
  16. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/config.py +0 -0
  17. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/core/__init__.py +0 -0
  18. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/core/_util.py +0 -0
  19. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/core/lifecycle.py +0 -0
  20. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/core/operators.py +0 -0
  21. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/core/pipeline.py +0 -0
  22. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/core/sink.py +0 -0
  23. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/core/stream.py +0 -0
  24. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/events/__init__.py +0 -0
  25. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/events/bus.py +0 -0
  26. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/events/routing.py +0 -0
  27. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/events/subscriptions.py +0 -0
  28. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/exceptions.py +0 -0
  29. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/integrations/__init__.py +0 -0
  30. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/integrations/fastapi.py +0 -0
  31. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/integrations/starlette.py +0 -0
  32. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/observability/__init__.py +0 -0
  33. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/observability/logging.py +0 -0
  34. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/observability/metrics.py +0 -0
  35. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/py.typed +0 -0
  36. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/reliability/__init__.py +0 -0
  37. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/reliability/retry.py +0 -0
  38. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/reliability/timeout.py +0 -0
  39. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/transports/__init__.py +0 -0
  40. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/transports/_deps.py +0 -0
  41. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/transports/base.py +0 -0
  42. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/transports/http.py +0 -0
  43. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/transports/memory.py +0 -0
  44. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/transports/sse.py +0 -0
  45. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent/transports/websocket.py +0 -0
  46. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent.egg-info/SOURCES.txt +0 -0
  47. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent.egg-info/dependency_links.txt +0 -0
  48. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent.egg-info/requires.txt +0 -0
  49. {datacurrent-1.0.0 → datacurrent-1.0.1}/datacurrent.egg-info/top_level.txt +0 -0
  50. {datacurrent-1.0.0 → datacurrent-1.0.1}/setup.cfg +0 -0
@@ -4,6 +4,33 @@ All notable changes to DataCurrent are documented here. The format follows
4
4
  [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project uses
5
5
  [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [1.0.1] — 2026-11-13
8
+
9
+ Documentation, metadata and packaging release. The public API is unchanged.
10
+
11
+ ### Added
12
+
13
+ - `CONTRIBUTING.md`: development setup, the check suite, and the release
14
+ process, including PyPI trusted publishing.
15
+ - A "Documented examples" section in the README that maps each of the sixteen
16
+ runnable scripts to the feature it demonstrates.
17
+ - `[project.urls]` in `pyproject.toml`: homepage and repository (GitHub), issues,
18
+ changelog and PyPI.
19
+ - A GitHub Actions release workflow that publishes to PyPI over OIDC, so
20
+ uploads carry a signed provenance attestation.
21
+
22
+ ### Fixed
23
+
24
+ - The FastAPI example documented `uvicorn examples.10_fastapi_integration:app`,
25
+ which is not a runnable module path. It now shows the verified commands.
26
+
27
+ ### Changed
28
+
29
+ - README links to the GitHub repository, the PyPI homepage and the examples
30
+ directory.
31
+ - The "not published to PyPI" note was removed; the package is on PyPI and this
32
+ is the current release.
33
+
7
34
  ## [1.0.0] — 2026-11-08
8
35
 
9
36
  First stable release. Built and verified locally; not published to PyPI.
@@ -1,9 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datacurrent
3
- Version: 1.0.0
3
+ Version: 1.0.1
4
4
  Summary: Python streaming, made simple: async streams, operators, backpressure and real-time transports.
5
5
  Author: DataCurrent contributors
6
6
  License: MIT
7
+ Project-URL: Homepage, https://github.com/CoderProandTester/datacurrent
8
+ Project-URL: Repository, https://github.com/CoderProandTester/datacurrent
9
+ Project-URL: Issues, https://github.com/CoderProandTester/datacurrent/issues
10
+ Project-URL: Changelog, https://github.com/CoderProandTester/datacurrent/blob/main/CHANGELOG.md
11
+ Project-URL: PyPI, https://pypi.org/project/datacurrent/
7
12
  Keywords: streaming,async,asyncio,real-time,data pipeline,stream processing,backpressure,reactive,event bus,pubsub,websocket,server-sent events,http streaming,concurrency,observability,http,https
8
13
  Classifier: Development Status :: 5 - Production/Stable
9
14
  Classifier: Framework :: AsyncIO
@@ -52,7 +57,15 @@ DataCurrent is a production-ready asynchronous streaming library. It gives you
52
57
  one consistent API for lists, async generators, queues, WebSockets, Server-Sent
53
58
  Events and streaming HTTP responses.
54
59
 
55
- **Version 1.0.0 · Stable / Production**
60
+ **Version 1.0.1 · Stable / Production**
61
+
62
+ [![PyPI version](https://img.shields.io/pypi/v/datacurrent.svg)](https://pypi.org/project/datacurrent/)
63
+ [![Python versions](https://img.shields.io/pypi/pyversions/datacurrent.svg)](https://pypi.org/project/datacurrent/)
64
+ [![GitHub](https://img.shields.io/badge/GitHub-CoderProandTester%2Fdatacurrent-181717)](https://github.com/CoderProandTester/datacurrent)
65
+
66
+ - **GitHub repository:** <https://github.com/CoderProandTester/datacurrent>
67
+ - **PyPI homepage:** <https://pypi.org/project/datacurrent/>
68
+ - **Examples:** <https://github.com/CoderProandTester/datacurrent/tree/main/examples>
56
69
 
57
70
  - 279 tests passing, with 100% line and branch coverage.
58
71
  - Required networking dependencies install automatically.
@@ -65,7 +78,10 @@ pip install datacurrent
65
78
  ```
66
79
 
67
80
  Python 3.11 or newer is required. `httpx` and `websockets` are installed with the
68
- package, so HTTP streaming, SSE and WebSocket clients work immediately.
81
+ package, so HTTP streaming, SSE and WebSocket clients work immediately. The
82
+ [`examples/`](https://github.com/CoderProandTester/datacurrent/tree/main/examples)
83
+ directory contains 16 runnable scripts, from a hello-world stream to a WebSocket
84
+ server.
69
85
 
70
86
  Framework helpers are optional:
71
87
 
@@ -224,6 +240,39 @@ stream = Stream.from_factory(connect_and_read).retry(
224
240
  Retries require a replayable source, such as a factory or a list. A consumed
225
241
  generator raises `NonReplayableStreamError` instead of silently restarting.
226
242
 
243
+ ## Examples
244
+
245
+ Sixteen runnable scripts live in [`examples/`](https://github.com/CoderProandTester/datacurrent/tree/main/examples).
246
+ Each one is self-contained and is executed by the test suite, so the output you
247
+ see is the output the project verifies.
248
+
249
+ ```bash
250
+ python examples/01_hello_stream.py
251
+ python -m pytest tests/unit/test_examples.py -q # run them all
252
+ ```
253
+
254
+ | Script | What it demonstrates |
255
+ |---|---|
256
+ | `01_hello_stream.py` | Creating a stream, iterating it, `tap` and terminal operations |
257
+ | `02_transformations.py` | `filter`, `map`, `distinct`, `batch`, `window`, `reduce`, `enumerate` |
258
+ | `03_large_dataset.py` | 100,000 records streamed in batches with bounded memory |
259
+ | `04_filter_events.py` | `EventBus` wildcard topics and multiple handlers |
260
+ | `05_multi_subscriber.py` | `Channel` fan-out to three independent consumers |
261
+ | `06_websocket_client.py` | `WebSocketStream` JSON send/receive against a local echo server |
262
+ | `07_websocket_server.py` | Broadcasting a `Channel` to connected WebSocket clients |
263
+ | `08_sse_client.py` | `SSEStream` event ids, event types and JSON payloads |
264
+ | `09_http_streaming.py` | `HTTPStream` line iteration and raw body streaming |
265
+ | `10_fastapi_integration.py` | Serving a DataCurrent stream as a FastAPI SSE endpoint |
266
+ | `11_backpressure.py` | Bounded queues, producer suspension and counted drops |
267
+ | `12_concurrent_processing.py` | Bounded concurrency with order preserved |
268
+ | `13_retry_recovery.py` | `RetryPolicy`, `recover` and replayable sources |
269
+ | `14_custom_transport.py` | Implementing `StreamTransport` for a custom protocol |
270
+ | `15_realtime_notifications.py` | Routing one event to WebSocket and email consumers |
271
+ | `16_event_pipeline.py` | End-to-end event filtering, mapping and batching |
272
+
273
+ `examples/_servers.py` holds the local HTTP/SSE test servers the networking
274
+ examples use; it is not an example itself.
275
+
227
276
  ## Why DataCurrent
228
277
 
229
278
  - One model for iterables, queues, HTTP, SSE and WebSockets.
@@ -242,8 +291,8 @@ in-process streaming layer that works without any of them.
242
291
 
243
292
  - Python 3.11+ on asyncio; no Trio or AnyIO backend.
244
293
  - In-memory `Channel` and `EventBus` delivery is at most once.
245
- - No durable broker adapters or OpenTelemetry exporter in 1.0.0.
246
- - Not published to PyPI; the project name is provisional.
294
+ - No durable broker adapters or OpenTelemetry exporter in this release.
295
+ - The project name is provisional pending trademark clearance.
247
296
 
248
297
  ## License
249
298
 
@@ -6,7 +6,15 @@ DataCurrent is a production-ready asynchronous streaming library. It gives you
6
6
  one consistent API for lists, async generators, queues, WebSockets, Server-Sent
7
7
  Events and streaming HTTP responses.
8
8
 
9
- **Version 1.0.0 · Stable / Production**
9
+ **Version 1.0.1 · Stable / Production**
10
+
11
+ [![PyPI version](https://img.shields.io/pypi/v/datacurrent.svg)](https://pypi.org/project/datacurrent/)
12
+ [![Python versions](https://img.shields.io/pypi/pyversions/datacurrent.svg)](https://pypi.org/project/datacurrent/)
13
+ [![GitHub](https://img.shields.io/badge/GitHub-CoderProandTester%2Fdatacurrent-181717)](https://github.com/CoderProandTester/datacurrent)
14
+
15
+ - **GitHub repository:** <https://github.com/CoderProandTester/datacurrent>
16
+ - **PyPI homepage:** <https://pypi.org/project/datacurrent/>
17
+ - **Examples:** <https://github.com/CoderProandTester/datacurrent/tree/main/examples>
10
18
 
11
19
  - 279 tests passing, with 100% line and branch coverage.
12
20
  - Required networking dependencies install automatically.
@@ -19,7 +27,10 @@ pip install datacurrent
19
27
  ```
20
28
 
21
29
  Python 3.11 or newer is required. `httpx` and `websockets` are installed with the
22
- package, so HTTP streaming, SSE and WebSocket clients work immediately.
30
+ package, so HTTP streaming, SSE and WebSocket clients work immediately. The
31
+ [`examples/`](https://github.com/CoderProandTester/datacurrent/tree/main/examples)
32
+ directory contains 16 runnable scripts, from a hello-world stream to a WebSocket
33
+ server.
23
34
 
24
35
  Framework helpers are optional:
25
36
 
@@ -178,6 +189,39 @@ stream = Stream.from_factory(connect_and_read).retry(
178
189
  Retries require a replayable source, such as a factory or a list. A consumed
179
190
  generator raises `NonReplayableStreamError` instead of silently restarting.
180
191
 
192
+ ## Examples
193
+
194
+ Sixteen runnable scripts live in [`examples/`](https://github.com/CoderProandTester/datacurrent/tree/main/examples).
195
+ Each one is self-contained and is executed by the test suite, so the output you
196
+ see is the output the project verifies.
197
+
198
+ ```bash
199
+ python examples/01_hello_stream.py
200
+ python -m pytest tests/unit/test_examples.py -q # run them all
201
+ ```
202
+
203
+ | Script | What it demonstrates |
204
+ |---|---|
205
+ | `01_hello_stream.py` | Creating a stream, iterating it, `tap` and terminal operations |
206
+ | `02_transformations.py` | `filter`, `map`, `distinct`, `batch`, `window`, `reduce`, `enumerate` |
207
+ | `03_large_dataset.py` | 100,000 records streamed in batches with bounded memory |
208
+ | `04_filter_events.py` | `EventBus` wildcard topics and multiple handlers |
209
+ | `05_multi_subscriber.py` | `Channel` fan-out to three independent consumers |
210
+ | `06_websocket_client.py` | `WebSocketStream` JSON send/receive against a local echo server |
211
+ | `07_websocket_server.py` | Broadcasting a `Channel` to connected WebSocket clients |
212
+ | `08_sse_client.py` | `SSEStream` event ids, event types and JSON payloads |
213
+ | `09_http_streaming.py` | `HTTPStream` line iteration and raw body streaming |
214
+ | `10_fastapi_integration.py` | Serving a DataCurrent stream as a FastAPI SSE endpoint |
215
+ | `11_backpressure.py` | Bounded queues, producer suspension and counted drops |
216
+ | `12_concurrent_processing.py` | Bounded concurrency with order preserved |
217
+ | `13_retry_recovery.py` | `RetryPolicy`, `recover` and replayable sources |
218
+ | `14_custom_transport.py` | Implementing `StreamTransport` for a custom protocol |
219
+ | `15_realtime_notifications.py` | Routing one event to WebSocket and email consumers |
220
+ | `16_event_pipeline.py` | End-to-end event filtering, mapping and batching |
221
+
222
+ `examples/_servers.py` holds the local HTTP/SSE test servers the networking
223
+ examples use; it is not an example itself.
224
+
181
225
  ## Why DataCurrent
182
226
 
183
227
  - One model for iterables, queues, HTTP, SSE and WebSockets.
@@ -196,8 +240,8 @@ in-process streaming layer that works without any of them.
196
240
 
197
241
  - Python 3.11+ on asyncio; no Trio or AnyIO backend.
198
242
  - In-memory `Channel` and `EventBus` delivery is at most once.
199
- - No durable broker adapters or OpenTelemetry exporter in 1.0.0.
200
- - Not published to PyPI; the project name is provisional.
243
+ - No durable broker adapters or OpenTelemetry exporter in this release.
244
+ - The project name is provisional pending trademark clearance.
201
245
 
202
246
  ## License
203
247
 
@@ -2,5 +2,5 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- __version__ = "1.0.0"
5
+ __version__ = "1.0.1"
6
6
  VERSION = tuple(int(part) for part in __version__.split("."))
@@ -1,9 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datacurrent
3
- Version: 1.0.0
3
+ Version: 1.0.1
4
4
  Summary: Python streaming, made simple: async streams, operators, backpressure and real-time transports.
5
5
  Author: DataCurrent contributors
6
6
  License: MIT
7
+ Project-URL: Homepage, https://github.com/CoderProandTester/datacurrent
8
+ Project-URL: Repository, https://github.com/CoderProandTester/datacurrent
9
+ Project-URL: Issues, https://github.com/CoderProandTester/datacurrent/issues
10
+ Project-URL: Changelog, https://github.com/CoderProandTester/datacurrent/blob/main/CHANGELOG.md
11
+ Project-URL: PyPI, https://pypi.org/project/datacurrent/
7
12
  Keywords: streaming,async,asyncio,real-time,data pipeline,stream processing,backpressure,reactive,event bus,pubsub,websocket,server-sent events,http streaming,concurrency,observability,http,https
8
13
  Classifier: Development Status :: 5 - Production/Stable
9
14
  Classifier: Framework :: AsyncIO
@@ -52,7 +57,15 @@ DataCurrent is a production-ready asynchronous streaming library. It gives you
52
57
  one consistent API for lists, async generators, queues, WebSockets, Server-Sent
53
58
  Events and streaming HTTP responses.
54
59
 
55
- **Version 1.0.0 · Stable / Production**
60
+ **Version 1.0.1 · Stable / Production**
61
+
62
+ [![PyPI version](https://img.shields.io/pypi/v/datacurrent.svg)](https://pypi.org/project/datacurrent/)
63
+ [![Python versions](https://img.shields.io/pypi/pyversions/datacurrent.svg)](https://pypi.org/project/datacurrent/)
64
+ [![GitHub](https://img.shields.io/badge/GitHub-CoderProandTester%2Fdatacurrent-181717)](https://github.com/CoderProandTester/datacurrent)
65
+
66
+ - **GitHub repository:** <https://github.com/CoderProandTester/datacurrent>
67
+ - **PyPI homepage:** <https://pypi.org/project/datacurrent/>
68
+ - **Examples:** <https://github.com/CoderProandTester/datacurrent/tree/main/examples>
56
69
 
57
70
  - 279 tests passing, with 100% line and branch coverage.
58
71
  - Required networking dependencies install automatically.
@@ -65,7 +78,10 @@ pip install datacurrent
65
78
  ```
66
79
 
67
80
  Python 3.11 or newer is required. `httpx` and `websockets` are installed with the
68
- package, so HTTP streaming, SSE and WebSocket clients work immediately.
81
+ package, so HTTP streaming, SSE and WebSocket clients work immediately. The
82
+ [`examples/`](https://github.com/CoderProandTester/datacurrent/tree/main/examples)
83
+ directory contains 16 runnable scripts, from a hello-world stream to a WebSocket
84
+ server.
69
85
 
70
86
  Framework helpers are optional:
71
87
 
@@ -224,6 +240,39 @@ stream = Stream.from_factory(connect_and_read).retry(
224
240
  Retries require a replayable source, such as a factory or a list. A consumed
225
241
  generator raises `NonReplayableStreamError` instead of silently restarting.
226
242
 
243
+ ## Examples
244
+
245
+ Sixteen runnable scripts live in [`examples/`](https://github.com/CoderProandTester/datacurrent/tree/main/examples).
246
+ Each one is self-contained and is executed by the test suite, so the output you
247
+ see is the output the project verifies.
248
+
249
+ ```bash
250
+ python examples/01_hello_stream.py
251
+ python -m pytest tests/unit/test_examples.py -q # run them all
252
+ ```
253
+
254
+ | Script | What it demonstrates |
255
+ |---|---|
256
+ | `01_hello_stream.py` | Creating a stream, iterating it, `tap` and terminal operations |
257
+ | `02_transformations.py` | `filter`, `map`, `distinct`, `batch`, `window`, `reduce`, `enumerate` |
258
+ | `03_large_dataset.py` | 100,000 records streamed in batches with bounded memory |
259
+ | `04_filter_events.py` | `EventBus` wildcard topics and multiple handlers |
260
+ | `05_multi_subscriber.py` | `Channel` fan-out to three independent consumers |
261
+ | `06_websocket_client.py` | `WebSocketStream` JSON send/receive against a local echo server |
262
+ | `07_websocket_server.py` | Broadcasting a `Channel` to connected WebSocket clients |
263
+ | `08_sse_client.py` | `SSEStream` event ids, event types and JSON payloads |
264
+ | `09_http_streaming.py` | `HTTPStream` line iteration and raw body streaming |
265
+ | `10_fastapi_integration.py` | Serving a DataCurrent stream as a FastAPI SSE endpoint |
266
+ | `11_backpressure.py` | Bounded queues, producer suspension and counted drops |
267
+ | `12_concurrent_processing.py` | Bounded concurrency with order preserved |
268
+ | `13_retry_recovery.py` | `RetryPolicy`, `recover` and replayable sources |
269
+ | `14_custom_transport.py` | Implementing `StreamTransport` for a custom protocol |
270
+ | `15_realtime_notifications.py` | Routing one event to WebSocket and email consumers |
271
+ | `16_event_pipeline.py` | End-to-end event filtering, mapping and batching |
272
+
273
+ `examples/_servers.py` holds the local HTTP/SSE test servers the networking
274
+ examples use; it is not an example itself.
275
+
227
276
  ## Why DataCurrent
228
277
 
229
278
  - One model for iterables, queues, HTTP, SSE and WebSockets.
@@ -242,8 +291,8 @@ in-process streaming layer that works without any of them.
242
291
 
243
292
  - Python 3.11+ on asyncio; no Trio or AnyIO backend.
244
293
  - In-memory `Channel` and `EventBus` delivery is at most once.
245
- - No durable broker adapters or OpenTelemetry exporter in 1.0.0.
246
- - Not published to PyPI; the project name is provisional.
294
+ - No durable broker adapters or OpenTelemetry exporter in this release.
295
+ - The project name is provisional pending trademark clearance.
247
296
 
248
297
  ## License
249
298
 
@@ -48,6 +48,13 @@ classifiers = [
48
48
  ]
49
49
  dependencies = ["httpx>=0.27", "websockets>=12"]
50
50
 
51
+ [project.urls]
52
+ Homepage = "https://github.com/CoderProandTester/datacurrent"
53
+ Repository = "https://github.com/CoderProandTester/datacurrent"
54
+ Issues = "https://github.com/CoderProandTester/datacurrent/issues"
55
+ Changelog = "https://github.com/CoderProandTester/datacurrent/blob/main/CHANGELOG.md"
56
+ PyPI = "https://pypi.org/project/datacurrent/"
57
+
51
58
  [project.optional-dependencies]
52
59
  starlette = ["starlette>=0.36"]
53
60
  fastapi = ["fastapi>=0.110"]
File without changes
File without changes
File without changes