jararaca 0.3.11a0__tar.gz → 0.3.11a2__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.11a0 → jararaca-0.3.11a2}/PKG-INFO +1 -1
  2. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/pyproject.toml +5 -1
  3. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/cli.py +19 -17
  4. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/messagebus/interceptors/aiopika_publisher_interceptor.py +0 -1
  5. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/messagebus/worker.py +1 -1
  6. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/persistence/interceptors/aiosqa_interceptor.py +0 -1
  7. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/LICENSE +0 -0
  8. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/README.md +0 -0
  9. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/docs/CNAME +0 -0
  10. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/docs/architecture.md +0 -0
  11. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.jpeg +0 -0
  12. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.webp +0 -0
  13. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/docs/assets/tracing_example.png +0 -0
  14. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/docs/index.md +0 -0
  15. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/docs/messagebus.md +0 -0
  16. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/docs/scheduler.md +0 -0
  17. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/docs/stylesheets/custom.css +0 -0
  18. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/docs/websocket.md +0 -0
  19. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/__init__.py +0 -0
  20. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/__main__.py +0 -0
  21. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/broker_backend/__init__.py +0 -0
  22. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/broker_backend/mapper.py +0 -0
  23. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/broker_backend/redis_broker_backend.py +0 -0
  24. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/common/__init__.py +0 -0
  25. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/core/__init__.py +0 -0
  26. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/core/providers.py +0 -0
  27. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/core/uow.py +0 -0
  28. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/di.py +0 -0
  29. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/files/entity.py.mako +0 -0
  30. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/lifecycle.py +0 -0
  31. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/messagebus/__init__.py +0 -0
  32. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/messagebus/bus_message_controller.py +0 -0
  33. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/messagebus/consumers/__init__.py +0 -0
  34. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/messagebus/decorators.py +0 -0
  35. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/messagebus/interceptors/__init__.py +0 -0
  36. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/messagebus/interceptors/publisher_interceptor.py +0 -0
  37. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/messagebus/message.py +0 -0
  38. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/messagebus/publisher.py +0 -0
  39. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/messagebus/worker_v2.py +0 -0
  40. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/microservice.py +0 -0
  41. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/observability/decorators.py +0 -0
  42. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/observability/interceptor.py +0 -0
  43. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/observability/providers/__init__.py +0 -0
  44. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/observability/providers/otel.py +0 -0
  45. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/persistence/base.py +0 -0
  46. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/persistence/exports.py +0 -0
  47. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/persistence/interceptors/__init__.py +0 -0
  48. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/persistence/session.py +0 -0
  49. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/persistence/sort_filter.py +0 -0
  50. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/persistence/utilities.py +0 -0
  51. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/presentation/__init__.py +0 -0
  52. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/presentation/decorators.py +0 -0
  53. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/presentation/hooks.py +0 -0
  54. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/presentation/http_microservice.py +0 -0
  55. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/presentation/server.py +0 -0
  56. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/presentation/websocket/__init__.py +0 -0
  57. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/presentation/websocket/base_types.py +0 -0
  58. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/presentation/websocket/context.py +0 -0
  59. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/presentation/websocket/decorators.py +0 -0
  60. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/presentation/websocket/redis.py +0 -0
  61. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/presentation/websocket/types.py +0 -0
  62. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/presentation/websocket/websocket_interceptor.py +0 -0
  63. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/py.typed +0 -0
  64. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/rpc/__init__.py +0 -0
  65. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/rpc/http/__init__.py +0 -0
  66. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/rpc/http/backends/__init__.py +0 -0
  67. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/rpc/http/backends/httpx.py +0 -0
  68. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/rpc/http/backends/otel.py +0 -0
  69. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/rpc/http/decorators.py +0 -0
  70. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/rpc/http/httpx.py +0 -0
  71. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/scheduler/__init__.py +0 -0
  72. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/scheduler/decorators.py +0 -0
  73. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/scheduler/scheduler.py +0 -0
  74. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/scheduler/scheduler_v2.py +0 -0
  75. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/scheduler/types.py +0 -0
  76. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/tools/app_config/__init__.py +0 -0
  77. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/tools/app_config/decorators.py +0 -0
  78. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/tools/app_config/interceptor.py +0 -0
  79. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/tools/metadata.py +0 -0
  80. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/tools/typescript/interface_parser.py +0 -0
  81. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/utils/__init__.py +0 -0
  82. {jararaca-0.3.11a0 → jararaca-0.3.11a2}/src/jararaca/utils/rabbitmq_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: jararaca
3
- Version: 0.3.11a0
3
+ Version: 0.3.11a2
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.11a0"
3
+ version = "0.3.11a2"
4
4
  description = "A simple and fast API framework for Python"
5
5
  authors = ["Lucas S <me@luscasleo.dev>"]
6
6
  readme = "README.md"
@@ -78,3 +78,7 @@ strict = true
78
78
  # JARARACA CONFIG
79
79
  [tool.poetry.scripts]
80
80
  jararaca = "jararaca.cli:cli"
81
+
82
+ [[tool.mypy.overrides]]
83
+ module = "mako.*"
84
+ ignore_missing_imports = true
@@ -11,7 +11,7 @@ from urllib.parse import urlparse, urlunsplit
11
11
 
12
12
  import click
13
13
  import uvicorn
14
- from mako.template import Template # type: ignore
14
+ from mako.template import Template
15
15
 
16
16
  from jararaca.messagebus import worker as worker_v1
17
17
  from jararaca.messagebus import worker_v2 as worker_v2_mod
@@ -303,7 +303,7 @@ def generate_interfaces(
303
303
  file.write(content)
304
304
  file.flush()
305
305
 
306
- print(
306
+ click.echo(
307
307
  f"Generated TypeScript interfaces at {time.strftime('%H:%M:%S')} at {str(Path(file_path).absolute())}"
308
308
  )
309
309
 
@@ -311,19 +311,19 @@ def generate_interfaces(
311
311
  import subprocess
312
312
 
313
313
  try:
314
- print(f"Running post-process command: {post_process_cmd}")
314
+ click.echo(f"Running post-process command: {post_process_cmd}")
315
315
  subprocess.run(
316
316
  post_process_cmd.replace("{file}", file_path),
317
317
  shell=True,
318
318
  check=True,
319
319
  )
320
- print(f"Post-processing completed successfully")
320
+ click.echo(f"Post-processing completed successfully")
321
321
  except subprocess.CalledProcessError as e:
322
- print(f"Post-processing command failed: {e}", file=sys.stderr)
322
+ click.echo(f"Post-processing command failed: {e}", file=sys.stderr)
323
323
 
324
324
  return content
325
325
  except Exception as e:
326
- print(f"Error generating TypeScript interfaces: {e}", file=sys.stderr)
326
+ click.echo(f"Error generating TypeScript interfaces: {e}", file=sys.stderr)
327
327
  return ""
328
328
 
329
329
 
@@ -367,18 +367,20 @@ def gen_tsi(
367
367
  """Generate TypeScript interfaces from a Python microservice."""
368
368
 
369
369
  if stdout and watch:
370
- print(
370
+ click.echo(
371
371
  "Error: --watch and --stdout options cannot be used together",
372
372
  file=sys.stderr,
373
373
  )
374
374
  return
375
375
 
376
376
  if not file_path and not stdout:
377
- print("Error: either file_path or --stdout must be provided", file=sys.stderr)
377
+ click.echo(
378
+ "Error: either file_path or --stdout must be provided", file=sys.stderr
379
+ )
378
380
  return
379
381
 
380
382
  if post_process and stdout:
381
- print(
383
+ click.echo(
382
384
  "Error: --post-process and --stdout options cannot be used together",
383
385
  file=sys.stderr,
384
386
  )
@@ -388,7 +390,7 @@ def gen_tsi(
388
390
  content = generate_interfaces(app_path, file_path, stdout, post_process)
389
391
 
390
392
  if stdout:
391
- print(content)
393
+ click.echo(content)
392
394
  return
393
395
 
394
396
  # If watch mode is not enabled, exit
@@ -399,7 +401,7 @@ def gen_tsi(
399
401
  from watchdog.events import FileSystemEvent, FileSystemEventHandler
400
402
  from watchdog.observers import Observer
401
403
  except ImportError:
402
- print(
404
+ click.echo(
403
405
  "Watchdog is required for watch mode. Install it with: pip install watchdog",
404
406
  file=sys.stderr,
405
407
  )
@@ -414,7 +416,7 @@ def gen_tsi(
414
416
  else str(event.src_path)
415
417
  )
416
418
  if not event.is_directory and src_path.endswith(".py"):
417
- print(f"File changed: {src_path}")
419
+ click.echo(f"File changed: {src_path}")
418
420
  # Create a completely detached process to ensure classes are reloaded
419
421
  process = multiprocessing.get_context("spawn").Process(
420
422
  target=generate_interfaces,
@@ -445,16 +447,16 @@ def gen_tsi(
445
447
 
446
448
  # Set up observer
447
449
  observer = Observer()
448
- observer.schedule(PyFileChangeHandler(), src_dir, recursive=True)
449
- observer.start()
450
+ observer.schedule(PyFileChangeHandler(), src_dir, recursive=True) # type: ignore
451
+ observer.start() # type: ignore
450
452
 
451
- print(f"Watching for changes in {os.path.abspath(src_dir)}...")
453
+ click.echo(f"Watching for changes in {os.path.abspath(src_dir)}...")
452
454
  try:
453
455
  while True:
454
456
  time.sleep(1)
455
457
  except KeyboardInterrupt:
456
- observer.stop()
457
- print("Watch mode stopped")
458
+ observer.stop() # type: ignore
459
+ click.echo("Watch mode stopped")
458
460
  observer.join()
459
461
 
460
462
 
@@ -76,7 +76,6 @@ class AIOPikaMessagePublisher(MessagePublisher):
76
76
  )
77
77
 
78
78
  async def flush(self) -> None:
79
- print("Flushing messages to AIOPika channel")
80
79
  for message in self.staged_messages:
81
80
  logger.debug(
82
81
  f"Publishing message {message.MESSAGE_TOPIC} with payload: {message.model_dump_json()}"
@@ -135,7 +135,7 @@ class AioPikaMicroserviceConsumer:
135
135
  no_ack=handler.spec.auto_ack,
136
136
  )
137
137
 
138
- print(f"Consuming {queue_name}")
138
+ logger.info(f"Consuming {queue_name}")
139
139
 
140
140
  await self.shutdown_event.wait()
141
141
  logger.info("Worker shutting down")
@@ -58,7 +58,6 @@ class AIOSqlAlchemySessionInterceptor(AppInterceptor):
58
58
  with provide_session(self.config.connection_name, session):
59
59
  try:
60
60
  yield
61
- print("Committing session")
62
61
  await session.commit()
63
62
  except Exception as e:
64
63
  await session.rollback()
File without changes
File without changes
File without changes
File without changes