DefStream-RabbitMQ 0.1.3__tar.gz → 0.1.4__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.

Potentially problematic release.


This version of DefStream-RabbitMQ might be problematic. Click here for more details.

Files changed (43) hide show
  1. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4/DefStream_RabbitMQ.egg-info}/PKG-INFO +8 -3
  2. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/DefStream_RabbitMQ.egg-info/SOURCES.txt +3 -0
  3. defstream_rabbitmq-0.1.4/DefStream_RabbitMQ.egg-info/requires.txt +2 -0
  4. {defstream_rabbitmq-0.1.3/DefStream_RabbitMQ.egg-info → defstream_rabbitmq-0.1.4}/PKG-INFO +8 -3
  5. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/README.en.md +6 -1
  6. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/README.md +6 -1
  7. defstream_rabbitmq-0.1.4/issues/fix/3/IMPLEMENTS.md +22 -0
  8. defstream_rabbitmq-0.1.4/issues/fix/3/README.md +20 -0
  9. defstream_rabbitmq-0.1.4/issues/fix/3/REQUIREMENTS.md +8 -0
  10. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/setup.py +1 -1
  11. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Connection.py +1 -5
  12. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/test/test_priorities.py +4 -4
  13. defstream_rabbitmq-0.1.3/DefStream_RabbitMQ.egg-info/requires.txt +0 -2
  14. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/.github/workflows/ci.yml +0 -0
  15. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/.gitignore +0 -0
  16. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/DefStream_RabbitMQ.egg-info/dependency_links.txt +0 -0
  17. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/DefStream_RabbitMQ.egg-info/top_level.txt +0 -0
  18. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/LICENSE +0 -0
  19. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/issues/feature/1/IMPLEMENTS.md +0 -0
  20. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/issues/feature/1/README.md +0 -0
  21. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/issues/feature/1/REQUIREMENTS.md +0 -0
  22. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/issues/feature/1/TASK.md +0 -0
  23. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/issues/feature/1/ci.refs.json +0 -0
  24. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/sample/Sample.RPC.py +0 -0
  25. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/sample/Sample.Stream.py +0 -0
  26. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/sample/Sample.py +0 -0
  27. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/setup.cfg +0 -0
  28. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Configuration.py +0 -0
  29. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Consumer.py +0 -0
  30. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Event.py +0 -0
  31. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Exchange.py +0 -0
  32. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Policies.py +0 -0
  33. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Queue.py +0 -0
  34. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Serializer.py +0 -0
  35. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Stream.py +0 -0
  36. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Subscription.py +0 -0
  37. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/__init__.py +0 -0
  38. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/test/test_broker_methods.py +0 -0
  39. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/test/test_rabbitmq_integration.py +0 -0
  40. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/test/test_rabbitmq_worker.py +0 -0
  41. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/test/test_release_workflow.py +0 -0
  42. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/test/test_rpc.py +0 -0
  43. {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/test/test_rpc_integration.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: DefStream-RabbitMQ
3
- Version: 0.1.3
3
+ Version: 0.1.4
4
4
  Summary: RabbitMQ broker adapter for DefStream
5
5
  Home-page: https://github.com/yong5eon/DefStream-RabbitMQ
6
6
  Author: Heo Yongseon
@@ -16,7 +16,7 @@ Classifier: Programming Language :: Python :: 3.14
16
16
  Requires-Python: >=3.9
17
17
  Description-Content-Type: text/markdown
18
18
  License-File: LICENSE
19
- Requires-Dist: DefStream>=0.1.5
19
+ Requires-Dist: DefStream>=0.1.7
20
20
  Requires-Dist: pika>=1.3.2
21
21
  Dynamic: author
22
22
  Dynamic: classifier
@@ -187,6 +187,11 @@ Worker는 실행과 완료 훅이 끝난 뒤 ACK하고, 실패하면 지정한
187
187
 
188
188
  ## 워커 작업 우선순위
189
189
 
190
+ 작업을 발행할 때는 `DefStream.Worker.emit` 또는
191
+ `connection.emit(body, parameters)`을 사용합니다. 기존 작업 발행 이름 `send`는
192
+ `emit`으로 바뀌었으므로 코어와 어댑터를 함께 갱신하세요.
193
+ 큐·Exchange·Stream의 저수준 `send()`와 RPC `call()`은 변경하지 않습니다.
194
+
190
195
  작업에 지정한 `Subscription`에 기본값 `priority`와 큐 최대값 `max_priority`를
191
196
  함께 설정합니다. `Run`에는 별도의 `priority` 설정을 두지 않습니다.
192
197
 
@@ -205,7 +210,7 @@ class PriorityAdd(
205
210
 
206
211
  - 워커 API `declare(task=PriorityAdd, broker=connection)`는 큐에
207
212
  `x-max-priority=5`를 반영합니다. 기존 DLQ 설정도 보존합니다.
208
- - `send(..., task=PriorityAdd, broker=connection)` 및
213
+ - `emit(..., task=PriorityAdd, broker=connection)` 및
209
214
  `request(..., task=PriorityAdd, broker=connection)`는 작업 기본값 `2`를 사용합니다.
210
215
  호출에 `priority=0` 또는 다른 유효한 값을 지정하여 재정의할 수 있습니다.
211
216
  - 기본값만 정의하면 큐 최대값은 `255`, 최대값만 정의하면 기본값은 `None`입니다.
@@ -14,6 +14,9 @@ issues/feature/1/README.md
14
14
  issues/feature/1/REQUIREMENTS.md
15
15
  issues/feature/1/TASK.md
16
16
  issues/feature/1/ci.refs.json
17
+ issues/fix/3/IMPLEMENTS.md
18
+ issues/fix/3/README.md
19
+ issues/fix/3/REQUIREMENTS.md
17
20
  sample/Sample.RPC.py
18
21
  sample/Sample.Stream.py
19
22
  sample/Sample.py
@@ -0,0 +1,2 @@
1
+ DefStream>=0.1.7
2
+ pika>=1.3.2
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: DefStream-RabbitMQ
3
- Version: 0.1.3
3
+ Version: 0.1.4
4
4
  Summary: RabbitMQ broker adapter for DefStream
5
5
  Home-page: https://github.com/yong5eon/DefStream-RabbitMQ
6
6
  Author: Heo Yongseon
@@ -16,7 +16,7 @@ Classifier: Programming Language :: Python :: 3.14
16
16
  Requires-Python: >=3.9
17
17
  Description-Content-Type: text/markdown
18
18
  License-File: LICENSE
19
- Requires-Dist: DefStream>=0.1.5
19
+ Requires-Dist: DefStream>=0.1.7
20
20
  Requires-Dist: pika>=1.3.2
21
21
  Dynamic: author
22
22
  Dynamic: classifier
@@ -187,6 +187,11 @@ Worker는 실행과 완료 훅이 끝난 뒤 ACK하고, 실패하면 지정한
187
187
 
188
188
  ## 워커 작업 우선순위
189
189
 
190
+ 작업을 발행할 때는 `DefStream.Worker.emit` 또는
191
+ `connection.emit(body, parameters)`을 사용합니다. 기존 작업 발행 이름 `send`는
192
+ `emit`으로 바뀌었으므로 코어와 어댑터를 함께 갱신하세요.
193
+ 큐·Exchange·Stream의 저수준 `send()`와 RPC `call()`은 변경하지 않습니다.
194
+
190
195
  작업에 지정한 `Subscription`에 기본값 `priority`와 큐 최대값 `max_priority`를
191
196
  함께 설정합니다. `Run`에는 별도의 `priority` 설정을 두지 않습니다.
192
197
 
@@ -205,7 +210,7 @@ class PriorityAdd(
205
210
 
206
211
  - 워커 API `declare(task=PriorityAdd, broker=connection)`는 큐에
207
212
  `x-max-priority=5`를 반영합니다. 기존 DLQ 설정도 보존합니다.
208
- - `send(..., task=PriorityAdd, broker=connection)` 및
213
+ - `emit(..., task=PriorityAdd, broker=connection)` 및
209
214
  `request(..., task=PriorityAdd, broker=connection)`는 작업 기본값 `2`를 사용합니다.
210
215
  호출에 `priority=0` 또는 다른 유효한 값을 지정하여 재정의할 수 있습니다.
211
216
  - 기본값만 정의하면 큐 최대값은 `255`, 최대값만 정의하면 기본값은 `None`입니다.
@@ -157,6 +157,11 @@ fail explicitly; queues are not automatically deleted and recreated.
157
157
 
158
158
  ## Worker task priorities
159
159
 
160
+ Publish tasks with `DefStream.Worker.emit` or `connection.emit(body, parameters)`.
161
+ The task publication API has been renamed from `send` to `emit`; update the core
162
+ and adapter together. Low-level `send()` and RPC `call()` on queues, exchanges,
163
+ and streams remain unchanged.
164
+
160
165
  Set the default `priority` and queue `max_priority` together in the task's
161
166
  `Subscription`. There is no separate `priority` setting on `Run`.
162
167
 
@@ -175,7 +180,7 @@ class PriorityAdd(
175
180
 
176
181
  - The Worker API `declare(task=PriorityAdd, broker=connection)` declares the queue
177
182
  with `x-max-priority=5` while preserving existing DLQ settings.
178
- - `send(..., task=PriorityAdd, broker=connection)` and
183
+ - `emit(..., task=PriorityAdd, broker=connection)` and
179
184
  `request(..., task=PriorityAdd, broker=connection)` use the task default of `2`.
180
185
  Pass `priority=0` or another valid value to override it for an individual call.
181
186
  - Setting only the default sets the queue maximum to `255`. Setting only the
@@ -156,6 +156,11 @@ Worker는 실행과 완료 훅이 끝난 뒤 ACK하고, 실패하면 지정한
156
156
 
157
157
  ## 워커 작업 우선순위
158
158
 
159
+ 작업을 발행할 때는 `DefStream.Worker.emit` 또는
160
+ `connection.emit(body, parameters)`을 사용합니다. 기존 작업 발행 이름 `send`는
161
+ `emit`으로 바뀌었으므로 코어와 어댑터를 함께 갱신하세요.
162
+ 큐·Exchange·Stream의 저수준 `send()`와 RPC `call()`은 변경하지 않습니다.
163
+
159
164
  작업에 지정한 `Subscription`에 기본값 `priority`와 큐 최대값 `max_priority`를
160
165
  함께 설정합니다. `Run`에는 별도의 `priority` 설정을 두지 않습니다.
161
166
 
@@ -174,7 +179,7 @@ class PriorityAdd(
174
179
 
175
180
  - 워커 API `declare(task=PriorityAdd, broker=connection)`는 큐에
176
181
  `x-max-priority=5`를 반영합니다. 기존 DLQ 설정도 보존합니다.
177
- - `send(..., task=PriorityAdd, broker=connection)` 및
182
+ - `emit(..., task=PriorityAdd, broker=connection)` 및
178
183
  `request(..., task=PriorityAdd, broker=connection)`는 작업 기본값 `2`를 사용합니다.
179
184
  호출에 `priority=0` 또는 다른 유효한 값을 지정하여 재정의할 수 있습니다.
180
185
  - 기본값만 정의하면 큐 최대값은 `255`, 최대값만 정의하면 기본값은 `None`입니다.
@@ -0,0 +1,22 @@
1
+ # 작업 발행 API 이름 통일 구현 기록
2
+
3
+ - 현재 브랜치 `master`를 기준으로 기록했다. 브랜치를 새로 만들거나 전환하지 않았다.
4
+ - [요구사항](./REQUIREMENTS.md)에 따라 `Connection.send`를 `emit`으로 변경했다.
5
+ - 공통 `PrioritySupport`가 `Emittable`·`Requestable`을 상속하므로 연결의
6
+ 중복 상속을 제거했다. 두 기능은 계속 제공한다.
7
+ - 발행 확인·게시 채널 재사용·우선순위 검증·오류 전파와 RPC 동작을 유지했다.
8
+ - 테스트, 한영 README와 연결된 우선순위 사용 예제를 갱신했다.
9
+ - Docker `defstream-rabbitmq`의 RabbitMQ 3.13.7에서
10
+ `DEFSTREAM_RABBITMQ_TESTS=1`로 어댑터 전체 테스트 60개가 모두 통과했다.
11
+ - 현재 코어와 로컬 어댑터 소스를 직접 로드했으며 설치된 과거 패키지로 검증하지 않았다.
12
+ - 코어 164개 중 160개 통과·Redis 전용 4개 건너뜀,
13
+ Redis 어댑터 36개 중 32개 통과·실서버 전용 4개 건너뜀도 확인했다.
14
+ - 검증 후 테스트 컨테이너를 종료하고 보존했다.
15
+
16
+ ## Redis 실서버를 포함한 전체 재검증
17
+
18
+ - 2026-10-19에 Redis 7.4.11의 `defstream-redis`와 기존 `defstream-rabbitmq`를
19
+ 함께 실행하고 두 실서버 테스트 옵션을 모두 활성화했다.
20
+ - 현재 소스를 사용해 코어 164개, RabbitMQ 어댑터 60개, Redis 어댑터 36개,
21
+ 총 260개 전부 통과했다. 건너뜀·실패·오류는 없다.
22
+ - 검증 후 두 테스트 컨테이너를 종료하고 재사용 가능하게 보존했다.
@@ -0,0 +1,20 @@
1
+ # 작업 발행 API를 `emit`으로 통일
2
+
3
+ 작업을 발행하는 연결 메서드와 코어 도우미의 이름이 `send`에서 `emit`으로 바뀌었습니다.
4
+ 코어와 RabbitMQ 어댑터를 함께 갱신하세요. 이전 이름의 호환 별칭은 제공하지 않습니다.
5
+
6
+ - 작업 도우미는 `from DefStream.Worker import emit`으로 가져옵니다.
7
+ - 연결을 직접 사용했다면 `connection.send(body, parameters)`를
8
+ `connection.emit(body, parameters)`로 바꾸세요.
9
+ - 사용자 정의 연결의 작업 발행 계약은 `TaskSender` 대신 `Emittable`을 사용합니다.
10
+ - 우선순위, 발행 확인과 RPC 동작은 동일합니다.
11
+ - 저수준 `Queue.send`·`Exchange.send`·`Stream.send`와 RPC `call`은 그대로 사용할 수 있습니다.
12
+
13
+ 연결은 기존처럼 호출자가 열고 닫습니다.
14
+ 작업 정의를 사용하는 `emit(body, task=Add, broker=connection)`은
15
+ 미리 선언한 큐에 작업을 발행하며 큐를 자동 선언하지 않습니다.
16
+
17
+ ## 상세 기록
18
+
19
+ - [요구사항](./REQUIREMENTS.md)
20
+ - [구현 및 검증](./IMPLEMENTS.md)
@@ -0,0 +1,8 @@
1
+ # 작업 발행 API 이름 통일 요구사항
2
+
3
+ - 공통 코어의 `TaskSender`를 대신하는 `Emittable`을 구현한다.
4
+ - 작업 발행 `Connection.send(body, parameters, priority=...)`를 `emit`으로 변경한다.
5
+ 기존 이름의 호환 별칭은 제공하지 않는다.
6
+ - 우선순위·발행 확인·채널 재사용·오류 전파 동작은 유지한다.
7
+ - 저수준 큐·Exchange·Stream의 `send`와 RPC `call`·`request`는 변경하지 않는다.
8
+ - 테스트, 예제와 한영 사용 설명서를 갱신하고 실제 Docker RabbitMQ에서 검증한다.
@@ -50,7 +50,7 @@ setup(
50
50
  package_dir=PACKAGE_DIR,
51
51
  include_package_data=False,
52
52
  install_requires=[
53
- 'DefStream>=0.1.5',
53
+ 'DefStream>=0.1.7',
54
54
  'pika>=1.3.2',
55
55
  ],
56
56
  classifiers=[
@@ -7,8 +7,6 @@ from DefStream.Broker import (
7
7
  GetStream,
8
8
  GetConsumer,
9
9
  Declarable,
10
- TaskSender,
11
- Requestable,
12
10
  PrioritySupport,
13
11
  EventHandler,
14
12
  )
@@ -108,8 +106,6 @@ class Connection(
108
106
  GetStream,
109
107
  GetConsumer,
110
108
  Declarable,
111
- TaskSender,
112
- Requestable,
113
109
  PrioritySupport,
114
110
  ):
115
111
  """Connection of Event Broker for RabbitMQ"""
@@ -179,7 +175,7 @@ class Connection(
179
175
  """작업 기본값을 검증하고 선언·발행에 사용할 구독 설정을 반환한다."""
180
176
  return Subscription.parse(parameters)
181
177
 
182
- def send(
178
+ def emit(
183
179
  self,
184
180
  body: AnyValue,
185
181
  parameters: AnyValue,
@@ -26,7 +26,7 @@ from DefStream.Broker.Implements.RabbitMQ import (
26
26
  from DefStream.Worker import (
27
27
  Run,
28
28
  declare,
29
- send,
29
+ emit,
30
30
  )
31
31
 
32
32
 
@@ -118,7 +118,7 @@ class PriorityTests(TestCase):
118
118
  'max_priority': 5,
119
119
  'priority': 3,
120
120
  }
121
- broker.send(
121
+ broker.emit(
122
122
  {},
123
123
  settings,
124
124
  priority=override,
@@ -387,7 +387,7 @@ class PriorityIntegrationTests(TestCase):
387
387
  3,
388
388
  ),
389
389
  ):
390
- send(
390
+ emit(
391
391
  {'label': label},
392
392
  task=Task,
393
393
  broker=broker,
@@ -408,7 +408,7 @@ class PriorityIntegrationTests(TestCase):
408
408
  label,
409
409
  )
410
410
  event.ack()
411
- send(
411
+ emit(
412
412
  {'label': 'retry'},
413
413
  task=Task,
414
414
  broker=broker,
@@ -1,2 +0,0 @@
1
- DefStream>=0.1.5
2
- pika>=1.3.2