DefStream-RabbitMQ 0.1.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 (28) hide show
  1. defstream_rabbitmq-0.1.1/DefStream_RabbitMQ.egg-info/PKG-INFO +143 -0
  2. defstream_rabbitmq-0.1.1/DefStream_RabbitMQ.egg-info/SOURCES.txt +26 -0
  3. defstream_rabbitmq-0.1.1/DefStream_RabbitMQ.egg-info/dependency_links.txt +1 -0
  4. defstream_rabbitmq-0.1.1/DefStream_RabbitMQ.egg-info/requires.txt +2 -0
  5. defstream_rabbitmq-0.1.1/DefStream_RabbitMQ.egg-info/top_level.txt +1 -0
  6. defstream_rabbitmq-0.1.1/LICENSE +674 -0
  7. defstream_rabbitmq-0.1.1/MANIFEST.in +1 -0
  8. defstream_rabbitmq-0.1.1/PKG-INFO +143 -0
  9. defstream_rabbitmq-0.1.1/README.md +113 -0
  10. defstream_rabbitmq-0.1.1/VERSION +1 -0
  11. defstream_rabbitmq-0.1.1/setup.cfg +4 -0
  12. defstream_rabbitmq-0.1.1/setup.py +59 -0
  13. defstream_rabbitmq-0.1.1/src/Configuration.py +48 -0
  14. defstream_rabbitmq-0.1.1/src/Connection.py +449 -0
  15. defstream_rabbitmq-0.1.1/src/Consumer.py +244 -0
  16. defstream_rabbitmq-0.1.1/src/Event.py +106 -0
  17. defstream_rabbitmq-0.1.1/src/Exchange.py +222 -0
  18. defstream_rabbitmq-0.1.1/src/Policies.py +9 -0
  19. defstream_rabbitmq-0.1.1/src/Queue.py +248 -0
  20. defstream_rabbitmq-0.1.1/src/Serializer.py +61 -0
  21. defstream_rabbitmq-0.1.1/src/Stream.py +119 -0
  22. defstream_rabbitmq-0.1.1/src/Subscription.py +47 -0
  23. defstream_rabbitmq-0.1.1/src/__init__.py +47 -0
  24. defstream_rabbitmq-0.1.1/test/test_broker_methods.py +139 -0
  25. defstream_rabbitmq-0.1.1/test/test_rabbitmq_integration.py +143 -0
  26. defstream_rabbitmq-0.1.1/test/test_rabbitmq_worker.py +301 -0
  27. defstream_rabbitmq-0.1.1/test/test_rpc.py +417 -0
  28. defstream_rabbitmq-0.1.1/test/test_rpc_integration.py +240 -0
@@ -0,0 +1,143 @@
1
+ Metadata-Version: 2.4
2
+ Name: DefStream-RabbitMQ
3
+ Version: 0.1.1
4
+ Summary: RabbitMQ broker adapter for DefStream
5
+ Home-page: https://github.com/yong5eon/DefStream-RabbitMQ
6
+ Author: Heo Yongseon
7
+ Project-URL: Source, https://github.com/yong5eon/DefStream-RabbitMQ
8
+ Project-URL: Issues, https://github.com/yong5eon/DefStream-RabbitMQ/issues
9
+ Classifier: Programming Language :: Python :: 3.9
10
+ Classifier: Programming Language :: Python :: 3.10
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: Programming Language :: Python :: 3.14
15
+ Requires-Python: >=3.9
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE
18
+ Requires-Dist: DefStream>=0.1.0
19
+ Requires-Dist: pika>=1.3.2
20
+ Dynamic: author
21
+ Dynamic: classifier
22
+ Dynamic: description
23
+ Dynamic: description-content-type
24
+ Dynamic: home-page
25
+ Dynamic: license-file
26
+ Dynamic: project-url
27
+ Dynamic: requires-dist
28
+ Dynamic: requires-python
29
+ Dynamic: summary
30
+
31
+ # DefStream-RabbitMQ
32
+
33
+ ## CI and PyPI releases
34
+
35
+ The `CI` workflow tests PRs targeting `master` and pushes to `master` on Python
36
+ 3.9 through 3.14. It builds all three DefStream packages from source, installs
37
+ their wheels in a clean environment, and runs this repository's tests with
38
+ RabbitMQ 4.1 and Redis 7.4 service containers. The current repository uses the
39
+ event commit; sibling repositories use their `master` branches, with resolved
40
+ commit IDs recorded in the log. All three GitHub repositories must be accessible.
41
+ This bootstrap setup does not require existing PyPI releases and does not
42
+ certify compatibility with previously published dependencies.
43
+
44
+ On a `master` push, the build uses `major.minor.<github.run_number>` from the
45
+ checked-in `VERSION` (for example, `0.1.42`). PR builds retain `VERSION`. No
46
+ version commit, PR, or tag is created. Change major/minor to start a new series;
47
+ run numbers can have gaps. Check for PyPI version collisions before replacing
48
+ or renaming the workflow.
49
+
50
+ Only after all six Python checks pass does a separate publish job upload the
51
+ exact Python 3.13 build artifacts. A fully published version is skipped on a
52
+ rerun; first-attempt collisions, incomplete releases, and unexpected network
53
+ errors fail. Active runs are not cancelled; older pending runs may be superseded.
54
+
55
+ Configure `PYPI_API_TOKEN` as a repository Actions secret or a secret in the
56
+ `pypi` environment. Restrict that environment to `master`; omit approval rules
57
+ for fully automatic releases. Protect `master` with required PRs and all six
58
+ `Test Python 3.x` checks, not the push-only `Publish PyPI` job. Never commit the
59
+ token. Publish the core before this adapter so users can resolve its dependency.
60
+
61
+ RabbitMQ broker adapter for DefStream, distributed separately from the core.
62
+ Requires Python 3.9 or newer.
63
+
64
+ ## Installation
65
+
66
+ ```shell
67
+ pip install DefStream-RabbitMQ
68
+ ```
69
+
70
+ This installs `DefStream>=0.1.0` and `pika>=1.3.2`. The distribution name is
71
+ `DefStream-RabbitMQ`; the Python import path remains
72
+ `DefStream.Broker.Implements.RabbitMQ`.
73
+
74
+ ## Usage
75
+
76
+ ```python
77
+ from DefStream.Broker.Implements.RabbitMQ import (
78
+ Configuration,
79
+ Connection,
80
+ )
81
+
82
+ broker = Connection(Configuration(
83
+ host='127.0.0.1',
84
+ port=5672,
85
+ username='guest',
86
+ password='guest',
87
+ ))
88
+ broker.connect()
89
+ try:
90
+ broker.create_queue('tasks')
91
+ broker.queue('tasks').send({'message': 'hello'})
92
+ finally:
93
+ broker.close()
94
+ ```
95
+
96
+ A reachable RabbitMQ server is required. Use connections and their resources
97
+ on the thread that owns them.
98
+
99
+ The adapter provides queues, exchanges, streams, subscriptions, error policies,
100
+ and synchronous queue/exchange RPC. Use its `Connection` with
101
+ `DefStream.Worker.Worker` for worker execution.
102
+
103
+ ## Source layout
104
+
105
+ The contents of the former `DefStream/src/Broker/Implements/RabbitMQ` directory
106
+ now live directly in this project's [src](./src) directory. Packaging maps that
107
+ directory to `DefStream.Broker.Implements.RabbitMQ`; this distribution does not
108
+ own or overwrite the parent packages supplied by DefStream.
109
+
110
+ ## Development
111
+
112
+ With the core and both adapters checked out as sibling directories, run this
113
+ from their common parent using your virtual environment's Python:
114
+
115
+ ```powershell
116
+ python -m pip install --config-settings editable_mode=strict -e .\DefStream
117
+ python -m pip install -e .\DefStream-RabbitMQ -e .\DefStream-Redis
118
+ python -m unittest discover -s .\DefStream-RabbitMQ\test -p "test_*.py"
119
+ ```
120
+
121
+ The core uses strict editable mode to prevent the adapters' editable namespace
122
+ entries from masking its packages. Keep the core's generated `build` link tree;
123
+ reinstall the core after adding or removing its modules. Adapters use default
124
+ editable mode.
125
+
126
+ RabbitMQ-specific tests live in this project's `test` directory, covering
127
+ resource methods, subscriptions, consumers, RPC, and broker integration.
128
+ Broker examples live in `sample`. Shared Worker, Inspector, and cross-adapter
129
+ contract tests remain in the DefStream repository and require both adapters.
130
+
131
+ Run `python -m unittest discover -s test -p "test_*.py"` from this project
132
+ directory after installation. Integration tests are opt-in via
133
+ `DEFSTREAM_RABBITMQ_TESTS=1`; ordinary unit tests do not require a running broker
134
+ or the Redis adapter.
135
+
136
+ Do not combine editable installs with a `site-packages/DefStream` link pointing
137
+ directly at the core source: installing adapter files through that link can
138
+ write into the core checkout. Remove such a link before installing the projects.
139
+ Reinstall after changing package metadata or dependencies.
140
+
141
+ ## License
142
+
143
+ See [LICENSE](./LICENSE), copied unchanged from DefStream.
@@ -0,0 +1,26 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ VERSION
5
+ setup.py
6
+ DefStream_RabbitMQ.egg-info/PKG-INFO
7
+ DefStream_RabbitMQ.egg-info/SOURCES.txt
8
+ DefStream_RabbitMQ.egg-info/dependency_links.txt
9
+ DefStream_RabbitMQ.egg-info/requires.txt
10
+ DefStream_RabbitMQ.egg-info/top_level.txt
11
+ src/Configuration.py
12
+ src/Connection.py
13
+ src/Consumer.py
14
+ src/Event.py
15
+ src/Exchange.py
16
+ src/Policies.py
17
+ src/Queue.py
18
+ src/Serializer.py
19
+ src/Stream.py
20
+ src/Subscription.py
21
+ src/__init__.py
22
+ test/test_broker_methods.py
23
+ test/test_rabbitmq_integration.py
24
+ test/test_rabbitmq_worker.py
25
+ test/test_rpc.py
26
+ test/test_rpc_integration.py
@@ -0,0 +1,2 @@
1
+ DefStream>=0.1.0
2
+ pika>=1.3.2