rabbitmq-amqp-python-client 2.0.0a1__tar.gz → 2.0.0a2__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.
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.github/workflows/publish-pypi.yaml +6 -7
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/Makefile +1 -1
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/PKG-INFO +4 -4
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/README.md +3 -3
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/docs/examples/auto_reconnection.py +1 -1
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/docs/examples/basic_connection.py +3 -3
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/docs/examples/console_application.py +8 -8
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/docs/examples/consumer_example.py +2 -2
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/docs/examples/direct_reply_to_example.py +4 -4
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/docs/examples/management_example.py +3 -3
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/docs/examples/performance_test.py +6 -6
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/docs/examples/presettled_consumer_example.py +3 -3
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/docs/examples/publisher_example.py +2 -2
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/docs/examples/quorum_single_active_consumer.py +1 -1
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/docs/examples/rejection_reason_example.py +2 -2
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/docs/examples/stream_filtering.py +2 -2
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/docs/examples/tls_connection.py +1 -1
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/pyproject.toml +1 -1
- {rabbitmq_amqp_python_client-2.0.0a1/src → rabbitmq_amqp_python_client-2.0.0a2/rabbitmq_amqp_python_client}/__init__.py +1 -1
- {rabbitmq_amqp_python_client-2.0.0a1/src → rabbitmq_amqp_python_client-2.0.0a2/rabbitmq_amqp_python_client}/logging_utils.py +4 -4
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/integration/test_client_interpolation_integration.py +3 -3
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/integration/test_client_stream_interpolation_integration.py +4 -4
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/integration/test_connection_integration.py +1 -1
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/integration/test_consumer_integration.py +3 -3
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/integration/test_management_integration.py +4 -4
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/integration/test_performance_test_integration.py +2 -2
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/integration/test_publisher_integration.py +3 -3
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/integration/test_reconnection_integration.py +2 -2
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/integration/test_session_link_integration.py +3 -3
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/integration/test_tls_integration.py +1 -1
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/conftest.py +3 -3
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/fake_broker.py +4 -4
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/test_amqp10_validation.py +3 -3
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/test_connection.py +7 -7
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/test_console_application.py +5 -5
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/test_consumer.py +10 -10
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/test_delivery_state.py +3 -3
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/test_encoding.py +2 -2
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/test_frames.py +3 -3
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/test_link.py +3 -3
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/test_management.py +4 -4
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/test_management_builders.py +2 -2
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/test_message.py +3 -3
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/test_package_exports.py +3 -3
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/test_performance_test.py +5 -5
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/test_performatives.py +4 -4
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/test_publisher.py +4 -4
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/test_reconnection.py +10 -10
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/test_sasl.py +3 -3
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/test_session.py +4 -4
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.ci/certs/ca.p12 +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.ci/certs/ca_certificate.pem +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.ci/certs/ca_key.pem +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.ci/certs/client_localhost.p12 +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.ci/certs/client_localhost_certificate.pem +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.ci/certs/client_localhost_key.pem +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.ci/certs/server_localhost.p12 +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.ci/certs/server_localhost_certificate.pem +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.ci/certs/server_localhost_key.pem +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.ci/ubuntu/advanced.config +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.ci/ubuntu/enabled_plugins +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.ci/ubuntu/gha-log-check.sh +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.ci/ubuntu/gha-setup.sh +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.ci/ubuntu/log/.gitkeep +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.ci/ubuntu/rabbitmq.conf +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.github/release.yml +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.github/workflows/build-test.yaml +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.github/workflows/publish_release.yaml +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/.gitignore +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/create_tag.sh +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/docs/examples/README.md +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1/src → rabbitmq_amqp_python_client-2.0.0a2/rabbitmq_amqp_python_client}/connection.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1/src → rabbitmq_amqp_python_client-2.0.0a2/rabbitmq_amqp_python_client}/constants.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1/src → rabbitmq_amqp_python_client-2.0.0a2/rabbitmq_amqp_python_client}/consumer.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1/src → rabbitmq_amqp_python_client-2.0.0a2/rabbitmq_amqp_python_client}/exceptions.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1/src → rabbitmq_amqp_python_client-2.0.0a2/rabbitmq_amqp_python_client}/link.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1/src → rabbitmq_amqp_python_client-2.0.0a2/rabbitmq_amqp_python_client}/management.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1/src → rabbitmq_amqp_python_client-2.0.0a2/rabbitmq_amqp_python_client}/publisher.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1/src → rabbitmq_amqp_python_client-2.0.0a2/rabbitmq_amqp_python_client}/reconnection.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1/src → rabbitmq_amqp_python_client-2.0.0a2/rabbitmq_amqp_python_client}/session.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1/src → rabbitmq_amqp_python_client-2.0.0a2/rabbitmq_amqp_python_client}/wire/__init__.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1/src → rabbitmq_amqp_python_client-2.0.0a2/rabbitmq_amqp_python_client}/wire/delivery_state.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1/src → rabbitmq_amqp_python_client-2.0.0a2/rabbitmq_amqp_python_client}/wire/encoding.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1/src → rabbitmq_amqp_python_client-2.0.0a2/rabbitmq_amqp_python_client}/wire/frames.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1/src → rabbitmq_amqp_python_client-2.0.0a2/rabbitmq_amqp_python_client}/wire/message.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1/src → rabbitmq_amqp_python_client-2.0.0a2/rabbitmq_amqp_python_client}/wire/performatives.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1/src → rabbitmq_amqp_python_client-2.0.0a2/rabbitmq_amqp_python_client}/wire/sasl.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/__init__.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/integration/__init__.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/integration/conftest.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/integration/test_console_application_integration.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/__init__.py +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/resources/amqp10_validation/empty_message.amqp +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/resources/amqp10_validation/header_amqpvalue_message.amqp +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/resources/amqp10_validation/message_body_250.amqp +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/resources/amqp10_validation/message_body_700.amqp +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/resources/amqp10_validation/message_from_version_1_0_0.amqp +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/resources/amqp10_validation/message_random_application_properties_300.amqp +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/resources/amqp10_validation/message_random_application_properties_500.amqp +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/resources/amqp10_validation/message_random_application_properties_properties_900.amqp +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/resources/amqp10_validation/message_unicode_message.amqp +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/resources/amqp10_validation/nil_and_types.amqp +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/resources/amqp10_validation/shovel_annotations.amqp +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/resources/amqp10_validation/static_test_message_compare.amqp +0 -0
- {rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/resources/amqp10_validation/uuid_message.amqp +0 -0
|
@@ -25,14 +25,13 @@ jobs:
|
|
|
25
25
|
id-token: write
|
|
26
26
|
steps:
|
|
27
27
|
- uses: actions/checkout@v3
|
|
28
|
-
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
- uses: actions/setup-python@v5
|
|
29
|
+
with:
|
|
30
|
+
python-version: "3.12"
|
|
31
|
+
- name: build
|
|
31
32
|
run: |
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
poetry config repositories.test-pypi $REPO
|
|
35
|
-
poetry build
|
|
33
|
+
python3 -m pip install build
|
|
34
|
+
python3 -m build
|
|
36
35
|
# retrieve your distributions here
|
|
37
36
|
- name: Publish package distributions to PyPI
|
|
38
37
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: rabbitmq-amqp-python-client
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.0a2
|
|
4
4
|
Summary: A from-scratch AMQP 1.0 client for RabbitMQ, built directly against the wire protocol.
|
|
5
5
|
Author: RabbitMQ Team
|
|
6
6
|
License: Apache-2.0
|
|
@@ -42,7 +42,7 @@ pip install -e ".[dev]"
|
|
|
42
42
|
## Quick start
|
|
43
43
|
|
|
44
44
|
```python
|
|
45
|
-
from
|
|
45
|
+
from rabbitmq_amqp_python_client import Connection, ConnectionParameters, Context, Message
|
|
46
46
|
|
|
47
47
|
connection = Connection(ConnectionParameters()) # localhost:5672, guest/guest
|
|
48
48
|
try:
|
|
@@ -84,7 +84,7 @@ PYTHONPATH=. .venv/bin/python docs/examples/basic_connection.py
|
|
|
84
84
|
make install # create .venv and install the package with its dev extras
|
|
85
85
|
make format # ruff format, then ruff check --fix
|
|
86
86
|
make lint # ruff check and ruff format --check
|
|
87
|
-
make typecheck # mypy
|
|
87
|
+
make typecheck # mypy rabbitmq_amqp_python_client, in strict mode
|
|
88
88
|
make test-unit # the unit suite; no broker needed
|
|
89
89
|
make test-integration # the integration suite; needs a broker on localhost:5672
|
|
90
90
|
make test # both suites
|
|
@@ -98,7 +98,7 @@ MYPYPATH=. .venv/bin/python -m mypy docs/examples/*.py
|
|
|
98
98
|
|
|
99
99
|
## Project layout
|
|
100
100
|
|
|
101
|
-
`
|
|
101
|
+
`rabbitmq_amqp_python_client/` holds the client: `wire/` is the protocol
|
|
102
102
|
layer (type codec, frames, performatives, messages, SASL) and knows nothing
|
|
103
103
|
above itself, and `connection.py`, `session.py`, `link.py`, `management.py`,
|
|
104
104
|
`publisher.py`, `consumer.py` and `reconnection.py` build the public API on top
|
|
@@ -26,7 +26,7 @@ pip install -e ".[dev]"
|
|
|
26
26
|
## Quick start
|
|
27
27
|
|
|
28
28
|
```python
|
|
29
|
-
from
|
|
29
|
+
from rabbitmq_amqp_python_client import Connection, ConnectionParameters, Context, Message
|
|
30
30
|
|
|
31
31
|
connection = Connection(ConnectionParameters()) # localhost:5672, guest/guest
|
|
32
32
|
try:
|
|
@@ -68,7 +68,7 @@ PYTHONPATH=. .venv/bin/python docs/examples/basic_connection.py
|
|
|
68
68
|
make install # create .venv and install the package with its dev extras
|
|
69
69
|
make format # ruff format, then ruff check --fix
|
|
70
70
|
make lint # ruff check and ruff format --check
|
|
71
|
-
make typecheck # mypy
|
|
71
|
+
make typecheck # mypy rabbitmq_amqp_python_client, in strict mode
|
|
72
72
|
make test-unit # the unit suite; no broker needed
|
|
73
73
|
make test-integration # the integration suite; needs a broker on localhost:5672
|
|
74
74
|
make test # both suites
|
|
@@ -82,7 +82,7 @@ MYPYPATH=. .venv/bin/python -m mypy docs/examples/*.py
|
|
|
82
82
|
|
|
83
83
|
## Project layout
|
|
84
84
|
|
|
85
|
-
`
|
|
85
|
+
`rabbitmq_amqp_python_client/` holds the client: `wire/` is the protocol
|
|
86
86
|
layer (type codec, frames, performatives, messages, SASL) and knows nothing
|
|
87
87
|
above itself, and `connection.py`, `session.py`, `link.py`, `management.py`,
|
|
88
88
|
`publisher.py`, `consumer.py` and `reconnection.py` build the public API on top
|
|
@@ -4,12 +4,12 @@ Run against a local broker::
|
|
|
4
4
|
|
|
5
5
|
PYTHONPATH=. .venv/bin/python docs/examples/basic_connection.py
|
|
6
6
|
|
|
7
|
-
Constructing a :class:`~
|
|
7
|
+
Constructing a :class:`~rabbitmq_amqp_python_client.Connection` dials the TCP
|
|
8
8
|
socket, exchanges the protocol header, runs SASL and the ``open`` handshake, and
|
|
9
9
|
starts the frame reader — all before ``__init__`` returns. There is no separate
|
|
10
10
|
``connect()`` step: a constructed connection is already ``OPEN`` and usable.
|
|
11
11
|
|
|
12
|
-
The default :class:`~
|
|
12
|
+
The default :class:`~rabbitmq_amqp_python_client.ConnectionParameters` describe
|
|
13
13
|
exactly what a stock broker offers — ``localhost:5672``, ``guest``/``guest``, the
|
|
14
14
|
``/`` virtual host — so the no-argument form below is the shortest connection
|
|
15
15
|
this client can make. What the broker sent back in its own ``open`` is readable
|
|
@@ -24,7 +24,7 @@ from __future__ import annotations
|
|
|
24
24
|
|
|
25
25
|
import logging
|
|
26
26
|
|
|
27
|
-
from
|
|
27
|
+
from rabbitmq_amqp_python_client import Connection, ConnectionParameters
|
|
28
28
|
|
|
29
29
|
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)-7s %(name)s: %(message)s")
|
|
30
30
|
logger = logging.getLogger("example")
|
|
@@ -11,11 +11,11 @@ both confirmed and consumed, so this doubles as a scriptable smoke test::
|
|
|
11
11
|
python3 docs/examples/console_application.py --help
|
|
12
12
|
|
|
13
13
|
This program adds nothing to the client's public surface: it is built entirely
|
|
14
|
-
out of :class:`~
|
|
15
|
-
:class:`~
|
|
16
|
-
:class:`~
|
|
17
|
-
:class:`~
|
|
18
|
-
:class:`~
|
|
14
|
+
out of :class:`~rabbitmq_amqp_python_client.Connection`,
|
|
15
|
+
:class:`~rabbitmq_amqp_python_client.Management`,
|
|
16
|
+
:class:`~rabbitmq_amqp_python_client.Publisher`,
|
|
17
|
+
:class:`~rabbitmq_amqp_python_client.Consumer` and
|
|
18
|
+
:class:`~rabbitmq_amqp_python_client.RecoveryConfiguration`. It owns exactly one
|
|
19
19
|
connection: it is a correctness/smoke-test tool, not a load generator.
|
|
20
20
|
|
|
21
21
|
Exit codes:
|
|
@@ -49,7 +49,7 @@ _SOURCE_ROOT = Path(__file__).resolve().parents[2]
|
|
|
49
49
|
if _SOURCE_ROOT.is_dir() and str(_SOURCE_ROOT) not in sys.path:
|
|
50
50
|
sys.path.insert(0, str(_SOURCE_ROOT))
|
|
51
51
|
|
|
52
|
-
from
|
|
52
|
+
from rabbitmq_amqp_python_client import ( # noqa: E402 - after the sys.path bootstrap above
|
|
53
53
|
AMQPError,
|
|
54
54
|
Connection,
|
|
55
55
|
ConnectionParameters,
|
|
@@ -64,7 +64,7 @@ from src import ( # noqa: E402 - after the sys.path bootstrap above
|
|
|
64
64
|
)
|
|
65
65
|
|
|
66
66
|
if TYPE_CHECKING:
|
|
67
|
-
from
|
|
67
|
+
from rabbitmq_amqp_python_client.connection import ConnectionState
|
|
68
68
|
|
|
69
69
|
# --- exit codes (§7) ----------------------------------------------------
|
|
70
70
|
|
|
@@ -475,7 +475,7 @@ def map_queue_type(options: Options, specification: QueueSpecification) -> Queue
|
|
|
475
475
|
specification: The builder from ``management.queue(name)``.
|
|
476
476
|
|
|
477
477
|
Returns:
|
|
478
|
-
The same builder, ready to :meth:`~
|
|
478
|
+
The same builder, ready to :meth:`~rabbitmq_amqp_python_client.QueueSpecification.declare`.
|
|
479
479
|
|
|
480
480
|
Raises:
|
|
481
481
|
OptionsError: If ``queue_type`` is not one of :data:`QUEUE_TYPES`.
|
|
@@ -8,7 +8,7 @@ A consumer is a receiver link plus a ``message_handler``. The link is granted
|
|
|
8
8
|
``initial_credits`` when it attaches, and the client re-grants one credit every
|
|
9
9
|
time a delivery is settled, so at most that many messages are ever outstanding.
|
|
10
10
|
The handler runs on the client's delivery thread and is handed a
|
|
11
|
-
:class:`~
|
|
11
|
+
:class:`~rabbitmq_amqp_python_client.Context` alongside the message; calling
|
|
12
12
|
``context.accept()`` settles the delivery as ``accepted``, which is what tells
|
|
13
13
|
the broker it may drop it. ``discard()`` and ``requeue()`` are the other two
|
|
14
14
|
choices, and doing nothing leaves the delivery unsettled — visible as
|
|
@@ -28,7 +28,7 @@ import logging
|
|
|
28
28
|
import queue
|
|
29
29
|
import uuid
|
|
30
30
|
|
|
31
|
-
from
|
|
31
|
+
from rabbitmq_amqp_python_client import (
|
|
32
32
|
Connection,
|
|
33
33
|
ConnectionParameters,
|
|
34
34
|
Context,
|
|
@@ -12,7 +12,7 @@ dynamically generates a private, per-attach pseudo-queue address
|
|
|
12
12
|
reply puts that address in an outgoing request's ``properties.reply_to``;
|
|
13
13
|
whoever answers just needs to publish to it — no dedicated, exclusive reply
|
|
14
14
|
queue to declare and clean up per requester. Like a presettled consumer, its
|
|
15
|
-
``Context`` methods all raise :class:`~
|
|
15
|
+
``Context`` methods all raise :class:`~rabbitmq_amqp_python_client.ConsumerError`: the broker considers
|
|
16
16
|
every delivery on this link already settled the instant it sends it.
|
|
17
17
|
|
|
18
18
|
This script plays both roles, on two separate connections:
|
|
@@ -22,7 +22,7 @@ This script plays both roles, on two separate connections:
|
|
|
22
22
|
* the **responder** (``responder_connection``) declares an ordinary request
|
|
23
23
|
queue, consumes it with a normal ``ExplicitSettle`` consumer, and replies to
|
|
24
24
|
whatever address arrived in the request's ``reply_to`` — an ordinary
|
|
25
|
-
anonymous :class:`~
|
|
25
|
+
anonymous :class:`~rabbitmq_amqp_python_client.Publisher` (step_020_publishers.md §3.3) also sends
|
|
26
26
|
the request itself, targeting the request queue.
|
|
27
27
|
|
|
28
28
|
Because the pseudo-queue is scoped to the exact connection and session that
|
|
@@ -43,7 +43,7 @@ import socket
|
|
|
43
43
|
import time
|
|
44
44
|
import uuid
|
|
45
45
|
|
|
46
|
-
from
|
|
46
|
+
from rabbitmq_amqp_python_client import (
|
|
47
47
|
Connection,
|
|
48
48
|
ConnectionParameters,
|
|
49
49
|
ConnectionState,
|
|
@@ -55,7 +55,7 @@ from src import (
|
|
|
55
55
|
RecoveryConfiguration,
|
|
56
56
|
queue_address,
|
|
57
57
|
)
|
|
58
|
-
from
|
|
58
|
+
from rabbitmq_amqp_python_client.wire import Properties
|
|
59
59
|
|
|
60
60
|
#: How long the example waits for a reply it expects.
|
|
61
61
|
TIMEOUT_SECONDS = 15.0
|
|
@@ -14,7 +14,7 @@ request message out and one response message back, correlated by
|
|
|
14
14
|
The script walks the whole surface once:
|
|
15
15
|
|
|
16
16
|
1. ``queue(name).declare()`` declares a classic queue and returns a
|
|
17
|
-
:class:`~
|
|
17
|
+
:class:`~rabbitmq_amqp_python_client.QueueInfo` parsed from the broker's
|
|
18
18
|
answer, so the queue's real settings are readable straight away;
|
|
19
19
|
2. ``exchange(name).type(ExchangeType.TOPIC).declare()`` declares a topic
|
|
20
20
|
exchange;
|
|
@@ -26,7 +26,7 @@ The script walks the whole surface once:
|
|
|
26
26
|
|
|
27
27
|
Declaring is idempotent as long as the arguments match: re-declaring the same
|
|
28
28
|
queue is a successful no-op, while re-declaring it with different arguments is a
|
|
29
|
-
:class:`~
|
|
29
|
+
:class:`~rabbitmq_amqp_python_client.ManagementError`.
|
|
30
30
|
"""
|
|
31
31
|
|
|
32
32
|
from __future__ import annotations
|
|
@@ -34,7 +34,7 @@ from __future__ import annotations
|
|
|
34
34
|
import logging
|
|
35
35
|
import uuid
|
|
36
36
|
|
|
37
|
-
from
|
|
37
|
+
from rabbitmq_amqp_python_client import (
|
|
38
38
|
Connection,
|
|
39
39
|
ConnectionParameters,
|
|
40
40
|
ExchangeType,
|
|
@@ -13,10 +13,10 @@ summary::
|
|
|
13
13
|
python3 docs/examples/performance_test.py --help
|
|
14
14
|
|
|
15
15
|
This program adds nothing to the client's public surface: it is built entirely
|
|
16
|
-
out of :class:`~
|
|
17
|
-
:class:`~
|
|
18
|
-
:class:`~
|
|
19
|
-
:class:`~
|
|
16
|
+
out of :class:`~rabbitmq_amqp_python_client.Connection`,
|
|
17
|
+
:class:`~rabbitmq_amqp_python_client.Management`,
|
|
18
|
+
:class:`~rabbitmq_amqp_python_client.Publisher` and
|
|
19
|
+
:class:`~rabbitmq_amqp_python_client.Consumer`. It owns exactly one connection,
|
|
20
20
|
one publisher and one consumer: it measures what one such pair can sustain, not
|
|
21
21
|
a cluster-wide ceiling (§10).
|
|
22
22
|
|
|
@@ -57,7 +57,7 @@ _SOURCE_ROOT = Path(__file__).resolve().parents[2]
|
|
|
57
57
|
if _SOURCE_ROOT.is_dir() and str(_SOURCE_ROOT) not in sys.path:
|
|
58
58
|
sys.path.insert(0, str(_SOURCE_ROOT))
|
|
59
59
|
|
|
60
|
-
from
|
|
60
|
+
from rabbitmq_amqp_python_client import ( # noqa: E402 - after the sys.path bootstrap above
|
|
61
61
|
AMQPError,
|
|
62
62
|
ApplicationProperties,
|
|
63
63
|
Connection,
|
|
@@ -931,7 +931,7 @@ def map_queue_type(options: Options, specification: QueueSpecification) -> Queue
|
|
|
931
931
|
specification: The builder from ``management.queue(name)``.
|
|
932
932
|
|
|
933
933
|
Returns:
|
|
934
|
-
The same builder, ready to :meth:`~
|
|
934
|
+
The same builder, ready to :meth:`~rabbitmq_amqp_python_client.QueueSpecification.declare`.
|
|
935
935
|
|
|
936
936
|
Raises:
|
|
937
937
|
OptionsError: If ``queue_type`` is not one of :data:`QUEUE_TYPES`.
|
|
@@ -13,9 +13,9 @@ consumer dies holding one.
|
|
|
13
13
|
|
|
14
14
|
Two consequences show up directly in the API and are asserted below:
|
|
15
15
|
|
|
16
|
-
* the handler must not touch its :class:`~
|
|
16
|
+
* the handler must not touch its :class:`~rabbitmq_amqp_python_client.Context`.
|
|
17
17
|
There is nothing left to settle, so ``accept()``/``discard()``/``requeue()``
|
|
18
|
-
each raise :class:`~
|
|
18
|
+
each raise :class:`~rabbitmq_amqp_python_client.ConsumerError`. A presettled
|
|
19
19
|
handler only reads the message. ``context.is_presettled`` says which mode it
|
|
20
20
|
is running in, for a handler shared between both;
|
|
21
21
|
* ``consumer.unsettled_message_count`` stays at ``0`` for the consumer's whole
|
|
@@ -38,7 +38,7 @@ import socket
|
|
|
38
38
|
import time
|
|
39
39
|
import uuid
|
|
40
40
|
|
|
41
|
-
from
|
|
41
|
+
from rabbitmq_amqp_python_client import (
|
|
42
42
|
Connection,
|
|
43
43
|
ConnectionParameters,
|
|
44
44
|
ConnectionState,
|
|
@@ -18,7 +18,7 @@ how that address is chosen. All three forms appear here:
|
|
|
18
18
|
two different addresses, one link.
|
|
19
19
|
|
|
20
20
|
Every ``publish`` blocks until the broker settles the message and returns a
|
|
21
|
-
:class:`~
|
|
21
|
+
:class:`~rabbitmq_amqp_python_client.PublishResult` pairing the message with its
|
|
22
22
|
outcome. ``RELEASED`` is worth noticing: it is not an error and not a rejection,
|
|
23
23
|
it is the broker saying the message routed nowhere — which is exactly what
|
|
24
24
|
happens when an exchange has no binding matching the routing key.
|
|
@@ -32,7 +32,7 @@ from __future__ import annotations
|
|
|
32
32
|
import logging
|
|
33
33
|
import uuid
|
|
34
34
|
|
|
35
|
-
from
|
|
35
|
+
from rabbitmq_amqp_python_client import (
|
|
36
36
|
Connection,
|
|
37
37
|
ConnectionParameters,
|
|
38
38
|
ExchangeType,
|
|
@@ -19,7 +19,7 @@ A rejection is **not** an error here: ``publish`` returns normally with
|
|
|
19
19
|
publish attempt itself succeeded — it is the routing that did not. Anything the
|
|
20
20
|
broker said about why is parsed out of the ``rejected`` disposition's
|
|
21
21
|
``error.info`` map into
|
|
22
|
-
:class:`~
|
|
22
|
+
:class:`~rabbitmq_amqp_python_client.RejectionDetails`:
|
|
23
23
|
|
|
24
24
|
* ``reason`` — the broker's explanation, e.g. ``maximum queue length exceeded``;
|
|
25
25
|
* ``rejected_by_queue`` — which queue rejected it, which matters when the
|
|
@@ -36,7 +36,7 @@ from __future__ import annotations
|
|
|
36
36
|
import logging
|
|
37
37
|
import uuid
|
|
38
38
|
|
|
39
|
-
from
|
|
39
|
+
from rabbitmq_amqp_python_client import (
|
|
40
40
|
Connection,
|
|
41
41
|
ConnectionParameters,
|
|
42
42
|
Message,
|
|
@@ -32,7 +32,7 @@ import logging
|
|
|
32
32
|
import queue
|
|
33
33
|
import uuid
|
|
34
34
|
|
|
35
|
-
from
|
|
35
|
+
from rabbitmq_amqp_python_client import (
|
|
36
36
|
ApplicationProperties,
|
|
37
37
|
Connection,
|
|
38
38
|
ConnectionParameters,
|
|
@@ -44,7 +44,7 @@ from src import (
|
|
|
44
44
|
StreamOffsetSpecification,
|
|
45
45
|
Symbol,
|
|
46
46
|
)
|
|
47
|
-
from
|
|
47
|
+
from rabbitmq_amqp_python_client.constants import STREAM_FILTER_VALUE_ANNOTATION
|
|
48
48
|
|
|
49
49
|
#: How long the example waits for the deliveries a filter should let through.
|
|
50
50
|
TIMEOUT_SECONDS = 15.0
|
|
@@ -24,7 +24,7 @@ import logging
|
|
|
24
24
|
import pathlib
|
|
25
25
|
import ssl
|
|
26
26
|
|
|
27
|
-
from
|
|
27
|
+
from rabbitmq_amqp_python_client import Connection, ConnectionParameters
|
|
28
28
|
|
|
29
29
|
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)-7s %(name)s: %(message)s")
|
|
30
30
|
logger = logging.getLogger("example")
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "rabbitmq-amqp-python-client"
|
|
7
|
-
version = "2.0.0-alpha.
|
|
7
|
+
version = "2.0.0-alpha.2"
|
|
8
8
|
description = "A from-scratch AMQP 1.0 client for RabbitMQ, built directly against the wire protocol."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -4,7 +4,7 @@ Everything an application needs is exported here: the connection and its
|
|
|
4
4
|
parameters, the management API and its specifications, the publisher and
|
|
5
5
|
consumer builders, the reconnection policy, and the message types needed to
|
|
6
6
|
compose a message and read an outcome. The lower layers remain importable from
|
|
7
|
-
their own modules — :mod:`~
|
|
7
|
+
their own modules — :mod:`~rabbitmq_amqp_python_client.wire` in particular holds
|
|
8
8
|
the rest of the protocol types. See ``docs/examples`` for usage.
|
|
9
9
|
"""
|
|
10
10
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"""Logging helpers.
|
|
2
2
|
|
|
3
3
|
The client logs through the standard :mod:`logging` package under the
|
|
4
|
-
``
|
|
5
|
-
levels/handlers the normal way (``logging.getLogger("
|
|
4
|
+
``rabbitmq_amqp_python_client`` logger namespace. Applications configure
|
|
5
|
+
levels/handlers the normal way (``logging.getLogger("rabbitmq_amqp_python_client")``);
|
|
6
6
|
this module only centralizes the child-logger naming convention.
|
|
7
7
|
"""
|
|
8
8
|
|
|
@@ -10,7 +10,7 @@ from __future__ import annotations
|
|
|
10
10
|
|
|
11
11
|
import logging
|
|
12
12
|
|
|
13
|
-
ROOT_LOGGER_NAME = "
|
|
13
|
+
ROOT_LOGGER_NAME = "rabbitmq_amqp_python_client"
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
def get_logger(component: str) -> logging.Logger:
|
|
@@ -21,6 +21,6 @@ def get_logger(component: str) -> logging.Logger:
|
|
|
21
21
|
or ``"consumer"``.
|
|
22
22
|
|
|
23
23
|
Returns:
|
|
24
|
-
A logger named ``
|
|
24
|
+
A logger named ``rabbitmq_amqp_python_client.<component>``.
|
|
25
25
|
"""
|
|
26
26
|
return logging.getLogger(f"{ROOT_LOGGER_NAME}.{component}")
|
|
@@ -28,9 +28,9 @@ import uuid
|
|
|
28
28
|
import pika
|
|
29
29
|
import pytest
|
|
30
30
|
|
|
31
|
-
from
|
|
32
|
-
from
|
|
33
|
-
from
|
|
31
|
+
from rabbitmq_amqp_python_client import Connection, ConnectionParameters, OutcomeState
|
|
32
|
+
from rabbitmq_amqp_python_client.management import QueueInfo
|
|
33
|
+
from rabbitmq_amqp_python_client.wire import ApplicationProperties, Message, Properties
|
|
34
34
|
|
|
35
35
|
pytestmark = pytest.mark.integration
|
|
36
36
|
|
|
@@ -45,10 +45,10 @@ from rstream import Consumer as RstreamConsumer
|
|
|
45
45
|
from rstream import Producer as RstreamProducer
|
|
46
46
|
from rstream import Properties as RstreamProperties
|
|
47
47
|
|
|
48
|
-
from
|
|
49
|
-
from
|
|
50
|
-
from
|
|
51
|
-
from
|
|
48
|
+
from rabbitmq_amqp_python_client import Connection, ConnectionParameters, OutcomeState
|
|
49
|
+
from rabbitmq_amqp_python_client.consumer import StreamOffsetSpecification
|
|
50
|
+
from rabbitmq_amqp_python_client.management import QueueInfo
|
|
51
|
+
from rabbitmq_amqp_python_client.wire import ApplicationProperties, Message, Properties
|
|
52
52
|
|
|
53
53
|
pytestmark = pytest.mark.integration
|
|
54
54
|
|
|
@@ -22,7 +22,7 @@ import uuid
|
|
|
22
22
|
|
|
23
23
|
import pytest
|
|
24
24
|
|
|
25
|
-
from
|
|
25
|
+
from rabbitmq_amqp_python_client import (
|
|
26
26
|
Connection,
|
|
27
27
|
ConnectionParameters,
|
|
28
28
|
ConsumerError,
|
|
@@ -30,8 +30,8 @@ from src import (
|
|
|
30
30
|
OutcomeState,
|
|
31
31
|
StreamOffsetSpecification,
|
|
32
32
|
)
|
|
33
|
-
from
|
|
34
|
-
from
|
|
33
|
+
from rabbitmq_amqp_python_client.constants import STREAM_FILTER_VALUE_ANNOTATION
|
|
34
|
+
from rabbitmq_amqp_python_client.wire import (
|
|
35
35
|
ApplicationProperties,
|
|
36
36
|
Message,
|
|
37
37
|
MessageAnnotations,
|
|
@@ -13,7 +13,7 @@ import uuid
|
|
|
13
13
|
|
|
14
14
|
import pytest
|
|
15
15
|
|
|
16
|
-
from
|
|
16
|
+
from rabbitmq_amqp_python_client import (
|
|
17
17
|
ClassicQueueMode,
|
|
18
18
|
ClassicQueueVersion,
|
|
19
19
|
Connection,
|
|
@@ -28,15 +28,15 @@ from src import (
|
|
|
28
28
|
ReceiverLink,
|
|
29
29
|
SenderLink,
|
|
30
30
|
)
|
|
31
|
-
from
|
|
32
|
-
from
|
|
31
|
+
from rabbitmq_amqp_python_client.constants import EXCHANGE_ADDRESS_WITH_KEY_TEMPLATE
|
|
32
|
+
from rabbitmq_amqp_python_client.management import (
|
|
33
33
|
STATUS_BAD_REQUEST,
|
|
34
34
|
STATUS_CONFLICT,
|
|
35
35
|
STATUS_NOT_FOUND,
|
|
36
36
|
encode_path_segment,
|
|
37
37
|
queue_path,
|
|
38
38
|
)
|
|
39
|
-
from
|
|
39
|
+
from rabbitmq_amqp_python_client.wire import Accepted, Message, Source, Target
|
|
40
40
|
|
|
41
41
|
pytestmark = pytest.mark.integration
|
|
42
42
|
|
|
@@ -21,8 +21,8 @@ from pathlib import Path
|
|
|
21
21
|
import performance_test as app
|
|
22
22
|
import pytest
|
|
23
23
|
|
|
24
|
-
from
|
|
25
|
-
from
|
|
24
|
+
from rabbitmq_amqp_python_client import Connection, ConnectionParameters
|
|
25
|
+
from rabbitmq_amqp_python_client.wire import Message
|
|
26
26
|
|
|
27
27
|
pytestmark = pytest.mark.integration
|
|
28
28
|
|
|
@@ -5,7 +5,7 @@ message, ``released`` for an exchange with no bindings, and ``rejected`` with
|
|
|
5
5
|
structured details for a quorum queue whose ``x-overflow`` is
|
|
6
6
|
``reject-publish`` (step_070 §6). Consumers are a later step, so the one test
|
|
7
7
|
that has to prove a message really landed attaches a raw
|
|
8
|
-
:class:`~
|
|
8
|
+
:class:`~rabbitmq_amqp_python_client.ReceiverLink` itself.
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
11
|
from __future__ import annotations
|
|
@@ -16,7 +16,7 @@ import uuid
|
|
|
16
16
|
|
|
17
17
|
import pytest
|
|
18
18
|
|
|
19
|
-
from
|
|
19
|
+
from rabbitmq_amqp_python_client import (
|
|
20
20
|
Connection,
|
|
21
21
|
ConnectionParameters,
|
|
22
22
|
ExchangeType,
|
|
@@ -27,7 +27,7 @@ from src import (
|
|
|
27
27
|
exchange_address,
|
|
28
28
|
queue_address,
|
|
29
29
|
)
|
|
30
|
-
from
|
|
30
|
+
from rabbitmq_amqp_python_client.wire import Accepted, Message, Properties, Source
|
|
31
31
|
|
|
32
32
|
pytestmark = pytest.mark.integration
|
|
33
33
|
|
|
@@ -27,7 +27,7 @@ import uuid
|
|
|
27
27
|
|
|
28
28
|
import pytest
|
|
29
29
|
|
|
30
|
-
from
|
|
30
|
+
from rabbitmq_amqp_python_client import (
|
|
31
31
|
AMQPError,
|
|
32
32
|
Connection,
|
|
33
33
|
ConnectionParameters,
|
|
@@ -36,7 +36,7 @@ from src import (
|
|
|
36
36
|
ManagementError,
|
|
37
37
|
RecoveryConfiguration,
|
|
38
38
|
)
|
|
39
|
-
from
|
|
39
|
+
from rabbitmq_amqp_python_client.wire import Message
|
|
40
40
|
|
|
41
41
|
pytestmark = pytest.mark.integration
|
|
42
42
|
|
|
@@ -6,7 +6,7 @@ import uuid
|
|
|
6
6
|
|
|
7
7
|
import pytest
|
|
8
8
|
|
|
9
|
-
from
|
|
9
|
+
from rabbitmq_amqp_python_client import (
|
|
10
10
|
Connection,
|
|
11
11
|
ConnectionParameters,
|
|
12
12
|
ConsumerError,
|
|
@@ -15,7 +15,7 @@ from src import (
|
|
|
15
15
|
ReceiverLink,
|
|
16
16
|
SenderLink,
|
|
17
17
|
)
|
|
18
|
-
from
|
|
18
|
+
from rabbitmq_amqp_python_client.wire import (
|
|
19
19
|
Accepted,
|
|
20
20
|
ApplicationProperties,
|
|
21
21
|
Message,
|
|
@@ -242,7 +242,7 @@ class TestSettlement:
|
|
|
242
242
|
second.detach()
|
|
243
243
|
|
|
244
244
|
def test_a_rejected_message_is_not_redelivered(self, session, queue_address):
|
|
245
|
-
from
|
|
245
|
+
from rabbitmq_amqp_python_client.wire import Error
|
|
246
246
|
|
|
247
247
|
sender = _sender(session, queue_address)
|
|
248
248
|
sender.send_transfer(b"tag-1", Message("reject me"), settled=True)
|
|
@@ -10,7 +10,7 @@ import ssl
|
|
|
10
10
|
|
|
11
11
|
import pytest
|
|
12
12
|
|
|
13
|
-
from
|
|
13
|
+
from rabbitmq_amqp_python_client import AuthenticationError, Connection, ConnectionParameters, ConnectionState
|
|
14
14
|
|
|
15
15
|
from .conftest import BROKER_HOST, BROKER_TLS_PORT, CA_CERTIFICATE, CLIENT_CERTIFICATE, CLIENT_KEY
|
|
16
16
|
|
{rabbitmq_amqp_python_client-2.0.0a1 → rabbitmq_amqp_python_client-2.0.0a2}/tests/unit/conftest.py
RENAMED
|
@@ -7,9 +7,9 @@ import socket
|
|
|
7
7
|
|
|
8
8
|
import pytest
|
|
9
9
|
|
|
10
|
-
from
|
|
11
|
-
from
|
|
12
|
-
from
|
|
10
|
+
from rabbitmq_amqp_python_client import connection as connection_module
|
|
11
|
+
from rabbitmq_amqp_python_client.connection import Connection, ConnectionParameters
|
|
12
|
+
from rabbitmq_amqp_python_client.reconnection import RecoveryConfiguration
|
|
13
13
|
from tests.unit.fake_broker import BrokerFarm, FakeBroker
|
|
14
14
|
|
|
15
15
|
|