DefStream-RabbitMQ 0.1.26__tar.gz → 0.1.27__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.
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/PKG-INFO +2 -2
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/build/RabbitMQ/DefStream_RabbitMQ.egg-info/SOURCES.txt +12 -0
- defstream_rabbitmq-0.1.27/issues/fix/64/CHANGELOG.md +3 -0
- defstream_rabbitmq-0.1.27/issues/fix/64/IMPLEMENTS.md +20 -0
- defstream_rabbitmq-0.1.27/issues/fix/64/PLAN.md +69 -0
- defstream_rabbitmq-0.1.27/issues/fix/64/README.md +45 -0
- defstream_rabbitmq-0.1.27/issues/fix/64/REQUIREMENTS.md +63 -0
- defstream_rabbitmq-0.1.27/issues/fix/64/TASKS.md +21 -0
- defstream_rabbitmq-0.1.27/issues/fix/64/implements/1793807653096.md +10 -0
- defstream_rabbitmq-0.1.27/issues/fix/64/implements/1793807663436.md +9 -0
- defstream_rabbitmq-0.1.27/issues/fix/64/tasks/1793806949650.md +8 -0
- defstream_rabbitmq-0.1.27/issues/fix/64/tasks/1793807182094.md +7 -0
- defstream_rabbitmq-0.1.27/issues/fix/64/tasks/1793807663435.md +13 -0
- defstream_rabbitmq-0.1.27/issues/fix/64/tasks/1793807722809.md +31 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/RabbitMQ/Consumer.py +5 -1
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/test_protocol_contracts.py +14 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.dev/scripts/editable_view.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.dev/scripts/tests/__init__.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.dev/scripts/tests/test_editable_view.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.distribution-target +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/ISSUE_TEMPLATE/01.feature.yml +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/ISSUE_TEMPLATE/02.bug.yml +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/ISSUE_TEMPLATE/03.fix.yml +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/ISSUE_TEMPLATE/04.task.yml +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/scripts/build_backend.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/scripts/build_distributions.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/scripts/check_distributions.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/scripts/create-issues-from-reviews.mjs +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/scripts/create-pr-from-issue.mjs +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/scripts/prepare_upload.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/scripts/run_core_tests.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/scripts/tests/__init__.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/scripts/tests/create-issues-from-reviews.test.mjs +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/scripts/tests/create-pr-from-issue.test.mjs +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/scripts/tests/test_build_backend.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/scripts/tests/test_distributions.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/scripts/tests/test_release.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/workflows/ci.yml +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/workflows/create-issues-from-reviews.yml +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/workflows/create-pr-from-issue.yml +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.gitignore +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/LICENSE +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/README.en.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/README.setup.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/docs/Contracts.en.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/docs/Contracts.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/docs/GettingStarted.en.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/docs/GettingStarted.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/docs/LifecycleHooks.en.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/docs/LifecycleHooks.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/docs/Operations.en.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/docs/Operations.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/docs/Packaging.en.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/docs/Packaging.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/docs/README.en.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/docs/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/docs/RabbitMQ.en.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/docs/RabbitMQ.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/docs/Redis.en.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/docs/Redis.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/docs/Tasks.en.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/docs/Tasks.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/instructions/CODE.instructions.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/instructions/DOCS.instructions.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/instructions/README.instructions.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/bug/16/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/bug/16/ISSUE.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/bug/16/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/bug/16/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/1/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/1/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/1/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/1/TASK.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/1/ci.refs.json +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/CHANGELOG.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/PLAN.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/TASKS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/implements/1793274693488.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/implements/1793275218996.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/implements/1793275899489.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/implements/1793276075771.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/implements/1793276518340.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/implements/1793277364116.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/implements/1793278267422.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/implements/1793278764701.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/implements/1793279849390.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/tasks/1793272872217.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/tasks/1793274121654.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/tasks/1793274231988.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/tasks/1793275218995.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/tasks/1793275501812.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/tasks/1793275955973.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/tasks/1793276099601.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/tasks/1793276518341.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/tasks/1793277424063.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/tasks/1793278267423.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/tasks/1793278764702.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/tasks/1793279849391.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/47/CHANGELOG.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/47/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/47/PLAN.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/47/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/47/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/47/TASKS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/47/implements/1793271568985.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/47/implements/1793272077065.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/47/tasks/1793271236067.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/47/tasks/1793271384432.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/47/tasks/1793271506089.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/47/tasks/1793271819682.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/47/tasks/1793272077066.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/55/CHANGELOG.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/55/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/55/PLAN.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/55/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/55/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/55/TASKS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/55/implements/1793714914193.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/55/implements/1793717149425.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/55/tasks/1793705387888.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/55/tasks/1793714914194.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/55/tasks/1793715537355.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/55/tasks/1793717149426.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/62/CHANGELOG.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/62/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/62/PLAN.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/62/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/62/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/62/TASKS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/62/implements/1793777682327.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/62/implements/1793778339166.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/62/tasks/1793772101827.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/62/tasks/1793774701691.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/62/tasks/1793775544541.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/62/tasks/1793775771772.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/62/tasks/1793777337621.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/62/tasks/1793777847993.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/62/tasks/1793778003070.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/62/tasks/1793778440735.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/8/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/8/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/8/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/8/ci.refs.json +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/10/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/10/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/10/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/13/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/21/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/21/ISSUE.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/21/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/21/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/24/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/24/ISSUE.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/24/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/24/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/25/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/25/ISSUE.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/25/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/25/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/25/TASK.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/26/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/26/ISSUE.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/26/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/26/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/29/ISSUE.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/29/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/29/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/29/TASK.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/3/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/3/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/3/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/3/ci.refs.json +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/41/CHANGELOG.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/41/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/41/PLAN.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/41/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/41/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/41/TASKS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/41/implements/1793257519898.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/41/implements/1793257826069.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/41/tasks/1793256929057.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/41/tasks/1793256990072.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/41/tasks/1793257216492.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/41/tasks/1793257519899.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/41/tasks/1793257826068.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/43/CHANGELOG.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/43/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/43/PLAN.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/43/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/43/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/43/TASKS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/43/implements/1793260818660.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/43/implements/1793261447018.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/43/tasks/1793260818661.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/43/tasks/1793261447019.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/43/tasks/1793262314955.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/50/CHANGELOG.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/50/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/50/PLAN.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/50/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/50/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/50/TASKS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/50/implements/1793282630353.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/50/tasks/1793282630354.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/CHANGELOG.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/PLAN.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/TASKS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/implements/1793294516720.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/implements/1793295445979.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/implements/1793295838896.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/implements/1793296500296.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/implements/1793299630936.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/implements/1793301537859.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/implements/1793301829543.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/implements/1793302547669.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/implements/1793327181557.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/implements/1793329241422.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/implements/1793516005517.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/implements/1793516879583.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/implements/1793517548589.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/implements/1793518878753.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/tasks/1793294230195.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/tasks/1793295445976.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/tasks/1793295838893.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/tasks/1793296500299.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/tasks/1793297795667.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/tasks/1793299630939.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/tasks/1793301829546.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/tasks/1793302844699.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/tasks/1793327181558.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/tasks/1793327685707.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/tasks/1793328011412.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/tasks/1793329241423.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/tasks/1793516005518.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/tasks/1793516879584.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/tasks/1793517548590.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/53/tasks/1793518878754.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/6/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/6/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/fix/6/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/18/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/18/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/18/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/32/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/32/ISSUE.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/32/PLAN.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/32/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/32/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/32/TASK.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/34/CHANGELOG.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/34/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/34/PLAN.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/34/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/34/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/36/CHANGELOG.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/36/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/36/PLAN.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/36/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/36/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/38/CHANGELOG.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/38/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/38/PLAN.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/38/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/38/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/38/TASKS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/38/docs/CopilotReviewIssues.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/38/docs/CopilotReviewIssuesSetup.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/38/implements/1793291844133.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/38/tasks/1793291844134.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/38/tasks/1793292234123.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/CHANGELOG.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/PLAN.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/TASKS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/implements/1793623390266.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/implements/1793625464717.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/implements/1793626388737.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/implements/1793626820522.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/implements/1793627348502.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/implements/1793628366252.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/implements/1793629199999.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/implements/1793631035346.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/tasks/1793620359610.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/tasks/1793621161604.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/tasks/1793621502459.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/tasks/1793621903677.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/tasks/1793623390265.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/tasks/1793625269565.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/tasks/1793626388737.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/tasks/1793626820522.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/tasks/1793627348502.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/tasks/1793627590185.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/tasks/1793628366252.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/tasks/1793629199998.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/39/tasks/1793631035345.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/57/CHANGELOG.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/57/IMPLEMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/57/PLAN.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/57/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/57/REQUIREMENTS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/57/TASKS.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/57/implements/1793395003714.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/57/tasks/1793395003713.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/task/57/tasks/1793395058100.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/pyproject.toml +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/res/docker/rabbitmq/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/res/docker/rabbitmq/enabled_plugins +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/res/docker/rabbitmq/rabbitmq-3.yml +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/res/docker/rabbitmq/rabbitmq-4.yml +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/res/docker/redis/README.md +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/res/docker/redis/redis-6.yml +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/res/docker/redis/redis-7.yml +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/samples/Broker/RabbitMQ/Sample.RPC.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/samples/Broker/RabbitMQ/Sample.Stream.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/samples/Broker/RabbitMQ/Sample.Timer.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/samples/Broker/RabbitMQ/Sample.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/samples/Broker/Redis/Sample.Stream.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/samples/Broker/Redis/Sample.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/samples/Broker/Sample.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/samples/Worker/RabbitMQ/Client.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/samples/Worker/RabbitMQ/Tasks.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/samples/Worker/RabbitMQ/Worker.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/samples/Worker/Redis/Sample.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/samples/Worker/Sample.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/setup.cfg +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/setup.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Configuration.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Connection.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Consumer.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Errors.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Event.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/RabbitMQ/Configuration.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/RabbitMQ/Connection.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/RabbitMQ/Event.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/RabbitMQ/Exchange.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/RabbitMQ/Queue.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/RabbitMQ/Serializer.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/RabbitMQ/Stream.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/RabbitMQ/Subscription.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/RabbitMQ/__init__.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/Redis/Configuration.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/Redis/Connection.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/Redis/Consumer.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/Redis/Event.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/Redis/Queue.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/Redis/Serializer.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/Redis/Subscription.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/Redis/__init__.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/__init__.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Priority.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Protocol.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/__init__.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Descriptor/DataObject.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Descriptor/Types.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Descriptor/Value.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Descriptor/__init__.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Inspector/Extension.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Inspector/Extensions/Metrics.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Inspector/Extensions/Ping.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Inspector/Extensions/Play.html +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Inspector/Extensions/Play.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Inspector/Extensions/Specifications.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Inspector/Extensions/Status.html +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Inspector/Extensions/Status.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Inspector/Extensions/__init__.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Inspector/Inspector.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Inspector/Response.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Inspector/__init__.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Validator/Pattern.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Validator/Patterns/Array.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Validator/Patterns/Common.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Validator/Patterns/Compare.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Validator/Patterns/Condition.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Validator/Patterns/DataObject.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Validator/Patterns/DateTime.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Validator/Patterns/Number.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Validator/Patterns/Object.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Validator/Patterns/Size.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Validator/Patterns/String.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Validator/Patterns/Type.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Validator/Patterns/__init__.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Validator/Validate.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Validator/Validator.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Validator/__init__.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Worker/Executor.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Worker/Message.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Worker/Pool.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Worker/Run.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Worker/Specification.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Worker/Startup.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Worker/Worker.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Worker/__init__.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/__init__.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/__init__.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/_support.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/_support_inspector.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/_support_inspector_play.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/_support_task_messages.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/rabbitmq/__init__.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/rabbitmq/test_inspector.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/rabbitmq/test_inspector_play.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/rabbitmq/test_rabbitmq_broker_methods.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/rabbitmq/test_rabbitmq_integration.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/rabbitmq/test_rabbitmq_logging.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/rabbitmq/test_rabbitmq_priorities.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/rabbitmq/test_rabbitmq_rpc.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/rabbitmq/test_rabbitmq_rpc_integration.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/rabbitmq/test_rabbitmq_timeouts.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/rabbitmq/test_rabbitmq_timers.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/rabbitmq/test_rabbitmq_worker.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/rabbitmq/test_specifications.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/rabbitmq/test_task_messages.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/rabbitmq/test_task_priorities.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/redis/__init__.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/redis/test_inspector.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/redis/test_inspector_play.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/redis/test_redis.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/redis/test_redis_integration.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/redis/test_redis_logging.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/redis/test_task_messages.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/redis/test_task_priorities.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/test_broker_packaging.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/test_descriptor.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/test_inspector.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/test_inspector_logging.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/test_inspector_play.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/test_lifecycle_hooks.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/test_logging.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/test_pool_callbacks.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/test_process_signals.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/test_runner_hooks.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/test_specifications.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/test_status.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/test_status_ui.cjs +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/test_task_messages.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/test_validator_patterns.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/test_worker.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/test_worker_recovery.py +0 -0
- {defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/tests/test_worker_startup.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.27
|
|
4
4
|
Summary: Synchronous message processing with pluggable broker adapters
|
|
5
5
|
Home-page: https://github.com/yong5eon/DefStream
|
|
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.27
|
|
20
20
|
Requires-Dist: pika>=1.3.2
|
|
21
21
|
Dynamic: author
|
|
22
22
|
Dynamic: classifier
|
|
@@ -232,6 +232,18 @@ issues/fix/53/tasks/1793518878754.md
|
|
|
232
232
|
issues/fix/6/IMPLEMENTS.md
|
|
233
233
|
issues/fix/6/README.md
|
|
234
234
|
issues/fix/6/REQUIREMENTS.md
|
|
235
|
+
issues/fix/64/CHANGELOG.md
|
|
236
|
+
issues/fix/64/IMPLEMENTS.md
|
|
237
|
+
issues/fix/64/PLAN.md
|
|
238
|
+
issues/fix/64/README.md
|
|
239
|
+
issues/fix/64/REQUIREMENTS.md
|
|
240
|
+
issues/fix/64/TASKS.md
|
|
241
|
+
issues/fix/64/implements/1793807653096.md
|
|
242
|
+
issues/fix/64/implements/1793807663436.md
|
|
243
|
+
issues/fix/64/tasks/1793806949650.md
|
|
244
|
+
issues/fix/64/tasks/1793807182094.md
|
|
245
|
+
issues/fix/64/tasks/1793807663435.md
|
|
246
|
+
issues/fix/64/tasks/1793807722809.md
|
|
235
247
|
issues/task/18/IMPLEMENTS.md
|
|
236
248
|
issues/task/18/README.md
|
|
237
249
|
issues/task/18/REQUIREMENTS.md
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Recoverable 명시적 상속 구현 결과
|
|
2
|
+
|
|
3
|
+
## 변경 내용
|
|
4
|
+
|
|
5
|
+
[요구사항 R1~R5](./REQUIREMENTS.md)에 따라 [RabbitMQ Consumer](../../../src/Broker/Implements/RabbitMQ/Consumer.py)에 `Recoverable` import와 직접 상속을 추가했다. 복수 상속 선언은 Python 지침에 따라 여러 줄로 표기했다.
|
|
6
|
+
|
|
7
|
+
기존에는 `is_recoverable` 구현으로 구조적 판별만 가능했지만, 이제 클래스 선언에서도 복구 지원 계약을 확인할 수 있다. 생성자와 오류 분류 구현은 유지했으며 Worker의 복구 판단 흐름과 공통·Redis Consumer의 계약은 변경하지 않았다.
|
|
8
|
+
|
|
9
|
+
[Protocol 계약 테스트](../../../tests/test_protocol_contracts.py)에는 직접 상속, 비추상 클래스, 인스턴스 생성과 `isinstance` 판별 검증을 추가했다. 기존 구조적 지원 검증은 유지하고 생성한 Consumer는 테스트 종료 시 정리한다.
|
|
10
|
+
|
|
11
|
+
## 검증과 영향
|
|
12
|
+
|
|
13
|
+
관련 테스트 14개가 통과했으며 수정 파일에 새 타입·문법 오류는 없다. 제품 코드의 AST 비교로 import와 상속 외 변경이 없음을 확인했다. 상세 환경·명령·제한사항은 [작업 결과](./TASKS.md)를 따른다.
|
|
14
|
+
|
|
15
|
+
인수 기준은 모두 충족했다. 공개 사용법과 오류 분류 변경, 추가 의존성이나 운영 전환은 없으며 커밋·푸시는 수행하지 않았다.
|
|
16
|
+
|
|
17
|
+
## 단계별 구현 기록
|
|
18
|
+
|
|
19
|
+
1. [회귀 테스트 보강](./implements/1793807653096.md)
|
|
20
|
+
2. [명시적 상속 적용](./implements/1793807663436.md)
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# RabbitMQ Consumer의 Recoverable 명시적 상속 작업 계획
|
|
2
|
+
|
|
3
|
+
## 목표와 선행 조건
|
|
4
|
+
|
|
5
|
+
[요구사항 명세](./REQUIREMENTS.md)의 R1~R5를 충족하고 기존 Consumer 생성, 런타임 판별과 오류 분류를 유지한다. 작업 대상과 분기 기준은 [이슈 기록](./README.md)을 따른다.
|
|
6
|
+
|
|
7
|
+
- 작업 전과 파일 수정 묶음 직전에 실제 브랜치가 `fix/64`인지 확인한다.
|
|
8
|
+
- 기존 사용자 변경을 보존하고 이번 이슈와 무관한 변경을 포함하지 않는다.
|
|
9
|
+
- 명세 범위를 벗어나는 계약 변경이 필요하면 구현을 중단하고 요구사항을 먼저 확인한다.
|
|
10
|
+
|
|
11
|
+
## 변경 대상
|
|
12
|
+
|
|
13
|
+
| 대상 | 변경 내용 |
|
|
14
|
+
| --- | --- |
|
|
15
|
+
| [RabbitMQ Consumer](../../../src/Broker/Implements/RabbitMQ/Consumer.py) | `Recoverable` import와 `Consumer(BaseConsumer, Recoverable)` 선언 |
|
|
16
|
+
| [Protocol 계약 테스트](../../../tests/test_protocol_contracts.py) | 직접 상속, 인스턴스 생성과 런타임 판별 검증 |
|
|
17
|
+
| 이슈 문서와 실행 기록 | 실제 구현·검증 결과, 진행 상태와 고객용 변경 로그 기록 |
|
|
18
|
+
|
|
19
|
+
[오류 분류 테스트](../../../tests/test_worker_recovery.py)는 기존 회귀 검증에 활용한다. 새 검증이 필요하지 않으면 수정하지 않는다.
|
|
20
|
+
|
|
21
|
+
## 수행 순서
|
|
22
|
+
|
|
23
|
+
1. **직접 관련된 회귀 테스트 보강 — R1, R2, R4, R5**
|
|
24
|
+
- 기존 `test_recovery_capability_is_structural_and_opt_in`에 `Recoverable in RabbitConsumer.__bases__` 검증을 추가한다.
|
|
25
|
+
- 기존 Mock 기반 생성 패턴을 사용해 RabbitMQ Consumer가 생성되고 `isinstance(consumer, Recoverable)`가 `True`임을 검증한다. 테스트 종료 시 Consumer를 정리한다.
|
|
26
|
+
- 기존 구조적 구현체, 공통 Consumer와 Redis Consumer에 대한 검증을 유지한다.
|
|
27
|
+
- 제품 코드 변경 전 보강한 테스트를 실행해 직접 상속 검증이 실패하는지 확인한다.
|
|
28
|
+
2. **명시적 상속 적용 — R1, R3**
|
|
29
|
+
- 기존 `DefStream.Broker` import에 `Recoverable`을 추가한다.
|
|
30
|
+
- 클래스 선언만 `Consumer(BaseConsumer, Recoverable)`로 변경한다.
|
|
31
|
+
- 생성자, `is_recoverable` 구현과 Worker·Executor는 변경하지 않는다.
|
|
32
|
+
3. **인수 기준과 기존 동작 검증 — R1~R5**
|
|
33
|
+
- 아래의 관련 테스트를 한 번의 실행으로 검증한다.
|
|
34
|
+
- 소스 차이에서 생성자와 오류 분류 구현이 유지되고 import·상속 선언 및 직접 관련 테스트만 변경되었는지 확인한다.
|
|
35
|
+
- 실패하면 원인을 구분한다. 이번 변경에 직접 관련된 문제만 해결하고, 근거 없이 전체 테스트나 외부 RabbitMQ 통합 검증으로 범위를 확대하지 않는다.
|
|
36
|
+
4. **결과와 문서 정리**
|
|
37
|
+
- 의미 있는 구현 단계는 `implements/`, 테스트와 확인 결과는 `tasks/`에 기록한다.
|
|
38
|
+
- 구현 후 `IMPLEMENTS.md`와 `TASKS.md`에 실제 결과와 제한사항을 정리하고 README와 이 계획의 상태를 갱신한다.
|
|
39
|
+
- 공개 API·사용법·운영 절차 변경 여부를 확인한다. 영향이 없으면 상세 매뉴얼을 억지로 수정하지 않고 근거를 기록한다.
|
|
40
|
+
- 실제 반영 내용만 `CHANGELOG.md`에 작성한다. 요구사항·계획 작성이나 테스트 통과 자체를 고객 변경 사항으로 나열하지 않는다.
|
|
41
|
+
|
|
42
|
+
## 인수 기준별 검증
|
|
43
|
+
|
|
44
|
+
| 검증 내용 | 방법 | 요구사항 |
|
|
45
|
+
| --- | --- | --- |
|
|
46
|
+
| 명시적 직접 상속 | 클래스 선언 및 `Recoverable in RabbitConsumer.__bases__` 확인 | R1, R5 |
|
|
47
|
+
| 기존 생성과 런타임 판별 | Mock 연결로 생성한 인스턴스와 `isinstance` 확인 | R2, R4 |
|
|
48
|
+
| 구조적 구현체 지원과 공통·Redis Consumer 비지원 | 기존 Protocol 계약 테스트 유지 및 실행 | R4 |
|
|
49
|
+
| 복구 가능·불가능 오류와 콜백 오류 분류 유지 | 기존 오류 분류 테스트 실행 및 구현 불변 확인 | R3 |
|
|
50
|
+
| ACK 시간 초과 감지와 복구 가능 판정 유지 | 기존 채널 종료 감지 테스트 실행 | R3 |
|
|
51
|
+
|
|
52
|
+
저장소 루트에서 프로젝트 의존성이 설치된 환경의 `python`으로 다음 명령을 실행한다. 기존 Windows 콘솔 인코딩 문제를 피하기 위해 UTF-8 모드를 사용한다. 선택한 테스트는 실제 RabbitMQ 서버 연결을 요구하지 않는다.
|
|
53
|
+
|
|
54
|
+
```shell
|
|
55
|
+
python -X utf8 -m unittest tests.test_protocol_contracts tests.test_worker_recovery.RecoveryTests.test_ack_timeout_and_exception_classification tests.test_worker_recovery.RecoveryTests.test_closed_idle_channel_is_detected_without_settlement
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
문서 완료 시 상대 링크와 경로 표기를 검사하고 `git diff --check`로 공백 오류를 확인한다. 전체 변경 목록에서 무관한 파일, 임시 산출물과 민감정보가 포함되지 않았는지도 확인한다.
|
|
59
|
+
|
|
60
|
+
## 진행 상태
|
|
61
|
+
|
|
62
|
+
- [x] 요구사항 분석과 명세 작성
|
|
63
|
+
- [x] 작업 계획 수립
|
|
64
|
+
- [x] 회귀 테스트 보강과 변경 전 실패 확인
|
|
65
|
+
- [x] 명시적 상속 적용
|
|
66
|
+
- [x] 인수 기준 검증
|
|
67
|
+
- [x] 결과 기록과 변경 로그 정리
|
|
68
|
+
|
|
69
|
+
계획의 구현·검증과 결과 기록을 완료했다. 변경 전 실패 및 변경 후 테스트 14개 통과를 실제 실행으로 확인했다. 수행 결과와 제한사항은 [구현 결과](./IMPLEMENTS.md) 및 [작업 결과](./TASKS.md)를 따른다. 커밋·푸시·병합·이슈 종료는 수행하지 않았다.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# RabbitMQ Consumer의 Recoverable 명시적 상속
|
|
2
|
+
|
|
3
|
+
- 원본: [DefStream #64](https://github.com/yong5eon/DefStream/issues/64)
|
|
4
|
+
- 유형·레이블: `fix` (원본 적용 확인)
|
|
5
|
+
- 대상 저장소: DefStream
|
|
6
|
+
- 작업 브랜치: `fix/64`
|
|
7
|
+
- 분기 기준: `master`
|
|
8
|
+
- [요구사항 명세](./REQUIREMENTS.md)
|
|
9
|
+
- [작업 계획](./PLAN.md)
|
|
10
|
+
- [구현 결과](./IMPLEMENTS.md) · [작업·검증 결과](./TASKS.md) · [변경 로그](./CHANGELOG.md)
|
|
11
|
+
- 최신 [구현 기록](./implements/1793807663436.md) · [작업 기록](./tasks/1793807722809.md)
|
|
12
|
+
- 상태: 명시적 상속 적용과 인수 기준 검증 완료, 커밋·푸시 미수행
|
|
13
|
+
|
|
14
|
+
## 원본 이슈 본문
|
|
15
|
+
|
|
16
|
+
```text
|
|
17
|
+
## 변경 유형
|
|
18
|
+
|
|
19
|
+
일반 변경
|
|
20
|
+
|
|
21
|
+
## 변경 목적
|
|
22
|
+
|
|
23
|
+
RabbitMQ Consumer는 `is_recoverable(error)`를 구현하고 있지만 클래스 선언에는 `BaseConsumer`만 명시되어 있습니다.
|
|
24
|
+
|
|
25
|
+
`Recoverable`은 `@runtime_checkable`이 적용된 Protocol이므로 현재도 구조적 타입으로 인식됩니다. 기능 오류를 수정하려는 것이 아니라 클래스 선언에서 지원 계약을 명확히 드러내려는 변경입니다.
|
|
26
|
+
|
|
27
|
+
## 제안하는 변경 내용
|
|
28
|
+
|
|
29
|
+
- RabbitMQ Consumer가 `Recoverable`을 명시적으로 상속하도록 선언합니다.
|
|
30
|
+
- 기존 `is_recoverable` 구현과 오류 분류 동작은 유지합니다.
|
|
31
|
+
|
|
32
|
+
## 영향 범위
|
|
33
|
+
|
|
34
|
+
`src/Broker/Implements/RabbitMQ/Consumer.py`의 import와 상속 선언 및 직접 관련된 검증으로 한정합니다. 다른 프로토콜이나 Consumer 인터페이스, Worker·Executor의 리팩터링으로 범위를 확대하지 않습니다.
|
|
35
|
+
|
|
36
|
+
## 완료 기준
|
|
37
|
+
|
|
38
|
+
- 클래스 선언에 `Consumer(BaseConsumer, Recoverable)`이 명시됩니다.
|
|
39
|
+
- 기존 Consumer 생성과 `isinstance(consumer, Recoverable)` 판별 및 복구 가능 오류 분류가 유지됩니다.
|
|
40
|
+
|
|
41
|
+
## 관련 이슈
|
|
42
|
+
|
|
43
|
+
- 타이머 지원과 별도 진행: https://github.com/yong5eon/DefStream/issues/62
|
|
44
|
+
- 워커 리팩토링과 별도 진행: https://github.com/yong5eon/DefStream/issues/63
|
|
45
|
+
```
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# RabbitMQ Consumer의 Recoverable 명시적 상속 요구사항
|
|
2
|
+
|
|
3
|
+
## 목적
|
|
4
|
+
|
|
5
|
+
RabbitMQ Consumer가 이미 제공하는 복구 가능 오류 분류 계약을 클래스 선언에 명시한다. 기능 오류를 수정하거나 복구 동작을 변경하는 작업이 아니다.
|
|
6
|
+
|
|
7
|
+
원문과 작업 정보는 [이슈 기록](./README.md)을 기준으로 한다.
|
|
8
|
+
|
|
9
|
+
## 변경 전 분석 근거
|
|
10
|
+
|
|
11
|
+
- [RabbitMQ Consumer](../../../src/Broker/Implements/RabbitMQ/Consumer.py)는 `BaseConsumer`만 상속하지만 `is_recoverable(self, error: BaseException) -> bool`을 구현한다.
|
|
12
|
+
- [Recoverable](../../../src/Broker/Protocol.py)은 `@runtime_checkable`이 적용된 Protocol이다. 명시적 상속 없이도 현재 Consumer의 `issubclass`와 인스턴스의 `isinstance` 판별은 성공한다.
|
|
13
|
+
- [기존 계약 테스트](../../../tests/test_protocol_contracts.py)는 구조적 판별과 공통 Consumer·Redis Consumer의 비지원 여부를 검증하지만, RabbitMQ Consumer의 직접 상속 여부는 검증하지 않는다.
|
|
14
|
+
- [Worker](../../../src/Worker/Worker.py)는 `isinstance(consumer, Recoverable)`와 `is_recoverable(error)`로 복구 여부를 결정한다. 이번 요청을 충족하기 위해 해당 흐름을 변경할 필요는 없다.
|
|
15
|
+
|
|
16
|
+
따라서 import와 클래스 상속 선언을 변경하고, 명시적 상속 및 기존 동작을 직접 검증하는 범위가 적절하다.
|
|
17
|
+
|
|
18
|
+
## 범위
|
|
19
|
+
|
|
20
|
+
### 포함
|
|
21
|
+
|
|
22
|
+
- `src/Broker/Implements/RabbitMQ/Consumer.py`의 `Recoverable` import와 상속 선언
|
|
23
|
+
- 명시적 상속, 인스턴스 생성, 런타임 판별과 기존 오류 분류에 직접 관련된 테스트
|
|
24
|
+
|
|
25
|
+
### 제외
|
|
26
|
+
|
|
27
|
+
- `Recoverable` 정의나 공통 Consumer 인터페이스 변경
|
|
28
|
+
- Redis Consumer 및 다른 Protocol의 상속 관계 변경
|
|
29
|
+
- Worker·Executor의 복구 흐름 변경과 리팩터링
|
|
30
|
+
- 타이머 지원, 재시도 정책 및 새로운 복구 기능 추가
|
|
31
|
+
|
|
32
|
+
## 확정 요구사항
|
|
33
|
+
|
|
34
|
+
| ID | 요구사항 | 근거 |
|
|
35
|
+
| --- | --- | --- |
|
|
36
|
+
| R1 | RabbitMQ Consumer에 `Recoverable`을 import하고 클래스 선언을 `Consumer(BaseConsumer, Recoverable)`로 변경한다. | 원문의 제안 및 완료 기준 |
|
|
37
|
+
| R2 | 기존 생성자 시그니처와 정상적인 인스턴스 생성 동작을 유지한다. | 원문의 기존 Consumer 생성 유지 |
|
|
38
|
+
| R3 | `is_recoverable(self, error: BaseException) -> bool`의 시그니처, 구현과 오류 분류 결과를 유지한다. | 원문의 기존 구현 및 오류 분류 유지 |
|
|
39
|
+
| R4 | RabbitMQ Consumer 인스턴스의 `isinstance(consumer, Recoverable)` 판별을 유지한다. 다른 구조적 구현체의 지원과 공통 Consumer·Redis Consumer의 비지원도 유지한다. | 원문의 런타임 판별 유지 및 기존 계약 테스트 |
|
|
40
|
+
| R5 | 직접 상속 여부를 검증하여 구조적 판별만으로 요구사항 충족을 판단하지 않는다. | 원문의 명시적 상속 완료 기준 |
|
|
41
|
+
|
|
42
|
+
## 호환성과 제약
|
|
43
|
+
|
|
44
|
+
- 공개 import 경로, 메서드 시그니처와 기존 사용 방법을 유지한다.
|
|
45
|
+
- 인증·권한 오류, 연결·채널 종료, ACK 시간 초과와 콜백 오류의 기존 분류를 바꾸지 않는다.
|
|
46
|
+
- Protocol의 구조적 타입 지원을 명시적 상속 전용으로 제한하지 않는다.
|
|
47
|
+
- 새로운 설정, 의존성, 호환성 계층이나 운영 전환 절차를 추가하지 않는다.
|
|
48
|
+
|
|
49
|
+
## 인수 기준
|
|
50
|
+
|
|
51
|
+
| 기준 | 검증 방법 | 대응 요구사항 |
|
|
52
|
+
| --- | --- | --- |
|
|
53
|
+
| 클래스 선언이 `Consumer(BaseConsumer, Recoverable)`이고 `Recoverable`이 직접 부모에 포함된다. | 선언 확인 및 `Recoverable in RabbitConsumer.__bases__` 검증 | R1, R5 |
|
|
54
|
+
| Consumer가 추상 클래스가 되지 않고 기존 인자로 생성된다. | 기존 Mock 연결을 사용하는 생성 검증 | R2 |
|
|
55
|
+
| 생성된 Consumer의 `isinstance(consumer, Recoverable)`가 `True`이다. | 실제 생성 인스턴스의 런타임 판별 | R4 |
|
|
56
|
+
| 기존 구조적 구현체는 계속 인식되고 공통 Consumer·Redis Consumer는 비지원 상태를 유지한다. | 기존 Protocol 계약 테스트 | R4 |
|
|
57
|
+
| 기존 복구 가능·불가능 오류 분류와 콜백 오류 제외 동작을 유지한다. | 기존 RabbitMQ 오류 분류 및 ACK 시간 초과 관련 테스트 | R3 |
|
|
58
|
+
|
|
59
|
+
## 현재 상태
|
|
60
|
+
|
|
61
|
+
구현과 인수 기준 검증을 완료했다. 실제 소스 변경 후 관련 테스트 14개가 통과했으며 이전 분석의 메모리상 검증과 구분했다. 결과와 검증 범위는 [구현 결과](./IMPLEMENTS.md) 및 [작업 결과](./TASKS.md)를 따른다.
|
|
62
|
+
|
|
63
|
+
현재 요구사항 확정에 필요한 미확정 사항은 없다.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# 분석·계획 및 검증 결과
|
|
2
|
+
|
|
3
|
+
## 종합 결과
|
|
4
|
+
|
|
5
|
+
이슈 원문을 기존 계약과 대조해 요구사항과 계획을 작성하고, 명시적 상속 적용 전후의 검증을 수행했다.
|
|
6
|
+
|
|
7
|
+
- 보강한 테스트는 변경 전에 직접 상속 누락으로 1개 실패했다.
|
|
8
|
+
- 변경 후 Python 3.12.10에서 Protocol 계약과 RabbitMQ 오류 분류 관련 테스트 14개가 통과했다.
|
|
9
|
+
- 두 수정 Python 파일에 대한 문법 검사와 타입 진단에서 새 오류는 없었다. 기존 미사용 매개변수 힌트 2개는 그대로 유지했다.
|
|
10
|
+
- 제품 AST 비교로 import·직접 상속 외 코드 불변을 확인했고, 실제 테스트가 작업 트리와 동일한 제품 소스를 사용하는지 확인했다.
|
|
11
|
+
- 이슈 문서 12개의 링크·경로·공백 검사와 `git diff --check`가 통과했으며 무관한 변경은 없다.
|
|
12
|
+
- 공개 사용법과 운영 계약에 변화가 없어 상세 매뉴얼과 루트 README는 갱신하지 않았다.
|
|
13
|
+
|
|
14
|
+
명세의 인수 기준은 모두 충족했다. 전체 테스트, 다른 Python 버전과 실제 브로커 통합 테스트는 실행하지 않았으며, 커밋·푸시·병합·이슈 종료도 수행하지 않았다.
|
|
15
|
+
|
|
16
|
+
## 단계별 작업 기록
|
|
17
|
+
|
|
18
|
+
1. [요구사항 명세 작성](./tasks/1793806949650.md)
|
|
19
|
+
2. [작업 계획 수립](./tasks/1793807182094.md)
|
|
20
|
+
3. [변경 전 회귀 테스트 실패 확인](./tasks/1793807663435.md)
|
|
21
|
+
4. [변경 후 검증과 문서 영향 확인](./tasks/1793807722809.md)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# 명시적 상속과 Consumer 생성의 회귀 테스트 보강
|
|
2
|
+
|
|
3
|
+
[Protocol 계약 테스트](../../../../tests/test_protocol_contracts.py)의 `test_recovery_capability_is_structural_and_opt_in`에 다음 검증을 추가했다.
|
|
4
|
+
|
|
5
|
+
- `Recoverable`이 RabbitMQ Consumer의 직접 부모에 포함되는지 확인한다.
|
|
6
|
+
- RabbitMQ Consumer가 추상 클래스가 아닌지 확인한다.
|
|
7
|
+
- Mock 연결과 디코더로 실제 인스턴스를 생성하고 `isinstance(consumer, Recoverable)`를 확인한다.
|
|
8
|
+
- 생성한 Consumer의 `close`를 테스트 정리 작업으로 등록한다.
|
|
9
|
+
|
|
10
|
+
기존 구조적 구현체와 공통 Consumer·Redis Consumer의 판별 검증은 유지했다. 제품 코드는 아직 변경하지 않았으며, 다음 단계에서 직접 상속 검증이 실패하는지 확인한다.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# RabbitMQ Consumer의 Recoverable 명시적 상속 적용
|
|
2
|
+
|
|
3
|
+
[RabbitMQ Consumer](../../../../src/Broker/Implements/RabbitMQ/Consumer.py)의 기존 `DefStream.Broker` import에 `Recoverable`을 추가하고 직접 부모를 `BaseConsumer`, `Recoverable` 순서로 선언했다.
|
|
4
|
+
|
|
5
|
+
Python 지침의 복수 상속 선언 형식에 따라 여러 줄로 표기했으며, 명세의 `Consumer(BaseConsumer, Recoverable)`와 동일한 상속 관계다.
|
|
6
|
+
|
|
7
|
+
생성자와 `is_recoverable` 구현은 변경하지 않았다. Worker가 구조적 런타임 판별과 기존 오류 분류 결과를 사용하는 흐름도 유지했다. 공통 Consumer, Redis Consumer, Protocol 정의와 Worker·Executor는 수정하지 않았다.
|
|
8
|
+
|
|
9
|
+
회귀 테스트 보강은 [이전 구현 기록](./1793807653096.md), 변경 전 실패 확인은 [작업 기록](../tasks/1793807663435.md)에 기록했다. 변경 후 검증은 다음 단계에서 수행한다.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# 요구사항 분석 결과 명세화
|
|
2
|
+
|
|
3
|
+
- 이슈 원문과 현재 RabbitMQ Consumer, Recoverable 및 Protocol 계약 테스트를 대조했다.
|
|
4
|
+
- [요구사항 명세](../REQUIREMENTS.md)에 변경 목적, 포함·제외 범위, 호환성 제약과 검증 가능한 인수 기준을 작성했다.
|
|
5
|
+
- 직접 상속 검증이 필요한 이유와 기존 구조적 타입 지원을 유지해야 하는 근거를 구분했다.
|
|
6
|
+
- 이전 분석에서는 관련 테스트 14개가 UTF-8 모드로 통과했다. 최초 실행의 콘솔 인코딩 오류는 UTF-8 모드 재실행으로 해소했으며 제품 코드 변경으로 처리하지 않았다.
|
|
7
|
+
- 이전 분석의 메모리상 상속 검증에서는 클래스 생성, 인스턴스 생성과 `isinstance` 판별이 성공했다. 이는 실제 소스 수정 후의 회귀 검증을 대신하지 않는다.
|
|
8
|
+
- 이번 단계에서는 문서만 작성했으며 제품 코드와 테스트는 수정하지 않았다. 다음 단계는 요구사항에 따른 계획 수립이며 구현은 미착수 상태다.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# 요구사항에 따른 작업 계획 수립
|
|
2
|
+
|
|
3
|
+
- [요구사항 명세](../REQUIREMENTS.md)와 기존 Protocol 계약 테스트, Mock 기반 Consumer 생성 패턴 및 오류 분류 테스트를 확인했다.
|
|
4
|
+
- [작업 계획](../PLAN.md)에 테스트 보강, 변경 전 실패 확인, 명시적 상속 적용과 회귀 검증 순서를 작성했다.
|
|
5
|
+
- 인수 기준별 검증 방법과 기존 테스트 실행 명령을 명시했다. 새 기능이나 Worker·Executor 변경은 계획에 포함하지 않았다.
|
|
6
|
+
- [이슈 기록](../README.md)에 계획 링크와 현재 상태를 반영했다.
|
|
7
|
+
- 이번 단계에서는 문서만 작성했으며 테스트 실행이나 제품 코드 변경은 수행하지 않았다. 다음 단계는 명시적 직접 상속 검증을 추가하고 기존 선언에서 실패하는지 확인하는 것이다.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# 변경 전 직접 상속 회귀 테스트 실패 확인
|
|
2
|
+
|
|
3
|
+
제품 코드를 변경하기 전에 저장소 루트에서 기존 프로젝트 가상환경의 `python`으로 다음 명령을 실행했다.
|
|
4
|
+
|
|
5
|
+
```shell
|
|
6
|
+
python -X utf8 -m unittest tests.test_protocol_contracts.ProtocolContractTests.test_recovery_capability_is_structural_and_opt_in
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
테스트 1개가 실패했다. 실패 지점은 `Recoverable in RabbitConsumer.__bases__` 검증이며, 실제 직접 부모는 공통 Consumer 하나뿐이었다. 이는 [요구사항 R1·R5](../REQUIREMENTS.md)의 미충족을 정확히 검출한 결과다.
|
|
10
|
+
|
|
11
|
+
변경 전 Pylance 진단에서 제품 파일에는 진단이 없었다. 계약 테스트에는 기존 지역 매개변수 `cb`, `seconds` 미사용 힌트 2개만 있었으며 오류는 없었다.
|
|
12
|
+
|
|
13
|
+
다음 단계는 import와 상속 선언 변경 및 변경 후 검증이다.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# 변경 후 회귀 검증과 문서 영향 확인
|
|
2
|
+
|
|
3
|
+
## 실행 환경과 결과
|
|
4
|
+
|
|
5
|
+
기존 프로젝트 가상환경의 Python 3.12.10을 사용했다. 저장소 루트에서 다음 명령을 실행해 테스트 14개가 모두 통과했다.
|
|
6
|
+
|
|
7
|
+
```shell
|
|
8
|
+
python -X utf8 -m unittest tests.test_protocol_contracts tests.test_worker_recovery.RecoveryTests.test_ack_timeout_and_exception_classification tests.test_worker_recovery.RecoveryTests.test_closed_idle_channel_is_detected_without_settlement
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
- 직접 상속, 비추상 클래스, 기존 인자를 통한 생성과 인스턴스 판별 검증이 통과했다.
|
|
12
|
+
- 기존 구조적 구현체 지원과 공통 Consumer·Redis Consumer의 비지원 검증을 유지했다.
|
|
13
|
+
- ACK 시간 초과와 연결 종료, 인증 실패, 복구 불가능 채널 오류 및 콜백 오류 분류 검증이 통과했다.
|
|
14
|
+
- 두 수정 Python 파일에 대한 Pylance 문법 검사에서 오류가 없었다.
|
|
15
|
+
- 변경 전후 Pylance 진단을 대조했다. 제품 파일에는 진단이 없고 테스트 파일에는 기존 `cb`, `seconds` 미사용 힌트 2개만 남았다. 새 타입 오류는 없다.
|
|
16
|
+
|
|
17
|
+
## 변경 범위 확인
|
|
18
|
+
|
|
19
|
+
제품 파일의 변경 전후 AST를 비교했다. `Recoverable` import와 직접 부모 추가를 제외하면 AST가 동일하므로 생성자와 `is_recoverable` 구현을 포함한 나머지 제품 코드가 유지됨을 확인했다.
|
|
20
|
+
|
|
21
|
+
테스트에서 import한 제품 모듈의 내용이 작업 트리 소스와 동일한 것도 확인했다. AST 비교는 저장소 밖 일회성 표준 입력 코드로 실행했으며 보존된 스크립트는 없다.
|
|
22
|
+
|
|
23
|
+
이슈 문서 12개의 상대 링크, 개인 절대 경로 노출과 줄 끝 공백을 검사해 통과했다. `git diff --check`도 통과했으며 전체 변경 목록이 해당 이슈 문서와 두 Python 파일로 한정됨을 확인했다.
|
|
24
|
+
|
|
25
|
+
## 문서 영향과 제한사항
|
|
26
|
+
|
|
27
|
+
공개 메서드·설정·사용법·오류 분류·운영 절차 변경이 없는 계약 선언 변경이다. 상세 매뉴얼과 한국어·영어 루트 README의 사용 안내를 갱신할 필요가 없어 수정하지 않았다. 변경 로그에도 사용자 대응이 필요 없음을 명시한다.
|
|
28
|
+
|
|
29
|
+
검증은 위의 관련 테스트와 정적 진단으로 한정했다. 전체 테스트, 다른 Python 버전과 실제 RabbitMQ 서버 통합 테스트는 실행하지 않았다. 이번 변경은 브로커 통신 구현을 바꾸지 않으므로 해당 검증으로 범위를 확대하지 않았다.
|
|
30
|
+
|
|
31
|
+
변경 전 실패는 [앞선 작업 기록](./1793807663435.md), 실제 선언 변경은 [구현 기록](../implements/1793807663436.md)에 기록했다.
|
{defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/src/Broker/Implements/RabbitMQ/Consumer.py
RENAMED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from DefStream.Broker import (
|
|
4
4
|
Consumer as BaseConsumer,
|
|
5
|
+
Recoverable,
|
|
5
6
|
EventHandler,
|
|
6
7
|
Event as BaseEvent,
|
|
7
8
|
)
|
|
@@ -49,7 +50,10 @@ class ConsumptionInterrupted(RuntimeError):
|
|
|
49
50
|
pass
|
|
50
51
|
|
|
51
52
|
|
|
52
|
-
class Consumer(
|
|
53
|
+
class Consumer(
|
|
54
|
+
BaseConsumer,
|
|
55
|
+
Recoverable,
|
|
56
|
+
):
|
|
53
57
|
"""Consumer of Event Broker for RabbitMQ"""
|
|
54
58
|
logger = getLogger('Broker.RabbitMQ.Consumer')
|
|
55
59
|
|
|
@@ -195,6 +195,20 @@ class ProtocolContractTests(TestCase):
|
|
|
195
195
|
self.assertIsInstance(recovery, Recoverable)
|
|
196
196
|
self.assertTrue(recovery.is_recoverable(ConnectionError()))
|
|
197
197
|
self.assertFalse(recovery.is_recoverable(ValueError()))
|
|
198
|
+
self.assertIn(
|
|
199
|
+
Recoverable,
|
|
200
|
+
RabbitConsumer.__bases__,
|
|
201
|
+
)
|
|
202
|
+
self.assertFalse(isabstract(RabbitConsumer))
|
|
203
|
+
consumer: RabbitConsumer = RabbitConsumer(
|
|
204
|
+
connection=Mock(),
|
|
205
|
+
decode=Mock(),
|
|
206
|
+
)
|
|
207
|
+
self.addCleanup(consumer.close)
|
|
208
|
+
self.assertIsInstance(
|
|
209
|
+
consumer,
|
|
210
|
+
Recoverable,
|
|
211
|
+
)
|
|
198
212
|
self.assertTrue(issubclass(RabbitConsumer, Recoverable))
|
|
199
213
|
self.assertFalse(issubclass(Consumer, Recoverable))
|
|
200
214
|
self.assertFalse(issubclass(RedisConsumer, Recoverable))
|
|
File without changes
|
|
File without changes
|
{defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.dev/scripts/tests/test_editable_view.py
RENAMED
|
File without changes
|
|
File without changes
|
{defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/ISSUE_TEMPLATE/01.feature.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/scripts/build_distributions.py
RENAMED
|
File without changes
|
{defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/scripts/check_distributions.py
RENAMED
|
File without changes
|
|
File without changes
|
{defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/scripts/create-pr-from-issue.mjs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/scripts/tests/test_build_backend.py
RENAMED
|
File without changes
|
{defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/scripts/tests/test_distributions.py
RENAMED
|
File without changes
|
{defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/scripts/tests/test_release.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/.github/workflows/create-pr-from-issue.yml
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
|
|
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
|
{defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/tasks/1793272872217.md
RENAMED
|
File without changes
|
{defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/tasks/1793274121654.md
RENAMED
|
File without changes
|
{defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/tasks/1793274231988.md
RENAMED
|
File without changes
|
{defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/tasks/1793275218995.md
RENAMED
|
File without changes
|
{defstream_rabbitmq-0.1.26 → defstream_rabbitmq-0.1.27}/issues/feature/46/tasks/1793275501812.md
RENAMED
|
File without changes
|