jararaca 0.3.19__tar.gz → 0.3.20__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.

Files changed (93) hide show
  1. {jararaca-0.3.19 → jararaca-0.3.20}/PKG-INFO +5 -3
  2. {jararaca-0.3.19 → jararaca-0.3.20}/pyproject.toml +1 -1
  3. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/observability/providers/otel.py +19 -4
  4. {jararaca-0.3.19 → jararaca-0.3.20}/LICENSE +0 -0
  5. {jararaca-0.3.19 → jararaca-0.3.20}/README.md +0 -0
  6. {jararaca-0.3.19 → jararaca-0.3.20}/docs/CNAME +0 -0
  7. {jararaca-0.3.19 → jararaca-0.3.20}/docs/architecture.md +0 -0
  8. {jararaca-0.3.19 → jararaca-0.3.20}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.jpeg +0 -0
  9. {jararaca-0.3.19 → jararaca-0.3.20}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.webp +0 -0
  10. {jararaca-0.3.19 → jararaca-0.3.20}/docs/assets/tracing_example.png +0 -0
  11. {jararaca-0.3.19 → jararaca-0.3.20}/docs/expose-type.md +0 -0
  12. {jararaca-0.3.19 → jararaca-0.3.20}/docs/http-rpc.md +0 -0
  13. {jararaca-0.3.19 → jararaca-0.3.20}/docs/index.md +0 -0
  14. {jararaca-0.3.19 → jararaca-0.3.20}/docs/interceptors.md +0 -0
  15. {jararaca-0.3.19 → jararaca-0.3.20}/docs/messagebus.md +0 -0
  16. {jararaca-0.3.19 → jararaca-0.3.20}/docs/retry.md +0 -0
  17. {jararaca-0.3.19 → jararaca-0.3.20}/docs/scheduler.md +0 -0
  18. {jararaca-0.3.19 → jararaca-0.3.20}/docs/stylesheets/custom.css +0 -0
  19. {jararaca-0.3.19 → jararaca-0.3.20}/docs/websocket.md +0 -0
  20. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/__init__.py +0 -0
  21. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/__main__.py +0 -0
  22. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/broker_backend/__init__.py +0 -0
  23. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/broker_backend/mapper.py +0 -0
  24. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/broker_backend/redis_broker_backend.py +0 -0
  25. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/cli.py +0 -0
  26. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/common/__init__.py +0 -0
  27. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/core/__init__.py +0 -0
  28. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/core/providers.py +0 -0
  29. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/core/uow.py +0 -0
  30. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/di.py +0 -0
  31. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/files/entity.py.mako +0 -0
  32. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/lifecycle.py +0 -0
  33. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/messagebus/__init__.py +0 -0
  34. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/messagebus/bus_message_controller.py +0 -0
  35. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/messagebus/consumers/__init__.py +0 -0
  36. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/messagebus/decorators.py +0 -0
  37. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/messagebus/implicit_headers.py +0 -0
  38. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/messagebus/interceptors/__init__.py +0 -0
  39. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/messagebus/interceptors/aiopika_publisher_interceptor.py +0 -0
  40. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/messagebus/interceptors/publisher_interceptor.py +0 -0
  41. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/messagebus/message.py +0 -0
  42. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/messagebus/publisher.py +0 -0
  43. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/messagebus/worker.py +0 -0
  44. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/microservice.py +0 -0
  45. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/observability/decorators.py +0 -0
  46. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/observability/hooks.py +0 -0
  47. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/observability/interceptor.py +0 -0
  48. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/observability/providers/__init__.py +0 -0
  49. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/persistence/base.py +0 -0
  50. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/persistence/exports.py +0 -0
  51. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/persistence/interceptors/__init__.py +0 -0
  52. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/persistence/interceptors/aiosqa_interceptor.py +0 -0
  53. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/persistence/interceptors/constants.py +0 -0
  54. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/persistence/interceptors/decorators.py +0 -0
  55. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/persistence/session.py +0 -0
  56. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/persistence/sort_filter.py +0 -0
  57. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/persistence/utilities.py +0 -0
  58. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/presentation/__init__.py +0 -0
  59. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/presentation/decorators.py +0 -0
  60. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/presentation/hooks.py +0 -0
  61. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/presentation/http_microservice.py +0 -0
  62. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/presentation/server.py +0 -0
  63. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/presentation/websocket/__init__.py +0 -0
  64. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/presentation/websocket/base_types.py +0 -0
  65. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/presentation/websocket/context.py +0 -0
  66. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/presentation/websocket/decorators.py +0 -0
  67. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/presentation/websocket/redis.py +0 -0
  68. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/presentation/websocket/types.py +0 -0
  69. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/presentation/websocket/websocket_interceptor.py +0 -0
  70. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/py.typed +0 -0
  71. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/reflect/__init__.py +0 -0
  72. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/reflect/controller_inspect.py +0 -0
  73. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/reflect/metadata.py +0 -0
  74. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/rpc/__init__.py +0 -0
  75. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/rpc/http/__init__.py +0 -0
  76. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/rpc/http/backends/__init__.py +0 -0
  77. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/rpc/http/backends/httpx.py +0 -0
  78. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/rpc/http/backends/otel.py +0 -0
  79. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/rpc/http/decorators.py +0 -0
  80. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/rpc/http/httpx.py +0 -0
  81. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/scheduler/__init__.py +0 -0
  82. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/scheduler/beat_worker.py +0 -0
  83. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/scheduler/decorators.py +0 -0
  84. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/scheduler/types.py +0 -0
  85. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/tools/app_config/__init__.py +0 -0
  86. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/tools/app_config/decorators.py +0 -0
  87. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/tools/app_config/interceptor.py +0 -0
  88. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/tools/typescript/__init__.py +0 -0
  89. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/tools/typescript/decorators.py +0 -0
  90. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/tools/typescript/interface_parser.py +0 -0
  91. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/utils/__init__.py +0 -0
  92. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/utils/rabbitmq_utils.py +0 -0
  93. {jararaca-0.3.19 → jararaca-0.3.20}/src/jararaca/utils/retry.py +0 -0
@@ -1,14 +1,16 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: jararaca
3
- Version: 0.3.19
3
+ Version: 0.3.20
4
4
  Summary: A simple and fast API framework for Python
5
- Home-page: https://github.com/LuscasLeo/jararaca
5
+ License-File: LICENSE
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
12
14
  Provides-Extra: docs
13
15
  Provides-Extra: http
14
16
  Provides-Extra: opentelemetry
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "jararaca"
3
- version = "0.3.19"
3
+ version = "0.3.20"
4
4
  description = "A simple and fast API framework for Python"
5
5
  authors = ["Lucas S <me@luscasleo.dev>"]
6
6
  readme = "README.md"
@@ -75,25 +75,39 @@ 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, Any] = {}
78
79
  if tx_data.context_type == "http":
79
80
 
80
81
  headers = dict(tx_data.request.headers)
81
82
  title = f"HTTP {tx_data.request.method} {tx_data.request.url}"
83
+ extra_attributes = {
84
+ "http.method": tx_data.request.method,
85
+ "http.url": tx_data.request.url,
86
+ "http.status_code": tx_data.response.status_code,
87
+ }
82
88
 
83
89
  elif tx_data.context_type == "message_bus":
84
90
  title = f"Message Bus {tx_data.topic}"
85
91
  headers = use_implicit_headers() or {}
92
+ extra_attributes = {
93
+ "bus.topic": tx_data.topic,
94
+ "bus.message": tx_data.message.payload().model_dump_json(),
95
+ }
86
96
 
87
97
  elif tx_data.context_type == "websocket":
88
98
  headers = dict(tx_data.websocket.headers)
89
99
  title = f"WebSocket {tx_data.websocket.url}"
100
+ extra_attributes = {
101
+ "ws.url": tx_data.websocket.url,
102
+ }
90
103
 
91
104
  elif tx_data.context_type == "scheduler":
92
105
  title = f"Scheduler Task {tx_data.task_name}"
93
- headers = {
94
- "scheduled_to": tx_data.scheduled_to.isoformat(),
95
- "cron_expression": tx_data.cron_expression,
96
- "triggered_at": tx_data.triggered_at.isoformat(),
106
+ extra_attributes = {
107
+ "sched.task_name": tx_data.task_name,
108
+ "sched.scheduled_to": tx_data.scheduled_to.isoformat(),
109
+ "sched.cron_expression": tx_data.cron_expression,
110
+ "sched.triggered_at": tx_data.triggered_at.isoformat(),
97
111
  }
98
112
 
99
113
  carrier = {
@@ -118,6 +132,7 @@ class OtelTracingContextProviderFactory(TracingContextProviderFactory):
118
132
  context=ctx2,
119
133
  attributes={
120
134
  "app.context_type": tx_data.context_type,
135
+ **extra_attributes,
121
136
  },
122
137
  ) as root_span:
123
138
  cx = root_span.get_span_context()
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