asyncapi-python 0.3.0rc1__tar.gz → 0.3.0rc2__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.
Files changed (129) hide show
  1. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/PKG-INFO +1 -1
  2. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/pyproject.toml +1 -1
  3. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/generators/routers.py +6 -5
  4. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/uv.lock +1 -1
  5. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/.asyncapi-tool +0 -0
  6. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/.devcontainer/Dockerfile +0 -0
  7. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/.devcontainer/devcontainer.json +0 -0
  8. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/.devcontainer/docker-compose.yml +0 -0
  9. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/.github/workflows/release.yml +0 -0
  10. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/.github/workflows/test.yml +0 -0
  11. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/.gitignore +0 -0
  12. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/LICENSE +0 -0
  13. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/README.md +0 -0
  14. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-pub-sub/.gitignore +0 -0
  15. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-pub-sub/Makefile +0 -0
  16. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-pub-sub/README.md +0 -0
  17. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-pub-sub/main-publisher.py +0 -0
  18. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-pub-sub/main-subscriber.py +0 -0
  19. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-pub-sub/spec/common.asyncapi.yaml +0 -0
  20. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-pub-sub/spec/publisher.asyncapi.yaml +0 -0
  21. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-pub-sub/spec/subscriber.asyncapi.yaml +0 -0
  22. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-rpc/.gitignore +0 -0
  23. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-rpc/Makefile +0 -0
  24. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-rpc/README.md +0 -0
  25. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-rpc/main-client.py +0 -0
  26. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-rpc/main-server.py +0 -0
  27. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-rpc/spec/client.asyncapi.yaml +0 -0
  28. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-rpc/spec/common.asyncapi.yaml +0 -0
  29. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-rpc/spec/server.asyncapi.yaml +0 -0
  30. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-work-queue/.gitignore +0 -0
  31. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-work-queue/Makefile +0 -0
  32. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-work-queue/README.md +0 -0
  33. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-work-queue/main-producer.py +0 -0
  34. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-work-queue/main-worker.py +0 -0
  35. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-work-queue/spec/common.asyncapi.yaml +0 -0
  36. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-work-queue/spec/producer.asyncapi.yaml +0 -0
  37. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/amqp-work-queue/spec/worker.asyncapi.yaml +0 -0
  38. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/examples/specs/financial-trading-system.yaml +0 -0
  39. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/__init__.py +0 -0
  40. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/contrib/__init__.py +0 -0
  41. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/contrib/codec/__init__.py +0 -0
  42. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/contrib/codec/json.py +0 -0
  43. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/contrib/codec/registry.py +0 -0
  44. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/contrib/wire/__init__.py +0 -0
  45. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/contrib/wire/amqp/__init__.py +0 -0
  46. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/contrib/wire/amqp/config.py +0 -0
  47. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/contrib/wire/amqp/consumer.py +0 -0
  48. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/contrib/wire/amqp/factory.py +0 -0
  49. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/contrib/wire/amqp/message.py +0 -0
  50. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/contrib/wire/amqp/producer.py +0 -0
  51. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/contrib/wire/amqp/resolver.py +0 -0
  52. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/contrib/wire/amqp/utils.py +0 -0
  53. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/contrib/wire/in_memory.py +0 -0
  54. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/__init__.py +0 -0
  55. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/application.py +0 -0
  56. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/codec.py +0 -0
  57. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/document/__init__.py +0 -0
  58. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/document/bindings.py +0 -0
  59. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/document/channel.py +0 -0
  60. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/document/common.py +0 -0
  61. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/document/message.py +0 -0
  62. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/document/operation.py +0 -0
  63. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/endpoint/__init__.py +0 -0
  64. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/endpoint/abc.py +0 -0
  65. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/endpoint/exceptions.py +0 -0
  66. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/endpoint/message.py +0 -0
  67. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/endpoint/publisher.py +0 -0
  68. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/endpoint/rpc_client.py +0 -0
  69. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/endpoint/rpc_reply_handler.py +0 -0
  70. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/endpoint/rpc_server.py +0 -0
  71. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/endpoint/subscriber.py +0 -0
  72. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/exceptions.py +0 -0
  73. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/typing.py +0 -0
  74. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/wire/__init__.py +0 -0
  75. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/kernel/wire/typing.py +0 -0
  76. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/py.typed +0 -0
  77. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python/utils.py +0 -0
  78. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/__init__.py +0 -0
  79. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/cli.py +0 -0
  80. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/generators/__init__.py +0 -0
  81. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/generators/main.py +0 -0
  82. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/generators/messages.py +0 -0
  83. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/generators/parameters.py +0 -0
  84. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/generators/templates.py +0 -0
  85. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/parser/__init__.py +0 -0
  86. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/parser/context.py +0 -0
  87. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/parser/document_loader.py +0 -0
  88. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/parser/extractors.py +0 -0
  89. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/parser/references.py +0 -0
  90. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/parser/types.py +0 -0
  91. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/templates/__init__.py.j2 +0 -0
  92. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/templates/application.py.j2 +0 -0
  93. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/templates/messages.py.j2 +0 -0
  94. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/templates/messages_datamodel.py.j2 +0 -0
  95. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/templates/parameters.py.j2 +0 -0
  96. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_codegen/templates/router.py.j2 +0 -0
  97. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_pants/__init__.py +0 -0
  98. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_pants/py.typed +0 -0
  99. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_pants/register.py +0 -0
  100. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_pants/rules.py +0 -0
  101. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/src/asyncapi_python_pants/targets.py +0 -0
  102. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/__init__.py +0 -0
  103. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/codegen/__init__.py +0 -0
  104. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/codegen/specs/relative_refs/common/channels.yaml +0 -0
  105. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/codegen/specs/relative_refs/main.yaml +0 -0
  106. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/codegen/specs/relative_refs/shared/messages.yaml +0 -0
  107. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/codegen/specs/relative_refs/shared/notifications.yaml +0 -0
  108. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/codegen/specs/rpc.yaml +0 -0
  109. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/codegen/specs/simple.yaml +0 -0
  110. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/codegen/test_parser.py +0 -0
  111. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/conftest.py +0 -0
  112. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/integration/__init__.py +0 -0
  113. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/integration/scenarios/__init__.py +0 -0
  114. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/integration/scenarios/batch_processing.py +0 -0
  115. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/integration/scenarios/error_handling.py +0 -0
  116. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/integration/scenarios/fan_in_logging.py +0 -0
  117. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/integration/scenarios/fan_out_broadcasting.py +0 -0
  118. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/integration/scenarios/malformed_messages.py +0 -0
  119. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/integration/scenarios/many_to_many_microservices.py +0 -0
  120. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/integration/scenarios/producer_consumer.py +0 -0
  121. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/integration/scenarios/reply_channel.py +0 -0
  122. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/integration/test_app/__init__.py +0 -0
  123. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/integration/test_app/messages/__init__.py +0 -0
  124. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/integration/test_app/messages/json.py +0 -0
  125. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/integration/test_wire_codec_scenarios.py +0 -0
  126. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/kernel/endpoint/test_batch_processing.py +0 -0
  127. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/kernel/endpoint/test_exception_handling.py +0 -0
  128. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/kernel/endpoint/test_handler_enforcement.py +0 -0
  129. {asyncapi_python-0.3.0rc1 → asyncapi_python-0.3.0rc2}/tests/kernel/endpoint/test_rpc_endpoints.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: asyncapi-python
3
- Version: 0.3.0rc1
3
+ Version: 0.3.0rc2
4
4
  Summary: Easily generate type-safe and async Python applications from AsyncAPI 3 specifications.
5
5
  Author-email: Yaroslav Petrov <yaroslav.v.petrov@gmail.com>
6
6
  License: Apache-2.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "asyncapi-python"
3
- version = "0.3.0rc1"
3
+ version = "0.3.0rc2"
4
4
  license = { text = "Apache-2.0" }
5
5
  description = "Easily generate type-safe and async Python applications from AsyncAPI 3 specifications."
6
6
  authors = [{ name = "Yaroslav Petrov", email = "yaroslav.v.petrov@gmail.com" }]
@@ -3,6 +3,7 @@
3
3
  from typing import Any
4
4
  from dataclasses import dataclass
5
5
  from asyncapi_python.kernel.document import Channel, Operation
6
+ from asyncapi_python.utils import snake_case
6
7
 
7
8
 
8
9
  @dataclass
@@ -203,13 +204,13 @@ class RouterGenerator:
203
204
 
204
205
  # Navigate to the parent level
205
206
  for segment in path[:-1]:
206
- segment_lower = segment.lower()
207
- if segment_lower not in current:
208
- current[segment_lower] = {}
209
- current = current[segment_lower]
207
+ segment_snake = snake_case(segment)
208
+ if segment_snake not in current:
209
+ current[segment_snake] = {}
210
+ current = current[segment_snake]
210
211
 
211
212
  # Insert the router at the final level
212
- final_segment = path[-1].lower()
213
+ final_segment = snake_case(path[-1])
213
214
  current[final_segment] = router
214
215
 
215
216
  def generate_nested_routers_code(
@@ -64,7 +64,7 @@ wheels = [
64
64
 
65
65
  [[package]]
66
66
  name = "asyncapi-python"
67
- version = "0.3.0rc1"
67
+ version = "0.3.0rc2"
68
68
  source = { editable = "." }
69
69
  dependencies = [
70
70
  { name = "pydantic" },