jararaca 0.3.20__tar.gz → 0.3.22__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of jararaca might be problematic. Click here for more details.
- {jararaca-0.3.20 → jararaca-0.3.22}/PKG-INFO +3 -5
- {jararaca-0.3.20 → jararaca-0.3.22}/pyproject.toml +1 -1
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/messagebus/worker.py +2 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/observability/providers/otel.py +25 -5
- {jararaca-0.3.20 → jararaca-0.3.22}/LICENSE +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/README.md +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/docs/CNAME +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/docs/architecture.md +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.jpeg +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.webp +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/docs/assets/tracing_example.png +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/docs/expose-type.md +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/docs/http-rpc.md +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/docs/index.md +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/docs/interceptors.md +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/docs/messagebus.md +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/docs/retry.md +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/docs/scheduler.md +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/docs/stylesheets/custom.css +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/docs/websocket.md +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/__init__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/__main__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/broker_backend/__init__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/broker_backend/mapper.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/broker_backend/redis_broker_backend.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/cli.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/common/__init__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/core/__init__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/core/providers.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/core/uow.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/di.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/files/entity.py.mako +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/lifecycle.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/messagebus/__init__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/messagebus/bus_message_controller.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/messagebus/consumers/__init__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/messagebus/decorators.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/messagebus/implicit_headers.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/messagebus/interceptors/__init__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/messagebus/interceptors/aiopika_publisher_interceptor.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/messagebus/interceptors/publisher_interceptor.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/messagebus/message.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/messagebus/publisher.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/microservice.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/observability/decorators.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/observability/hooks.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/observability/interceptor.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/observability/providers/__init__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/persistence/base.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/persistence/exports.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/persistence/interceptors/__init__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/persistence/interceptors/aiosqa_interceptor.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/persistence/interceptors/constants.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/persistence/interceptors/decorators.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/persistence/session.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/persistence/sort_filter.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/persistence/utilities.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/presentation/__init__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/presentation/decorators.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/presentation/hooks.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/presentation/http_microservice.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/presentation/server.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/presentation/websocket/__init__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/presentation/websocket/base_types.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/presentation/websocket/context.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/presentation/websocket/decorators.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/presentation/websocket/redis.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/presentation/websocket/types.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/presentation/websocket/websocket_interceptor.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/py.typed +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/reflect/__init__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/reflect/controller_inspect.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/reflect/metadata.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/rpc/__init__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/rpc/http/__init__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/rpc/http/backends/__init__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/rpc/http/backends/httpx.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/rpc/http/backends/otel.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/rpc/http/decorators.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/rpc/http/httpx.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/scheduler/__init__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/scheduler/beat_worker.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/scheduler/decorators.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/scheduler/types.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/tools/app_config/__init__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/tools/app_config/decorators.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/tools/app_config/interceptor.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/tools/typescript/__init__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/tools/typescript/decorators.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/tools/typescript/interface_parser.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/utils/__init__.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/utils/rabbitmq_utils.py +0 -0
- {jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/utils/retry.py +0 -0
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
2
|
Name: jararaca
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.22
|
|
4
4
|
Summary: A simple and fast API framework for Python
|
|
5
|
-
|
|
5
|
+
Home-page: https://github.com/LuscasLeo/jararaca
|
|
6
6
|
Author: Lucas S
|
|
7
7
|
Author-email: me@luscasleo.dev
|
|
8
8
|
Requires-Python: >=3.11,<4.0
|
|
9
9
|
Classifier: Programming Language :: Python :: 3
|
|
10
10
|
Classifier: Programming Language :: Python :: 3.11
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.14
|
|
14
12
|
Provides-Extra: docs
|
|
15
13
|
Provides-Extra: http
|
|
16
14
|
Provides-Extra: opentelemetry
|
|
@@ -1528,6 +1528,7 @@ class MessageHandlerCallback:
|
|
|
1528
1528
|
logger.exception(
|
|
1529
1529
|
f"Error processing message {message_id} on topic {routing_key}: {str(base_exc)}"
|
|
1530
1530
|
)
|
|
1531
|
+
raise
|
|
1531
1532
|
|
|
1532
1533
|
# Handle rejection with retry logic
|
|
1533
1534
|
if incoming_message_spec.requeue_on_exception:
|
|
@@ -1543,6 +1544,7 @@ class MessageHandlerCallback:
|
|
|
1543
1544
|
await self.handle_reject_message(
|
|
1544
1545
|
aio_pika_message, requeue=False, exception=base_exc
|
|
1545
1546
|
)
|
|
1547
|
+
|
|
1546
1548
|
else:
|
|
1547
1549
|
# Message processed successfully, log and clean up any retry state
|
|
1548
1550
|
message_id = aio_pika_message.message_id or str(uuid.uuid4())
|
|
@@ -75,30 +75,50 @@ class OtelTracingContextProviderFactory(TracingContextProviderFactory):
|
|
|
75
75
|
title: str = "Unmapped App Context Execution"
|
|
76
76
|
headers: dict[str, Any] = {}
|
|
77
77
|
tx_data = app_tx_ctx.transaction_data
|
|
78
|
-
extra_attributes: dict[str,
|
|
78
|
+
extra_attributes: dict[str, str] = {}
|
|
79
79
|
if tx_data.context_type == "http":
|
|
80
80
|
|
|
81
81
|
headers = dict(tx_data.request.headers)
|
|
82
82
|
title = f"HTTP {tx_data.request.method} {tx_data.request.url}"
|
|
83
83
|
extra_attributes = {
|
|
84
84
|
"http.method": tx_data.request.method,
|
|
85
|
-
"http.url": tx_data.request.url,
|
|
86
|
-
"http.
|
|
85
|
+
"http.url": str(tx_data.request.url),
|
|
86
|
+
"http.path": tx_data.request.url.path, # Path with the key applied to the template
|
|
87
|
+
"http.route.path": tx_data.request.scope["route"].path,
|
|
88
|
+
"http.route.endpoint.name": tx_data.request[
|
|
89
|
+
"route"
|
|
90
|
+
].endpoint.__qualname__,
|
|
91
|
+
"http.query": tx_data.request.url.query,
|
|
92
|
+
**{
|
|
93
|
+
f"http.request.path_param.{k}": v
|
|
94
|
+
for k, v in tx_data.request.path_params.items()
|
|
95
|
+
},
|
|
96
|
+
**{
|
|
97
|
+
f"http.request.query_param.{k}": v
|
|
98
|
+
for k, v in tx_data.request.query_params.items()
|
|
99
|
+
},
|
|
100
|
+
**{
|
|
101
|
+
f"http.request.header.{k}": v
|
|
102
|
+
for k, v in tx_data.request.headers.items()
|
|
103
|
+
},
|
|
87
104
|
}
|
|
88
105
|
|
|
89
106
|
elif tx_data.context_type == "message_bus":
|
|
90
107
|
title = f"Message Bus {tx_data.topic}"
|
|
91
108
|
headers = use_implicit_headers() or {}
|
|
109
|
+
payload = tx_data.message.payload()
|
|
92
110
|
extra_attributes = {
|
|
93
111
|
"bus.topic": tx_data.topic,
|
|
94
|
-
"bus.message":
|
|
112
|
+
"bus.message.body": payload.model_dump_json(),
|
|
113
|
+
"bus.message.name": payload.__class__.__qualname__,
|
|
114
|
+
"bus.message.module": payload.__class__.__module__,
|
|
95
115
|
}
|
|
96
116
|
|
|
97
117
|
elif tx_data.context_type == "websocket":
|
|
98
118
|
headers = dict(tx_data.websocket.headers)
|
|
99
119
|
title = f"WebSocket {tx_data.websocket.url}"
|
|
100
120
|
extra_attributes = {
|
|
101
|
-
"ws.url": tx_data.websocket.url,
|
|
121
|
+
"ws.url": str(tx_data.websocket.url),
|
|
102
122
|
}
|
|
103
123
|
|
|
104
124
|
elif tx_data.context_type == "scheduler":
|
|
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
|
{jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/messagebus/interceptors/publisher_interceptor.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
|
{jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/persistence/interceptors/aiosqa_interceptor.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
|
{jararaca-0.3.20 → jararaca-0.3.22}/src/jararaca/presentation/websocket/websocket_interceptor.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
|