jararaca 0.3.13__tar.gz → 0.3.14__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 (90) hide show
  1. {jararaca-0.3.13 → jararaca-0.3.14}/PKG-INFO +1 -1
  2. {jararaca-0.3.13 → jararaca-0.3.14}/pyproject.toml +1 -1
  3. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/tools/typescript/interface_parser.py +21 -1
  4. {jararaca-0.3.13 → jararaca-0.3.14}/LICENSE +0 -0
  5. {jararaca-0.3.13 → jararaca-0.3.14}/README.md +0 -0
  6. {jararaca-0.3.13 → jararaca-0.3.14}/docs/CNAME +0 -0
  7. {jararaca-0.3.13 → jararaca-0.3.14}/docs/architecture.md +0 -0
  8. {jararaca-0.3.13 → jararaca-0.3.14}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.jpeg +0 -0
  9. {jararaca-0.3.13 → jararaca-0.3.14}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.webp +0 -0
  10. {jararaca-0.3.13 → jararaca-0.3.14}/docs/assets/tracing_example.png +0 -0
  11. {jararaca-0.3.13 → jararaca-0.3.14}/docs/http-rpc.md +0 -0
  12. {jararaca-0.3.13 → jararaca-0.3.14}/docs/index.md +0 -0
  13. {jararaca-0.3.13 → jararaca-0.3.14}/docs/interceptors.md +0 -0
  14. {jararaca-0.3.13 → jararaca-0.3.14}/docs/messagebus.md +0 -0
  15. {jararaca-0.3.13 → jararaca-0.3.14}/docs/retry.md +0 -0
  16. {jararaca-0.3.13 → jararaca-0.3.14}/docs/scheduler.md +0 -0
  17. {jararaca-0.3.13 → jararaca-0.3.14}/docs/stylesheets/custom.css +0 -0
  18. {jararaca-0.3.13 → jararaca-0.3.14}/docs/websocket.md +0 -0
  19. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/__init__.py +0 -0
  20. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/__main__.py +0 -0
  21. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/broker_backend/__init__.py +0 -0
  22. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/broker_backend/mapper.py +0 -0
  23. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/broker_backend/redis_broker_backend.py +0 -0
  24. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/cli.py +0 -0
  25. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/common/__init__.py +0 -0
  26. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/core/__init__.py +0 -0
  27. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/core/providers.py +0 -0
  28. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/core/uow.py +0 -0
  29. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/di.py +0 -0
  30. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/files/entity.py.mako +0 -0
  31. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/lifecycle.py +0 -0
  32. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/messagebus/__init__.py +0 -0
  33. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/messagebus/bus_message_controller.py +0 -0
  34. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/messagebus/consumers/__init__.py +0 -0
  35. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/messagebus/decorators.py +0 -0
  36. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/messagebus/interceptors/__init__.py +0 -0
  37. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/messagebus/interceptors/aiopika_publisher_interceptor.py +0 -0
  38. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/messagebus/interceptors/publisher_interceptor.py +0 -0
  39. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/messagebus/message.py +0 -0
  40. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/messagebus/publisher.py +0 -0
  41. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/messagebus/worker.py +0 -0
  42. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/microservice.py +0 -0
  43. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/observability/decorators.py +0 -0
  44. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/observability/interceptor.py +0 -0
  45. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/observability/providers/__init__.py +0 -0
  46. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/observability/providers/otel.py +0 -0
  47. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/persistence/base.py +0 -0
  48. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/persistence/exports.py +0 -0
  49. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/persistence/interceptors/__init__.py +0 -0
  50. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/persistence/interceptors/aiosqa_interceptor.py +0 -0
  51. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/persistence/interceptors/constants.py +0 -0
  52. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/persistence/interceptors/decorators.py +0 -0
  53. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/persistence/session.py +0 -0
  54. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/persistence/sort_filter.py +0 -0
  55. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/persistence/utilities.py +0 -0
  56. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/presentation/__init__.py +0 -0
  57. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/presentation/decorators.py +0 -0
  58. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/presentation/hooks.py +0 -0
  59. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/presentation/http_microservice.py +0 -0
  60. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/presentation/server.py +0 -0
  61. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/presentation/websocket/__init__.py +0 -0
  62. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/presentation/websocket/base_types.py +0 -0
  63. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/presentation/websocket/context.py +0 -0
  64. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/presentation/websocket/decorators.py +0 -0
  65. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/presentation/websocket/redis.py +0 -0
  66. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/presentation/websocket/types.py +0 -0
  67. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/presentation/websocket/websocket_interceptor.py +0 -0
  68. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/py.typed +0 -0
  69. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/reflect/__init__.py +0 -0
  70. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/reflect/controller_inspect.py +0 -0
  71. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/reflect/metadata.py +0 -0
  72. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/rpc/__init__.py +0 -0
  73. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/rpc/http/__init__.py +0 -0
  74. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/rpc/http/backends/__init__.py +0 -0
  75. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/rpc/http/backends/httpx.py +0 -0
  76. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/rpc/http/backends/otel.py +0 -0
  77. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/rpc/http/decorators.py +0 -0
  78. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/rpc/http/httpx.py +0 -0
  79. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/scheduler/__init__.py +0 -0
  80. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/scheduler/beat_worker.py +0 -0
  81. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/scheduler/decorators.py +0 -0
  82. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/scheduler/types.py +0 -0
  83. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/tools/app_config/__init__.py +0 -0
  84. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/tools/app_config/decorators.py +0 -0
  85. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/tools/app_config/interceptor.py +0 -0
  86. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/tools/typescript/__init__.py +0 -0
  87. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/tools/typescript/decorators.py +0 -0
  88. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/utils/__init__.py +0 -0
  89. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/utils/rabbitmq_utils.py +0 -0
  90. {jararaca-0.3.13 → jararaca-0.3.14}/src/jararaca/utils/retry.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jararaca
3
- Version: 0.3.13
3
+ Version: 0.3.14
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
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "jararaca"
3
- version = "0.3.13"
3
+ version = "0.3.14"
4
4
  description = "A simple and fast API framework for Python"
5
5
  authors = ["Lucas S <me@luscasleo.dev>"]
6
6
  readme = "README.md"
@@ -26,7 +26,7 @@ from uuid import UUID
26
26
  from fastapi import Request, Response, UploadFile
27
27
  from fastapi.params import Body, Cookie, Depends, Form, Header, Path, Query
28
28
  from fastapi.security.http import HTTPBase
29
- from pydantic import BaseModel, PlainValidator
29
+ from pydantic import BaseModel, PlainValidator, RootModel
30
30
  from pydantic_core import PydanticUndefined
31
31
 
32
32
  from jararaca.microservice import Microservice
@@ -314,6 +314,26 @@ def get_field_type_for_ts(field_type: Any, context_suffix: str = "") -> Any:
314
314
  field_type: The Python type to convert
315
315
  context_suffix: Suffix for split models (e.g., "Input", "Output")
316
316
  """
317
+ # Handle RootModel types - use the wrapped type directly
318
+ if inspect.isclass(field_type) and issubclass(field_type, RootModel):
319
+ # For concrete RootModel subclasses, get the wrapped type from annotations
320
+ if (
321
+ hasattr(field_type, "__annotations__")
322
+ and "root" in field_type.__annotations__
323
+ ):
324
+ wrapped_type = field_type.__annotations__["root"]
325
+ return get_field_type_for_ts(wrapped_type, context_suffix)
326
+
327
+ # For parameterized RootModel[T] types, get the type from pydantic metadata
328
+ if hasattr(field_type, "__pydantic_generic_metadata__"):
329
+ metadata = field_type.__pydantic_generic_metadata__
330
+ if metadata.get("origin") is RootModel and metadata.get("args"):
331
+ # Get the first (and only) type argument
332
+ wrapped_type = metadata["args"][0]
333
+ return get_field_type_for_ts(wrapped_type, context_suffix)
334
+
335
+ return "unknown"
336
+
317
337
  if field_type is Response:
318
338
  return "unknown"
319
339
  if field_type is Any:
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