ergon-framework-python 0.1.5__tar.gz → 0.1.6__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.1.5 → ergon_framework_python-0.1.6}/PKG-INFO +1 -1
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/pyproject.toml +1 -1
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/__init__.py +1 -1
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/task/runner.py +77 -8
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon_framework_python.egg-info/PKG-INFO +1 -1
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/tests/test_smoke.py +1 -1
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/LICENSE +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/README.md +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/setup.cfg +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/__init__.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/_observability/docker-compose.telemetry.yml +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/_observability/grafana.yaml +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/_observability/loki.yaml +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/_observability/otel-collector-config.yaml +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/_observability/prometheus.yaml +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/_observability/tempo.yaml +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/connectors/__init__.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/main.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/tasks/__init__.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/tasks/constants.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/tasks/example_task/__init__.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/tasks/example_task/config.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/tasks/example_task/exceptions.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/tasks/example_task/helpers.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/tasks/example_task/schemas.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/tasks/example_task/task.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/tasks/exceptions.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/tasks/helpers.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/tasks/schemas.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/bootstrap/src/__project__/tasks/settings.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/cli.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/__init__.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/connector.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/ergon_platform/__init__.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/ergon_platform/_client.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/ergon_platform/_operations.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/ergon_platform/async_connector.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/ergon_platform/connector.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/ergon_platform/models.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/ergon_platform/utils.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/excel/__init__.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/excel/connector.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/excel/models.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/excel/service.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/nylas/__init__.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/nylas/async_auth_service.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/nylas/async_connector.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/nylas/async_service.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/nylas/auth_service.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/nylas/connector.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/nylas/models.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/nylas/service.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/nylas/utils.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/pipefy/__init__.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/pipefy/async_connector.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/pipefy/async_service.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/pipefy/connector.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/pipefy/models.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/pipefy/service.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/pipefy/version.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/postgres/__init__.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/postgres/async_connector.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/postgres/async_service.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/postgres/models.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/rabbitmq/__init__.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/rabbitmq/async_connector.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/rabbitmq/async_service.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/rabbitmq/connector.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/rabbitmq/helper.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/rabbitmq/models.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/rabbitmq/service.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/sqs/__init__.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/sqs/async_connector.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/sqs/async_service.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/sqs/connector.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/sqs/models.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/sqs/service.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/transaction.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/py.typed +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/service/__init__.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/service/service.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/task/__init__.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/task/base.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/task/exceptions.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/task/helpers.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/task/liveness.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/task/manager.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/task/mixins/__init__.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/task/mixins/consumer.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/task/mixins/metrics.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/task/mixins/producer.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/task/policies.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/task/utils.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/telemetry/__init__.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/telemetry/_resource.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/telemetry/logging.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/telemetry/metrics.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/telemetry/tracing.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/utils/__init__.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/utils/env.py +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon_framework_python.egg-info/SOURCES.txt +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon_framework_python.egg-info/dependency_links.txt +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon_framework_python.egg-info/entry_points.txt +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon_framework_python.egg-info/requires.txt +0 -0
- {ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon_framework_python.egg-info/top_level.txt +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
+
import inspect
|
|
2
3
|
import logging as stdlib_logging
|
|
3
4
|
import os
|
|
4
5
|
import signal
|
|
@@ -6,6 +7,7 @@ import threading
|
|
|
6
7
|
import time
|
|
7
8
|
import traceback
|
|
8
9
|
import uuid
|
|
10
|
+
from collections.abc import Callable
|
|
9
11
|
from concurrent.futures import ProcessPoolExecutor
|
|
10
12
|
from datetime import datetime
|
|
11
13
|
from enum import IntEnum
|
|
@@ -41,6 +43,8 @@ class ExitCode(IntEnum):
|
|
|
41
43
|
|
|
42
44
|
_shutdown_event = threading.Event()
|
|
43
45
|
_shutdown_signal: int | None = None
|
|
46
|
+
_shutdown_callbacks: set[Callable[[], None]] = set()
|
|
47
|
+
_shutdown_callbacks_lock = threading.Lock()
|
|
44
48
|
_supervisor_logger = stdlib_logging.getLogger(__name__)
|
|
45
49
|
|
|
46
50
|
|
|
@@ -48,6 +52,13 @@ def _signal_handler(signum, frame):
|
|
|
48
52
|
global _shutdown_signal
|
|
49
53
|
_shutdown_signal = signum
|
|
50
54
|
_shutdown_event.set()
|
|
55
|
+
with _shutdown_callbacks_lock:
|
|
56
|
+
callbacks = tuple(_shutdown_callbacks)
|
|
57
|
+
for callback in callbacks:
|
|
58
|
+
try:
|
|
59
|
+
callback()
|
|
60
|
+
except Exception:
|
|
61
|
+
_supervisor_logger.exception("Async shutdown callback failed")
|
|
51
62
|
|
|
52
63
|
|
|
53
64
|
def _install_signal_handlers():
|
|
@@ -55,6 +66,27 @@ def _install_signal_handlers():
|
|
|
55
66
|
signal.signal(signal.SIGTERM, _signal_handler)
|
|
56
67
|
|
|
57
68
|
|
|
69
|
+
def _reset_shutdown_state() -> None:
|
|
70
|
+
global _shutdown_signal
|
|
71
|
+
_shutdown_event.clear()
|
|
72
|
+
_shutdown_signal = None
|
|
73
|
+
with _shutdown_callbacks_lock:
|
|
74
|
+
_shutdown_callbacks.clear()
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def _register_shutdown_callback(callback: Callable[[], None]) -> None:
|
|
78
|
+
with _shutdown_callbacks_lock:
|
|
79
|
+
_shutdown_callbacks.add(callback)
|
|
80
|
+
shutdown_requested = _shutdown_event.is_set()
|
|
81
|
+
if shutdown_requested:
|
|
82
|
+
callback()
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def _unregister_shutdown_callback(callback: Callable[[], None]) -> None:
|
|
86
|
+
with _shutdown_callbacks_lock:
|
|
87
|
+
_shutdown_callbacks.discard(callback)
|
|
88
|
+
|
|
89
|
+
|
|
58
90
|
def is_shutdown_requested() -> bool:
|
|
59
91
|
return _shutdown_event.is_set()
|
|
60
92
|
|
|
@@ -216,20 +248,31 @@ async def __run_task_async(
|
|
|
216
248
|
|
|
217
249
|
instance = None
|
|
218
250
|
supervisor = None
|
|
251
|
+
liveness_shutdown_requested = threading.Event()
|
|
252
|
+
connectors: dict[str, Any] = {}
|
|
253
|
+
services: dict[str, Any] = {}
|
|
254
|
+
loop = asyncio.get_running_loop()
|
|
255
|
+
runner_task = asyncio.current_task()
|
|
256
|
+
|
|
257
|
+
def request_signal_shutdown() -> None:
|
|
258
|
+
if runner_task is not None and not runner_task.done():
|
|
259
|
+
loop.call_soon_threadsafe(runner_task.cancel, "Process shutdown requested")
|
|
260
|
+
|
|
261
|
+
_register_shutdown_callback(request_signal_shutdown)
|
|
219
262
|
|
|
220
263
|
try:
|
|
221
264
|
with tracer.start_as_current_span( # type: ignore[attr-defined]
|
|
222
265
|
f"{config.task.__name__}.run",
|
|
223
266
|
attributes={"task.execution.id": task_exec_metadata["execution_id"]},
|
|
224
267
|
):
|
|
225
|
-
connectors = {}
|
|
226
268
|
for name, cfg in config.connectors.items():
|
|
227
269
|
conn = cfg.connector(*cfg.args, **cfg.kwargs)
|
|
270
|
+
connectors[name] = conn
|
|
228
271
|
if hasattr(conn, "init_async"):
|
|
229
272
|
await conn.init_async() # type: ignore[attr-defined]
|
|
230
|
-
connectors[name] = conn
|
|
231
273
|
|
|
232
|
-
|
|
274
|
+
for name, cfg in config.services.items():
|
|
275
|
+
services[name] = cfg.service(*cfg.args, **cfg.kwargs)
|
|
233
276
|
|
|
234
277
|
instance = config.task(
|
|
235
278
|
connectors=connectors,
|
|
@@ -242,10 +285,9 @@ async def __run_task_async(
|
|
|
242
285
|
)
|
|
243
286
|
|
|
244
287
|
if config.supervision.enabled and isinstance(instance, LivenessProvider):
|
|
245
|
-
loop = asyncio.get_running_loop()
|
|
246
|
-
runner_task = asyncio.current_task()
|
|
247
288
|
|
|
248
289
|
def request_liveness_shutdown(reason: str) -> None:
|
|
290
|
+
liveness_shutdown_requested.set()
|
|
249
291
|
if runner_task is not None and not runner_task.done():
|
|
250
292
|
loop.call_soon_threadsafe(runner_task.cancel, f"Task unhealthy: {reason}")
|
|
251
293
|
|
|
@@ -266,11 +308,37 @@ async def __run_task_async(
|
|
|
266
308
|
else:
|
|
267
309
|
await instance.execute()
|
|
268
310
|
|
|
311
|
+
except asyncio.CancelledError:
|
|
312
|
+
if not is_shutdown_requested():
|
|
313
|
+
raise
|
|
269
314
|
finally:
|
|
270
|
-
|
|
315
|
+
_unregister_shutdown_callback(request_signal_shutdown)
|
|
316
|
+
if supervisor is not None and not liveness_shutdown_requested.is_set():
|
|
271
317
|
supervisor.stop()
|
|
272
|
-
|
|
273
|
-
|
|
318
|
+
try:
|
|
319
|
+
if instance is not None:
|
|
320
|
+
await instance.exit()
|
|
321
|
+
finally:
|
|
322
|
+
try:
|
|
323
|
+
resources = [*connectors.values(), *services.values()]
|
|
324
|
+
for resource in reversed(resources):
|
|
325
|
+
close = getattr(resource, "close", None)
|
|
326
|
+
if close is None:
|
|
327
|
+
close = getattr(resource, "aclose", None)
|
|
328
|
+
if not callable(close):
|
|
329
|
+
continue
|
|
330
|
+
try:
|
|
331
|
+
result = close()
|
|
332
|
+
if inspect.isawaitable(result):
|
|
333
|
+
await result
|
|
334
|
+
except Exception:
|
|
335
|
+
_supervisor_logger.exception(
|
|
336
|
+
"Failed to close async task resource %s",
|
|
337
|
+
type(resource).__name__,
|
|
338
|
+
)
|
|
339
|
+
finally:
|
|
340
|
+
if supervisor is not None:
|
|
341
|
+
supervisor.stop()
|
|
274
342
|
|
|
275
343
|
|
|
276
344
|
# =============================================================
|
|
@@ -424,6 +492,7 @@ def run_task(
|
|
|
424
492
|
Returns POSIX-compatible exit code.
|
|
425
493
|
"""
|
|
426
494
|
|
|
495
|
+
_reset_shutdown_state()
|
|
427
496
|
_install_signal_handlers()
|
|
428
497
|
is_async = issubclass(config.task, BaseAsyncTask) # type: ignore[arg-type]
|
|
429
498
|
|
|
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.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/__init__.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/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
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/excel/__init__.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/excel/connector.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/excel/models.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/excel/service.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/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.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/nylas/connector.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/nylas/models.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/nylas/service.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/nylas/utils.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/pipefy/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/pipefy/models.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/pipefy/service.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/pipefy/version.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/postgres/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/rabbitmq/helper.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/rabbitmq/models.py
RENAMED
|
File without changes
|
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/sqs/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/sqs/connector.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/sqs/models.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/connector/sqs/service.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/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.1.5 → ergon_framework_python-0.1.6}/src/ergon/task/mixins/__init__.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/task/mixins/consumer.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/task/mixins/metrics.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/task/mixins/producer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/telemetry/__init__.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/telemetry/_resource.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/telemetry/logging.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/src/ergon/telemetry/metrics.py
RENAMED
|
File without changes
|
{ergon_framework_python-0.1.5 → ergon_framework_python-0.1.6}/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
|