ergon-framework-python 0.2.2__tar.gz → 0.2.3__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.
- {ergon_framework_python-0.2.2/src/ergon_framework_python.egg-info → ergon_framework_python-0.2.3}/PKG-INFO +1 -1
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/pyproject.toml +1 -1
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/__init__.py +1 -1
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/rabbitmq/async_service.py +61 -18
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/task/mixins/consumer.py +1 -1
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3/src/ergon_framework_python.egg-info}/PKG-INFO +1 -1
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/tests/test_smoke.py +1 -1
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/LICENSE +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/README.md +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/setup.cfg +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/_observability/docker-compose.telemetry.yml +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/_observability/grafana.yaml +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/_observability/loki.yaml +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/_observability/otel-collector-config.yaml +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/_observability/prometheus.yaml +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/_observability/tempo.yaml +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/connectors/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/main.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/tasks/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/tasks/constants.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/tasks/example_task/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/tasks/example_task/config.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/tasks/example_task/exceptions.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/tasks/example_task/helpers.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/tasks/example_task/schemas.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/tasks/example_task/task.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/tasks/exceptions.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/tasks/helpers.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/tasks/schemas.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/bootstrap/src/__project__/tasks/settings.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/cli.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/_lazy.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/connector.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/_client.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/async_connector.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/channels/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/channels/adapters.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/channels/async_connector.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/channels/connector.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/channels/models.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/channels/services/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/channels/services/activity.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/channels/services/addresses.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/channels/services/attachments.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/channels/services/messages.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/channels/services/records.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/channels/services/service.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/connector.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/models.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/utils.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/workflows/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/workflows/_operations.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/workflows/async_connector.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/workflows/connector.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/workflows/models.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/ergon_platform/workflows/utils.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/excel/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/excel/connector.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/excel/models.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/excel/service.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/nylas/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/nylas/async_auth_service.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/nylas/async_connector.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/nylas/async_service.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/nylas/auth_service.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/nylas/connector.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/nylas/models.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/nylas/service.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/nylas/utils.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/pipefy/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/pipefy/async_connector.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/pipefy/async_service.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/pipefy/connector.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/pipefy/models.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/pipefy/service.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/pipefy/version.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/postgres/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/postgres/async_connector.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/postgres/async_service.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/postgres/models.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/rabbitmq/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/rabbitmq/async_connector.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/rabbitmq/connector.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/rabbitmq/helper.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/rabbitmq/models.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/rabbitmq/service.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/sqs/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/sqs/async_connector.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/sqs/async_service.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/sqs/connector.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/sqs/models.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/sqs/service.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/transaction.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/py.typed +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/service/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/service/service.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/task/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/task/base.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/task/exceptions.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/task/helpers.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/task/liveness.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/task/manager.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/task/mixins/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/task/mixins/metrics.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/task/mixins/producer.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/task/policies.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/task/runner.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/task/utils.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/telemetry/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/telemetry/_resource.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/telemetry/logging.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/telemetry/metrics.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/telemetry/tracing.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/utils/__init__.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/utils/env.py +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon_framework_python.egg-info/SOURCES.txt +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon_framework_python.egg-info/dependency_links.txt +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon_framework_python.egg-info/entry_points.txt +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon_framework_python.egg-info/requires.txt +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon_framework_python.egg-info/top_level.txt +0 -0
- {ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/tests/test_optional_connectors.py +0 -0
|
@@ -55,13 +55,14 @@ _DEAD_CHANNEL_EXCEPTIONS: tuple[type[BaseException], ...] = (
|
|
|
55
55
|
aio_pika.exceptions.ChannelClosed,
|
|
56
56
|
)
|
|
57
57
|
|
|
58
|
-
# Same as above plus ``TimeoutError`` (raised by the async timeout
|
|
59
|
-
# ack/nack stalls on a half-open socket). A stalled ack is
|
|
60
|
-
# channel: we tear down and let the broker redeliver instead
|
|
61
|
-
# the heartbeat eventually fires.
|
|
58
|
+
# Same as above plus ``asyncio.TimeoutError`` (raised by the async timeout
|
|
59
|
+
# context when an ack/nack stalls on a half-open socket). A stalled ack is
|
|
60
|
+
# functionally a dead channel: we tear down and let the broker redeliver instead
|
|
61
|
+
# of blocking until the heartbeat eventually fires. Use asyncio's name
|
|
62
|
+
# explicitly because it is distinct from builtins.TimeoutError on Python 3.10.
|
|
62
63
|
_DEAD_CHANNEL_TIMEOUT_EXCEPTIONS: tuple[type[BaseException], ...] = (
|
|
63
64
|
*_DEAD_CHANNEL_EXCEPTIONS,
|
|
64
|
-
TimeoutError,
|
|
65
|
+
asyncio.TimeoutError,
|
|
65
66
|
)
|
|
66
67
|
|
|
67
68
|
|
|
@@ -107,6 +108,54 @@ class AsyncRabbitMQService:
|
|
|
107
108
|
|
|
108
109
|
# ---------- Connection / Channel ----------
|
|
109
110
|
|
|
111
|
+
async def _open_owned_robust_connection(
|
|
112
|
+
self,
|
|
113
|
+
url: str,
|
|
114
|
+
kwargs: Dict[str, Any],
|
|
115
|
+
) -> AbstractRobustConnection:
|
|
116
|
+
"""Open a robust connection without losing ownership on startup failure.
|
|
117
|
+
|
|
118
|
+
``aio_pika.connect_robust`` constructs ``RobustConnection`` and starts
|
|
119
|
+
its background reconnection task before awaiting the initial broker
|
|
120
|
+
connection. If that await times out or is cancelled, the helper never
|
|
121
|
+
returns the connection object, so callers cannot close the reconnect
|
|
122
|
+
task and ``asyncio.run`` can hang while shutting it down.
|
|
123
|
+
|
|
124
|
+
aio-pika exposes ``connection_class`` as its connection factory. Capture
|
|
125
|
+
the object synchronously at that boundary, before its first await, and
|
|
126
|
+
close it on every unsuccessful exit from ``connect_robust``.
|
|
127
|
+
"""
|
|
128
|
+
pending_connection: Optional[AbstractRobustConnection] = None
|
|
129
|
+
|
|
130
|
+
def capture_connection(*args: Any, **connection_kwargs: Any) -> AbstractRobustConnection:
|
|
131
|
+
nonlocal pending_connection
|
|
132
|
+
pending_connection = aio_pika.RobustConnection(*args, **connection_kwargs)
|
|
133
|
+
return pending_connection
|
|
134
|
+
|
|
135
|
+
connection_factory = cast(type[AbstractRobustConnection], capture_connection)
|
|
136
|
+
try:
|
|
137
|
+
async with timeout_after(self.client.connect_timeout):
|
|
138
|
+
return await aio_pika.connect_robust( # type: ignore[call-overload]
|
|
139
|
+
url,
|
|
140
|
+
heartbeat=self.client.heartbeat,
|
|
141
|
+
timeout=self.client.connect_timeout,
|
|
142
|
+
connection_class=connection_factory,
|
|
143
|
+
**kwargs,
|
|
144
|
+
)
|
|
145
|
+
except BaseException as exc:
|
|
146
|
+
connection_to_close = pending_connection
|
|
147
|
+
pending_connection = None
|
|
148
|
+
try:
|
|
149
|
+
await self._close_connection_safely(
|
|
150
|
+
connection_to_close,
|
|
151
|
+
f"initial connection attempt failed: {type(exc).__name__}",
|
|
152
|
+
)
|
|
153
|
+
finally:
|
|
154
|
+
# Do not retain the partial connection in this exception's
|
|
155
|
+
# traceback after its reconnect task has been stopped.
|
|
156
|
+
del connection_to_close
|
|
157
|
+
raise
|
|
158
|
+
|
|
110
159
|
async def _get_connection(self) -> AbstractRobustConnection:
|
|
111
160
|
async with self._connection_lock:
|
|
112
161
|
if self._connection is not None and not self._connection.is_closed:
|
|
@@ -116,7 +165,7 @@ class AsyncRabbitMQService:
|
|
|
116
165
|
try:
|
|
117
166
|
async with timeout_after(self.client.connect_timeout):
|
|
118
167
|
await connected.wait()
|
|
119
|
-
except TimeoutError:
|
|
168
|
+
except asyncio.TimeoutError:
|
|
120
169
|
self._consumer_state = "connect_stalled"
|
|
121
170
|
await self._reset_connection("robust reconnect timed out")
|
|
122
171
|
raise
|
|
@@ -133,14 +182,8 @@ class AsyncRabbitMQService:
|
|
|
133
182
|
|
|
134
183
|
self._consumer_state = "connecting"
|
|
135
184
|
try:
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
url,
|
|
139
|
-
heartbeat=self.client.heartbeat,
|
|
140
|
-
timeout=self.client.connect_timeout,
|
|
141
|
-
**kwargs,
|
|
142
|
-
)
|
|
143
|
-
except TimeoutError:
|
|
185
|
+
connection = await self._open_owned_robust_connection(url, kwargs)
|
|
186
|
+
except asyncio.TimeoutError:
|
|
144
187
|
self._consumer_state = "connect_stalled"
|
|
145
188
|
raise
|
|
146
189
|
except BaseException:
|
|
@@ -181,7 +224,7 @@ class AsyncRabbitMQService:
|
|
|
181
224
|
try:
|
|
182
225
|
async with timeout_after(close_timeout):
|
|
183
226
|
await connection.close()
|
|
184
|
-
except TimeoutError:
|
|
227
|
+
except asyncio.TimeoutError:
|
|
185
228
|
logger.error(
|
|
186
229
|
"Timed out closing RabbitMQ connection after %.1fs (%s)",
|
|
187
230
|
close_timeout,
|
|
@@ -293,7 +336,7 @@ class AsyncRabbitMQService:
|
|
|
293
336
|
try:
|
|
294
337
|
async with timeout_after(self.client.channel_timeout):
|
|
295
338
|
self._consume_channel = await connection.channel()
|
|
296
|
-
except TimeoutError:
|
|
339
|
+
except asyncio.TimeoutError:
|
|
297
340
|
self._consumer_state = "connect_stalled"
|
|
298
341
|
await self._reset_connection("consume channel creation timed out")
|
|
299
342
|
raise
|
|
@@ -328,7 +371,7 @@ class AsyncRabbitMQService:
|
|
|
328
371
|
try:
|
|
329
372
|
async with timeout_after(self.client.channel_timeout):
|
|
330
373
|
self._publish_channel = await connection.channel()
|
|
331
|
-
except TimeoutError:
|
|
374
|
+
except asyncio.TimeoutError:
|
|
332
375
|
await self._reset_connection("publish channel creation timed out")
|
|
333
376
|
raise
|
|
334
377
|
|
|
@@ -455,7 +498,7 @@ class AsyncRabbitMQService:
|
|
|
455
498
|
break
|
|
456
499
|
if epoch == self._consumer_epoch and delivery is not None:
|
|
457
500
|
buffer.append(delivery)
|
|
458
|
-
except TimeoutError:
|
|
501
|
+
except asyncio.TimeoutError:
|
|
459
502
|
poll_completed = True
|
|
460
503
|
else:
|
|
461
504
|
poll_completed = True
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/task/mixins/consumer.py
RENAMED
|
@@ -869,7 +869,7 @@ class AsyncConsumerMixin(ABC):
|
|
|
869
869
|
trace_name=f"{self.__class__.__name__}.start_processing",
|
|
870
870
|
trace_attrs={"transaction_id": tr.id},
|
|
871
871
|
)
|
|
872
|
-
except TimeoutError as exc:
|
|
872
|
+
except asyncio.TimeoutError as exc:
|
|
873
873
|
timeout_error = exceptions.TransactionTimeoutException(
|
|
874
874
|
transaction_id=tr.id,
|
|
875
875
|
cause=exc,
|
|
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
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/connector.py
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
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/excel/__init__.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/excel/connector.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/excel/models.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/excel/service.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/nylas/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/nylas/connector.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/nylas/models.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/nylas/service.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/nylas/utils.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/pipefy/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/pipefy/models.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/pipefy/service.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/pipefy/version.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/postgres/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/rabbitmq/helper.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/rabbitmq/models.py
RENAMED
|
File without changes
|
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/sqs/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/sqs/connector.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/sqs/models.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/sqs/service.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/connector/transaction.py
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
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/task/mixins/__init__.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/task/mixins/metrics.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/task/mixins/producer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/telemetry/__init__.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/telemetry/_resource.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/telemetry/logging.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/telemetry/metrics.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/src/ergon/telemetry/tracing.py
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
|
{ergon_framework_python-0.2.2 → ergon_framework_python-0.2.3}/tests/test_optional_connectors.py
RENAMED
|
File without changes
|