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.
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4/DefStream_RabbitMQ.egg-info}/PKG-INFO +8 -3
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/DefStream_RabbitMQ.egg-info/SOURCES.txt +3 -0
- defstream_rabbitmq-0.1.4/DefStream_RabbitMQ.egg-info/requires.txt +2 -0
- {defstream_rabbitmq-0.1.3/DefStream_RabbitMQ.egg-info → defstream_rabbitmq-0.1.4}/PKG-INFO +8 -3
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/README.en.md +6 -1
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/README.md +6 -1
- defstream_rabbitmq-0.1.4/issues/fix/3/IMPLEMENTS.md +22 -0
- defstream_rabbitmq-0.1.4/issues/fix/3/README.md +20 -0
- defstream_rabbitmq-0.1.4/issues/fix/3/REQUIREMENTS.md +8 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/setup.py +1 -1
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Connection.py +1 -5
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/test/test_priorities.py +4 -4
- defstream_rabbitmq-0.1.3/DefStream_RabbitMQ.egg-info/requires.txt +0 -2
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/.github/workflows/ci.yml +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/.gitignore +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/DefStream_RabbitMQ.egg-info/dependency_links.txt +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/DefStream_RabbitMQ.egg-info/top_level.txt +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/LICENSE +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/issues/feature/1/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/issues/feature/1/README.md +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/issues/feature/1/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/issues/feature/1/TASK.md +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/issues/feature/1/ci.refs.json +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/sample/Sample.RPC.py +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/sample/Sample.Stream.py +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/sample/Sample.py +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/setup.cfg +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Configuration.py +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Consumer.py +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Event.py +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Exchange.py +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Policies.py +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Queue.py +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Serializer.py +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Stream.py +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/Subscription.py +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/src/__init__.py +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/test/test_broker_methods.py +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/test/test_rabbitmq_integration.py +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/test/test_rabbitmq_worker.py +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/test/test_release_workflow.py +0 -0
- {defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/test/test_rpc.py +0 -0
- {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
|
+
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.
|
|
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
|
-
- `
|
|
213
|
+
- `emit(..., task=PriorityAdd, broker=connection)` 및
|
|
209
214
|
`request(..., task=PriorityAdd, broker=connection)`는 작업 기본값 `2`를 사용합니다.
|
|
210
215
|
호출에 `priority=0` 또는 다른 유효한 값을 지정하여 재정의할 수 있습니다.
|
|
211
216
|
- 기본값만 정의하면 큐 최대값은 `255`, 최대값만 정의하면 기본값은 `None`입니다.
|
{defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/DefStream_RabbitMQ.egg-info/SOURCES.txt
RENAMED
|
@@ -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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: DefStream-RabbitMQ
|
|
3
|
-
Version: 0.1.
|
|
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.
|
|
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
|
-
- `
|
|
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
|
-
- `
|
|
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
|
-
- `
|
|
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에서 검증한다.
|
|
@@ -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
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
411
|
+
emit(
|
|
412
412
|
{'label': 'retry'},
|
|
413
413
|
task=Task,
|
|
414
414
|
broker=broker,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{defstream_rabbitmq-0.1.3 → defstream_rabbitmq-0.1.4}/DefStream_RabbitMQ.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|