jararaca 0.3.11a11__tar.gz → 0.3.11a12__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 (82) hide show
  1. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/PKG-INFO +1 -1
  2. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/pyproject.toml +1 -1
  3. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/cli.py +4 -7
  4. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/scheduler/beat_worker.py +1 -1
  5. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/utils/rabbitmq_utils.py +5 -56
  6. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/LICENSE +0 -0
  7. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/README.md +0 -0
  8. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/docs/CNAME +0 -0
  9. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/docs/architecture.md +0 -0
  10. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.jpeg +0 -0
  11. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.webp +0 -0
  12. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/docs/assets/tracing_example.png +0 -0
  13. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/docs/index.md +0 -0
  14. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/docs/messagebus.md +0 -0
  15. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/docs/scheduler.md +0 -0
  16. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/docs/stylesheets/custom.css +0 -0
  17. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/docs/websocket.md +0 -0
  18. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/__init__.py +0 -0
  19. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/__main__.py +0 -0
  20. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/broker_backend/__init__.py +0 -0
  21. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/broker_backend/mapper.py +0 -0
  22. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/broker_backend/redis_broker_backend.py +0 -0
  23. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/common/__init__.py +0 -0
  24. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/core/__init__.py +0 -0
  25. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/core/providers.py +0 -0
  26. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/core/uow.py +0 -0
  27. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/di.py +0 -0
  28. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/files/entity.py.mako +0 -0
  29. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/lifecycle.py +0 -0
  30. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/messagebus/__init__.py +0 -0
  31. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/messagebus/bus_message_controller.py +0 -0
  32. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/messagebus/consumers/__init__.py +0 -0
  33. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/messagebus/decorators.py +0 -0
  34. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/messagebus/interceptors/__init__.py +0 -0
  35. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/messagebus/interceptors/aiopika_publisher_interceptor.py +0 -0
  36. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/messagebus/interceptors/publisher_interceptor.py +0 -0
  37. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/messagebus/message.py +0 -0
  38. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/messagebus/publisher.py +0 -0
  39. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/messagebus/worker.py +0 -0
  40. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/microservice.py +0 -0
  41. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/observability/decorators.py +0 -0
  42. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/observability/interceptor.py +0 -0
  43. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/observability/providers/__init__.py +0 -0
  44. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/observability/providers/otel.py +0 -0
  45. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/persistence/base.py +0 -0
  46. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/persistence/exports.py +0 -0
  47. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/persistence/interceptors/__init__.py +0 -0
  48. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/persistence/interceptors/aiosqa_interceptor.py +0 -0
  49. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/persistence/session.py +0 -0
  50. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/persistence/sort_filter.py +0 -0
  51. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/persistence/utilities.py +0 -0
  52. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/presentation/__init__.py +0 -0
  53. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/presentation/decorators.py +0 -0
  54. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/presentation/hooks.py +0 -0
  55. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/presentation/http_microservice.py +0 -0
  56. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/presentation/server.py +0 -0
  57. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/presentation/websocket/__init__.py +0 -0
  58. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/presentation/websocket/base_types.py +0 -0
  59. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/presentation/websocket/context.py +0 -0
  60. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/presentation/websocket/decorators.py +0 -0
  61. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/presentation/websocket/redis.py +0 -0
  62. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/presentation/websocket/types.py +0 -0
  63. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/presentation/websocket/websocket_interceptor.py +0 -0
  64. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/py.typed +0 -0
  65. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/reflect/__init__.py +0 -0
  66. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/reflect/controller_inspect.py +0 -0
  67. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/reflect/metadata.py +0 -0
  68. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/rpc/__init__.py +0 -0
  69. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/rpc/http/__init__.py +0 -0
  70. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/rpc/http/backends/__init__.py +0 -0
  71. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/rpc/http/backends/httpx.py +0 -0
  72. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/rpc/http/backends/otel.py +0 -0
  73. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/rpc/http/decorators.py +0 -0
  74. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/rpc/http/httpx.py +0 -0
  75. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/scheduler/__init__.py +0 -0
  76. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/scheduler/decorators.py +0 -0
  77. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/scheduler/types.py +0 -0
  78. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/tools/app_config/__init__.py +0 -0
  79. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/tools/app_config/decorators.py +0 -0
  80. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/tools/app_config/interceptor.py +0 -0
  81. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/tools/typescript/interface_parser.py +0 -0
  82. {jararaca-0.3.11a11 → jararaca-0.3.11a12}/src/jararaca/utils/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: jararaca
3
- Version: 0.3.11a11
3
+ Version: 0.3.11a12
4
4
  Summary: A simple and fast API framework for Python
5
5
  Author: Lucas S
6
6
  Author-email: me@luscasleo.dev
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "jararaca"
3
- version = "0.3.11a11"
3
+ version = "0.3.11a12"
4
4
  description = "A simple and fast API framework for Python"
5
5
  authors = ["Lucas S <me@luscasleo.dev>"]
6
6
  readme = "README.md"
@@ -142,7 +142,7 @@ async def declare_worker_infrastructure(
142
142
  await RabbitmqUtils.delete_queue(channel, queue_name)
143
143
 
144
144
  # Declare queue
145
- queue = await RabbitmqUtils.declare_queue(
145
+ queue = await RabbitmqUtils.declare_worker_queue(
146
146
  channel=channel, queue_name=queue_name, passive=not force
147
147
  )
148
148
  await queue.bind(exchange=exchange, routing_key=routing_key)
@@ -164,7 +164,7 @@ async def declare_worker_infrastructure(
164
164
  if force:
165
165
  await RabbitmqUtils.delete_queue(channel, queue_name)
166
166
 
167
- queue = await RabbitmqUtils.declare_queue(
167
+ queue = await RabbitmqUtils.declare_scheduled_action_queue(
168
168
  channel=channel, queue_name=queue_name, passive=not force
169
169
  )
170
170
  await queue.bind(exchange=exchange, routing_key=routing_key)
@@ -539,6 +539,7 @@ def gen_entity(entity_name: str, file_path: StreamWriter) -> None:
539
539
  @click.argument(
540
540
  "app_path",
541
541
  type=str,
542
+ envvar="APP_PATH",
542
543
  )
543
544
  @click.option(
544
545
  "--broker-url",
@@ -642,13 +643,9 @@ def declare(
642
643
  click.echo(
643
644
  f"→ Declaring worker infrastructure (URL: {broker_url_with_exchange})"
644
645
  )
645
- click.echo(
646
- f"→ Declaring scheduler infrastructure (URL: {broker_url_with_exchange})"
647
- )
648
-
649
646
  await declare_worker_infrastructure(broker_url_with_exchange, app, force)
650
647
 
651
- click.echo("✓ Worker and scheduler infrastructure declared successfully!")
648
+ click.echo("✓ Workers infrastructure declared successfully!")
652
649
  except Exception as e:
653
650
  click.echo(f"ERROR: Failed to declare infrastructure: {e}", err=True)
654
651
  raise
@@ -195,7 +195,7 @@ class _RabbitMQBrokerDispatcher(_MessageBrokerDispatcher):
195
195
  queue_name = ScheduledAction.get_function_id(sched_act_data.callable)
196
196
 
197
197
  # Try to get existing queue
198
- await RabbitmqUtils.get_scheduler_queue(
198
+ await RabbitmqUtils.get_scheduled_action_queue(
199
199
  channel=channel,
200
200
  queue_name=queue_name,
201
201
  )
@@ -222,7 +222,7 @@ class RabbitmqUtils:
222
222
  raise
223
223
 
224
224
  @classmethod
225
- async def declare_queue(
225
+ async def declare_worker_queue(
226
226
  cls,
227
227
  channel: AbstractChannel,
228
228
  queue_name: str,
@@ -243,64 +243,13 @@ class RabbitmqUtils:
243
243
  )
244
244
 
245
245
  @classmethod
246
- async def get_worker_v1_queue(
246
+ async def get_scheduled_action_queue(
247
247
  cls,
248
248
  channel: AbstractChannel,
249
249
  queue_name: str,
250
250
  ) -> AbstractQueue:
251
251
  """
252
- Get a worker v1 queue.
253
- """
254
- try:
255
- return await channel.get_queue(queue_name)
256
- except ChannelNotFoundEntity as e:
257
- logger.error(
258
- f"Worker queue '{queue_name}' does not exist. "
259
- f"Please use the declare command to create it first. Error: {e}"
260
- )
261
- raise
262
- except ChannelClosed as e:
263
- logger.error(
264
- f"Channel closed while getting worker queue '{queue_name}'. "
265
- f"Error: {e}"
266
- )
267
- raise
268
- except AMQPError as e:
269
- logger.error(
270
- f"AMQP error while getting worker queue '{queue_name}'. " f"Error: {e}"
271
- )
272
- raise
273
-
274
- @classmethod
275
- async def declare_worker_v1_queue(
276
- cls,
277
- channel: AbstractChannel,
278
- queue_name: str,
279
- dlx_name: str,
280
- dlq_name: str,
281
- passive: bool = False,
282
- ) -> AbstractQueue:
283
- """
284
- Declare a worker v1 queue with custom dead letter exchange and routing key.
285
- """
286
- return await channel.declare_queue(
287
- passive=passive,
288
- name=queue_name,
289
- arguments={
290
- "x-dead-letter-exchange": dlx_name,
291
- "x-dead-letter-routing-key": dlq_name,
292
- },
293
- durable=True,
294
- )
295
-
296
- @classmethod
297
- async def get_scheduler_queue(
298
- cls,
299
- channel: AbstractChannel,
300
- queue_name: str,
301
- ) -> AbstractQueue:
302
- """
303
- Get a scheduler queue.
252
+ Get a scheduled action queue.
304
253
  """
305
254
  try:
306
255
  return await channel.get_queue(queue_name)
@@ -324,14 +273,14 @@ class RabbitmqUtils:
324
273
  raise
325
274
 
326
275
  @classmethod
327
- async def declare_scheduler_queue(
276
+ async def declare_scheduled_action_queue(
328
277
  cls,
329
278
  channel: AbstractChannel,
330
279
  queue_name: str,
331
280
  passive: bool = False,
332
281
  ) -> AbstractQueue:
333
282
  """
334
- Declare a scheduler queue with simple durable configuration.
283
+ Declare a scheduled action queue with simple durable configuration.
335
284
  The queue has a max length of 1 to ensure only one scheduled task
336
285
  is processed at a time.
337
286
  """
File without changes
File without changes
File without changes
File without changes