jararaca 0.3.12a1__tar.gz → 0.3.12a2__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 (84) hide show
  1. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/PKG-INFO +1 -1
  2. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/pyproject.toml +1 -1
  3. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/tools/typescript/interface_parser.py +18 -4
  4. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/LICENSE +0 -0
  5. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/README.md +0 -0
  6. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/docs/CNAME +0 -0
  7. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/docs/architecture.md +0 -0
  8. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.jpeg +0 -0
  9. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.webp +0 -0
  10. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/docs/assets/tracing_example.png +0 -0
  11. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/docs/index.md +0 -0
  12. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/docs/messagebus.md +0 -0
  13. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/docs/retry.md +0 -0
  14. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/docs/scheduler.md +0 -0
  15. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/docs/stylesheets/custom.css +0 -0
  16. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/docs/websocket.md +0 -0
  17. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/__init__.py +0 -0
  18. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/__main__.py +0 -0
  19. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/broker_backend/__init__.py +0 -0
  20. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/broker_backend/mapper.py +0 -0
  21. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/broker_backend/redis_broker_backend.py +0 -0
  22. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/cli.py +0 -0
  23. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/common/__init__.py +0 -0
  24. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/core/__init__.py +0 -0
  25. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/core/providers.py +0 -0
  26. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/core/uow.py +0 -0
  27. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/di.py +0 -0
  28. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/files/entity.py.mako +0 -0
  29. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/lifecycle.py +0 -0
  30. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/messagebus/__init__.py +0 -0
  31. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/messagebus/bus_message_controller.py +0 -0
  32. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/messagebus/consumers/__init__.py +0 -0
  33. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/messagebus/decorators.py +0 -0
  34. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/messagebus/interceptors/__init__.py +0 -0
  35. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/messagebus/interceptors/aiopika_publisher_interceptor.py +0 -0
  36. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/messagebus/interceptors/publisher_interceptor.py +0 -0
  37. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/messagebus/message.py +0 -0
  38. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/messagebus/publisher.py +0 -0
  39. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/messagebus/worker.py +0 -0
  40. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/microservice.py +0 -0
  41. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/observability/decorators.py +0 -0
  42. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/observability/interceptor.py +0 -0
  43. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/observability/providers/__init__.py +0 -0
  44. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/observability/providers/otel.py +0 -0
  45. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/persistence/base.py +0 -0
  46. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/persistence/exports.py +0 -0
  47. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/persistence/interceptors/__init__.py +0 -0
  48. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/persistence/interceptors/aiosqa_interceptor.py +0 -0
  49. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/persistence/session.py +0 -0
  50. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/persistence/sort_filter.py +0 -0
  51. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/persistence/utilities.py +0 -0
  52. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/presentation/__init__.py +0 -0
  53. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/presentation/decorators.py +0 -0
  54. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/presentation/hooks.py +0 -0
  55. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/presentation/http_microservice.py +0 -0
  56. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/presentation/server.py +0 -0
  57. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/presentation/websocket/__init__.py +0 -0
  58. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/presentation/websocket/base_types.py +0 -0
  59. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/presentation/websocket/context.py +0 -0
  60. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/presentation/websocket/decorators.py +0 -0
  61. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/presentation/websocket/redis.py +0 -0
  62. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/presentation/websocket/types.py +0 -0
  63. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/presentation/websocket/websocket_interceptor.py +0 -0
  64. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/py.typed +0 -0
  65. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/reflect/__init__.py +0 -0
  66. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/reflect/controller_inspect.py +0 -0
  67. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/reflect/metadata.py +0 -0
  68. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/rpc/__init__.py +0 -0
  69. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/rpc/http/__init__.py +0 -0
  70. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/rpc/http/backends/__init__.py +0 -0
  71. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/rpc/http/backends/httpx.py +0 -0
  72. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/rpc/http/backends/otel.py +0 -0
  73. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/rpc/http/decorators.py +0 -0
  74. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/rpc/http/httpx.py +0 -0
  75. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/scheduler/__init__.py +0 -0
  76. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/scheduler/beat_worker.py +0 -0
  77. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/scheduler/decorators.py +0 -0
  78. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/scheduler/types.py +0 -0
  79. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/tools/app_config/__init__.py +0 -0
  80. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/tools/app_config/decorators.py +0 -0
  81. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/tools/app_config/interceptor.py +0 -0
  82. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/utils/__init__.py +0 -0
  83. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/src/jararaca/utils/rabbitmq_utils.py +0 -0
  84. {jararaca-0.3.12a1 → jararaca-0.3.12a2}/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.12a1
3
+ Version: 0.3.12a2
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.12a1"
3
+ version = "0.3.12a2"
4
4
  description = "A simple and fast API framework for Python"
5
5
  authors = ["Lucas S <me@luscasleo.dev>"]
6
6
  readme = "README.md"
@@ -603,8 +603,19 @@ class HttpParemeterSpec:
603
603
 
604
604
 
605
605
  def parse_path_with_params(path: str, parameters: list[HttpParemeterSpec]) -> str:
606
+ # Use a regular expression to match both simple parameters {param} and
607
+ # parameters with converters {param:converter}
608
+ import re
609
+
610
+ pattern = re.compile(r"{([^:}]+)(?::[^}]*)?}")
611
+
612
+ # For each parameter found in the path, replace it with :param format
606
613
  for parameter in parameters:
607
- path = path.replace(f"{{{parameter.name}}}", f":{parameter.name}")
614
+ path = pattern.sub(
615
+ lambda m: f":{m.group(1)}" if m.group(1) == parameter.name else m.group(0),
616
+ path,
617
+ )
618
+
608
619
  return path
609
620
 
610
621
 
@@ -728,7 +739,9 @@ def extract_parameters(
728
739
  )
729
740
  mapped_types.update(rec_mapped_types)
730
741
  parameters_list.extend(rec_parameters)
731
- elif controller.path.find(f":{parameter_name}") != -1:
742
+ elif (
743
+ re.search(f":{parameter_name}(?:/|$)", controller.path) is not None
744
+ ):
732
745
  mapped_types.add(annotated_type)
733
746
  parameters_list.append(
734
747
  HttpParemeterSpec(
@@ -762,8 +775,9 @@ def extract_parameters(
762
775
  )
763
776
  )
764
777
  elif (
765
- controller.path.find(f"{{{parameter_name}}}") != -1
766
- or mapping.path.find(f"{{{parameter_name}}}") != -1
778
+ # Match both simple parameters {param} and parameters with converters {param:converter}
779
+ re.search(f"{{{parameter_name}(:.*?)?}}", controller.path) is not None
780
+ or re.search(f"{{{parameter_name}(:.*?)?}}", mapping.path) is not None
767
781
  ):
768
782
  mapped_types.add(parameter_type)
769
783
  parameters_list.append(
File without changes
File without changes
File without changes
File without changes
File without changes