faststream 0.7.2__tar.gz → 0.7.4__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 (509) hide show
  1. {faststream-0.7.2 → faststream-0.7.4}/PKG-INFO +10 -6
  2. {faststream-0.7.2 → faststream-0.7.4}/README.md +5 -1
  3. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/application.py +6 -6
  4. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/cli/docs.py +1 -1
  5. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/cli/supervisors/multiprocess.py +7 -1
  6. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/cli/supervisors/utils.py +3 -1
  7. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/cli/utils/errors.py +8 -4
  8. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/context/repository.py +2 -2
  9. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/endpoint/call_wrapper.py +2 -0
  10. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/fastapi/_compat.py +2 -2
  11. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/fastapi/get_dependant.py +23 -3
  12. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/fastapi/router.py +2 -2
  13. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/testing/broker.py +14 -6
  14. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/utils/functions.py +2 -2
  15. {faststream-0.7.2 → faststream-0.7.4}/faststream/asgi/app.py +2 -2
  16. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/fastapi/__init__.py +10 -0
  17. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/response.py +21 -1
  18. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/testing.py +11 -7
  19. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/fastapi/__init__.py +10 -0
  20. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/response.py +21 -1
  21. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/testing.py +10 -5
  22. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/broker/broker.py +6 -0
  23. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/fastapi/__init__.py +10 -0
  24. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/testing.py +4 -4
  25. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/broker/broker.py +44 -8
  26. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/fastapi/__init__.py +10 -0
  27. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/testing.py +2 -2
  28. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/__init__.py +2 -0
  29. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/broker/broker.py +2 -0
  30. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/fastapi/__init__.py +10 -0
  31. faststream-0.7.4/faststream/rabbit/security.py +68 -0
  32. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/testing.py +2 -2
  33. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/utils.py +20 -7
  34. faststream-0.7.4/faststream/redis/_compat.py +9 -0
  35. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/annotations.py +2 -2
  36. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/broker/broker.py +4 -0
  37. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/configs/state.py +26 -11
  38. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/fastapi/__init__.py +10 -0
  39. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/fastapi/fastapi.py +1 -1
  40. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/schemas/types.py +8 -3
  41. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/testing.py +58 -33
  42. {faststream-0.7.2 → faststream-0.7.4}/faststream/response/response.py +26 -0
  43. {faststream-0.7.2 → faststream-0.7.4}/pyproject.toml +6 -6
  44. faststream-0.7.2/faststream/rabbit/security.py +0 -31
  45. {faststream-0.7.2 → faststream-0.7.4}/LICENSE +0 -0
  46. {faststream-0.7.2 → faststream-0.7.4}/faststream/__about__.py +0 -0
  47. {faststream-0.7.2 → faststream-0.7.4}/faststream/__init__.py +0 -0
  48. {faststream-0.7.2 → faststream-0.7.4}/faststream/__main__.py +0 -0
  49. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/__init__.py +0 -0
  50. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/_compat.py +0 -0
  51. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/basic_types.py +0 -0
  52. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/broker/__init__.py +0 -0
  53. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/broker/broker.py +0 -0
  54. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/broker/pub_base.py +0 -0
  55. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/broker/registrator.py +0 -0
  56. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/broker/router.py +0 -0
  57. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/cli/__init__.py +0 -0
  58. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/cli/dto.py +0 -0
  59. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/cli/main.py +0 -0
  60. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/cli/options.py +0 -0
  61. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/cli/supervisors/__init__.py +0 -0
  62. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/cli/supervisors/asgi_multiprocess.py +0 -0
  63. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/cli/supervisors/basereload.py +0 -0
  64. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/cli/supervisors/watchfiles.py +0 -0
  65. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/cli/utils/__init__.py +0 -0
  66. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/cli/utils/imports.py +0 -0
  67. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/cli/utils/logs.py +0 -0
  68. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/cli/utils/parser.py +0 -0
  69. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/configs/__init__.py +0 -0
  70. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/configs/broker.py +0 -0
  71. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/configs/endpoint.py +0 -0
  72. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/configs/specification.py +0 -0
  73. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/constants.py +0 -0
  74. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/context/__init__.py +0 -0
  75. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/context/context_type.py +0 -0
  76. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/context/resolve.py +0 -0
  77. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/di/__init__.py +0 -0
  78. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/di/config.py +0 -0
  79. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/endpoint/__init__.py +0 -0
  80. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/endpoint/publisher/__init__.py +0 -0
  81. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/endpoint/publisher/fake.py +0 -0
  82. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/endpoint/publisher/proto.py +0 -0
  83. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/endpoint/publisher/specification.py +0 -0
  84. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/endpoint/publisher/usecase.py +0 -0
  85. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/endpoint/subscriber/__init__.py +0 -0
  86. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/endpoint/subscriber/call_item.py +0 -0
  87. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/endpoint/subscriber/mixins.py +0 -0
  88. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/endpoint/subscriber/specification.py +0 -0
  89. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/endpoint/subscriber/supervisor.py +0 -0
  90. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/endpoint/subscriber/usecase.py +0 -0
  91. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/endpoint/subscriber/utils.py +0 -0
  92. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/endpoint/usecase.py +0 -0
  93. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/endpoint/utils.py +0 -0
  94. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/fastapi/__init__.py +0 -0
  95. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/fastapi/config.py +0 -0
  96. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/fastapi/context.py +0 -0
  97. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/fastapi/route.py +0 -0
  98. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/logger/__init__.py +0 -0
  99. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/logger/formatter.py +0 -0
  100. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/logger/logger_proxy.py +0 -0
  101. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/logger/logging.py +0 -0
  102. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/logger/params_storage.py +0 -0
  103. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/logger/state.py +0 -0
  104. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/middlewares.py +0 -0
  105. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/parser.py +0 -0
  106. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/producer.py +0 -0
  107. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/proto.py +0 -0
  108. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/testing/__init__.py +0 -0
  109. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/testing/app.py +0 -0
  110. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/testing/ast.py +0 -0
  111. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/types.py +0 -0
  112. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/utils/__init__.py +0 -0
  113. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/utils/data.py +0 -0
  114. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/utils/nuid.py +0 -0
  115. {faststream-0.7.2 → faststream-0.7.4}/faststream/_internal/utils/path.py +0 -0
  116. {faststream-0.7.2 → faststream-0.7.4}/faststream/annotations.py +0 -0
  117. {faststream-0.7.2 → faststream-0.7.4}/faststream/app.py +0 -0
  118. {faststream-0.7.2 → faststream-0.7.4}/faststream/asgi/__init__.py +0 -0
  119. {faststream-0.7.2 → faststream-0.7.4}/faststream/asgi/annotations.py +0 -0
  120. {faststream-0.7.2 → faststream-0.7.4}/faststream/asgi/factories/__init__.py +0 -0
  121. {faststream-0.7.2 → faststream-0.7.4}/faststream/asgi/factories/asyncapi/__init__.py +0 -0
  122. {faststream-0.7.2 → faststream-0.7.4}/faststream/asgi/factories/asyncapi/docs.py +0 -0
  123. {faststream-0.7.2 → faststream-0.7.4}/faststream/asgi/factories/asyncapi/route.py +0 -0
  124. {faststream-0.7.2 → faststream-0.7.4}/faststream/asgi/factories/asyncapi/try_it_out.py +0 -0
  125. {faststream-0.7.2 → faststream-0.7.4}/faststream/asgi/factories/ping.py +0 -0
  126. {faststream-0.7.2 → faststream-0.7.4}/faststream/asgi/handlers.py +0 -0
  127. {faststream-0.7.2 → faststream-0.7.4}/faststream/asgi/params.py +0 -0
  128. {faststream-0.7.2 → faststream-0.7.4}/faststream/asgi/request.py +0 -0
  129. {faststream-0.7.2 → faststream-0.7.4}/faststream/asgi/response.py +0 -0
  130. {faststream-0.7.2 → faststream-0.7.4}/faststream/asgi/types.py +0 -0
  131. {faststream-0.7.2 → faststream-0.7.4}/faststream/asgi/websocket.py +0 -0
  132. {faststream-0.7.2 → faststream-0.7.4}/faststream/cli.py +0 -0
  133. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/__init__.py +0 -0
  134. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/annotations.py +0 -0
  135. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/broker/__init__.py +0 -0
  136. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/broker/broker.py +0 -0
  137. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/broker/logging.py +0 -0
  138. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/broker/registrator.py +0 -0
  139. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/broker/router.py +0 -0
  140. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/configs/__init__.py +0 -0
  141. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/configs/broker.py +0 -0
  142. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/fastapi/fastapi.py +0 -0
  143. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/helpers/__init__.py +0 -0
  144. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/helpers/admin.py +0 -0
  145. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/helpers/client.py +0 -0
  146. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/helpers/config.py +0 -0
  147. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/message.py +0 -0
  148. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/opentelemetry/__init__.py +0 -0
  149. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/opentelemetry/middleware.py +0 -0
  150. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/opentelemetry/provider.py +0 -0
  151. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/parser.py +0 -0
  152. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/prometheus/__init__.py +0 -0
  153. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/prometheus/middleware.py +0 -0
  154. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/prometheus/provider.py +0 -0
  155. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/publisher/__init__.py +0 -0
  156. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/publisher/config.py +0 -0
  157. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/publisher/factory.py +0 -0
  158. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/publisher/fake.py +0 -0
  159. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/publisher/producer.py +0 -0
  160. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/publisher/specification.py +0 -0
  161. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/publisher/state.py +0 -0
  162. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/publisher/usecase.py +0 -0
  163. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/schemas/__init__.py +0 -0
  164. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/schemas/partition.py +0 -0
  165. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/security.py +0 -0
  166. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/subscriber/__init__.py +0 -0
  167. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/subscriber/config.py +0 -0
  168. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/subscriber/factory.py +0 -0
  169. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/subscriber/specification.py +0 -0
  170. {faststream-0.7.2 → faststream-0.7.4}/faststream/confluent/subscriber/usecase.py +0 -0
  171. {faststream-0.7.2 → faststream-0.7.4}/faststream/context.py +0 -0
  172. {faststream-0.7.2 → faststream-0.7.4}/faststream/exceptions.py +0 -0
  173. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/__init__.py +0 -0
  174. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/annotations.py +0 -0
  175. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/broker/__init__.py +0 -0
  176. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/broker/broker.py +0 -0
  177. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/broker/logging.py +0 -0
  178. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/broker/registrator.py +0 -0
  179. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/broker/router.py +0 -0
  180. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/configs/__init__.py +0 -0
  181. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/configs/broker.py +0 -0
  182. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/exceptions.py +0 -0
  183. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/fastapi/fastapi.py +0 -0
  184. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/helpers/__init__.py +0 -0
  185. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/helpers/rebalance_listener.py +0 -0
  186. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/message.py +0 -0
  187. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/opentelemetry/__init__.py +0 -0
  188. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/opentelemetry/middleware.py +0 -0
  189. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/opentelemetry/provider.py +0 -0
  190. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/parser.py +0 -0
  191. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/prometheus/__init__.py +0 -0
  192. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/prometheus/middleware.py +0 -0
  193. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/prometheus/provider.py +0 -0
  194. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/publisher/__init__.py +0 -0
  195. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/publisher/config.py +0 -0
  196. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/publisher/factory.py +0 -0
  197. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/publisher/fake.py +0 -0
  198. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/publisher/producer.py +0 -0
  199. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/publisher/specification.py +0 -0
  200. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/publisher/state.py +0 -0
  201. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/publisher/usecase.py +0 -0
  202. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/schemas/__init__.py +0 -0
  203. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/schemas/params.py +0 -0
  204. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/security.py +0 -0
  205. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/subscriber/__init__.py +0 -0
  206. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/subscriber/config.py +0 -0
  207. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/subscriber/factory.py +0 -0
  208. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/subscriber/specification.py +0 -0
  209. {faststream-0.7.2 → faststream-0.7.4}/faststream/kafka/subscriber/usecase.py +0 -0
  210. {faststream-0.7.2 → faststream-0.7.4}/faststream/message/__init__.py +0 -0
  211. {faststream-0.7.2 → faststream-0.7.4}/faststream/message/message.py +0 -0
  212. {faststream-0.7.2 → faststream-0.7.4}/faststream/message/source_type.py +0 -0
  213. {faststream-0.7.2 → faststream-0.7.4}/faststream/message/utils.py +0 -0
  214. {faststream-0.7.2 → faststream-0.7.4}/faststream/middlewares/__init__.py +0 -0
  215. {faststream-0.7.2 → faststream-0.7.4}/faststream/middlewares/acknowledgement/__init__.py +0 -0
  216. {faststream-0.7.2 → faststream-0.7.4}/faststream/middlewares/acknowledgement/config.py +0 -0
  217. {faststream-0.7.2 → faststream-0.7.4}/faststream/middlewares/acknowledgement/middleware.py +0 -0
  218. {faststream-0.7.2 → faststream-0.7.4}/faststream/middlewares/exception.py +0 -0
  219. {faststream-0.7.2 → faststream-0.7.4}/faststream/middlewares/logging.py +0 -0
  220. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/__init__.py +0 -0
  221. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/annotations.py +0 -0
  222. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/broker/__init__.py +0 -0
  223. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/broker/config.py +0 -0
  224. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/broker/logging.py +0 -0
  225. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/broker/registrator.py +0 -0
  226. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/broker/router.py +0 -0
  227. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/fastapi/fastapi.py +0 -0
  228. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/message.py +0 -0
  229. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/opentelemetry/__init__.py +0 -0
  230. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/opentelemetry/middleware.py +0 -0
  231. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/opentelemetry/provider.py +0 -0
  232. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/parser.py +0 -0
  233. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/path.py +0 -0
  234. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/prometheus/__init__.py +0 -0
  235. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/prometheus/middleware.py +0 -0
  236. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/prometheus/provider.py +0 -0
  237. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/publisher/__init__.py +0 -0
  238. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/publisher/config.py +0 -0
  239. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/publisher/factory.py +0 -0
  240. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/publisher/fake.py +0 -0
  241. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/publisher/producer.py +0 -0
  242. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/publisher/specification.py +0 -0
  243. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/publisher/usecase.py +0 -0
  244. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/response.py +0 -0
  245. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/security.py +0 -0
  246. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/subscriber/__init__.py +0 -0
  247. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/subscriber/config.py +0 -0
  248. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/subscriber/factory.py +0 -0
  249. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/subscriber/specification.py +0 -0
  250. {faststream-0.7.2 → faststream-0.7.4}/faststream/mqtt/subscriber/usecase.py +0 -0
  251. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/__init__.py +0 -0
  252. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/annotations.py +0 -0
  253. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/broker/__init__.py +0 -0
  254. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/broker/logging.py +0 -0
  255. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/broker/registrator.py +0 -0
  256. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/broker/router.py +0 -0
  257. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/broker/state.py +0 -0
  258. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/configs/__init__.py +0 -0
  259. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/configs/broker.py +0 -0
  260. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/fastapi/fastapi.py +0 -0
  261. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/helpers/__init__.py +0 -0
  262. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/helpers/bucket_declarer.py +0 -0
  263. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/helpers/obj_storage_declarer.py +0 -0
  264. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/helpers/state.py +0 -0
  265. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/helpers/stream_builder.py +0 -0
  266. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/message.py +0 -0
  267. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/opentelemetry/__init__.py +0 -0
  268. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/opentelemetry/middleware.py +0 -0
  269. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/opentelemetry/provider.py +0 -0
  270. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/parser.py +0 -0
  271. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/prometheus/__init__.py +0 -0
  272. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/prometheus/middleware.py +0 -0
  273. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/prometheus/provider.py +0 -0
  274. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/publisher/__init__.py +0 -0
  275. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/publisher/config.py +0 -0
  276. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/publisher/factory.py +0 -0
  277. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/publisher/fake.py +0 -0
  278. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/publisher/producer.py +0 -0
  279. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/publisher/specification.py +0 -0
  280. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/publisher/usecase.py +0 -0
  281. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/response.py +0 -0
  282. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/schemas/__init__.py +0 -0
  283. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/schemas/js_stream.py +0 -0
  284. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/schemas/kv_watch.py +0 -0
  285. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/schemas/obj_watch.py +0 -0
  286. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/schemas/pull_sub.py +0 -0
  287. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/schemas/schedule.py +0 -0
  288. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/security.py +0 -0
  289. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/subscriber/__init__.py +0 -0
  290. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/subscriber/adapters.py +0 -0
  291. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/subscriber/config.py +0 -0
  292. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/subscriber/factory.py +0 -0
  293. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/subscriber/specification.py +0 -0
  294. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/subscriber/state.py +0 -0
  295. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/subscriber/usecases/__init__.py +0 -0
  296. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/subscriber/usecases/basic.py +0 -0
  297. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/subscriber/usecases/core_subscriber.py +0 -0
  298. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/subscriber/usecases/key_value_subscriber.py +0 -0
  299. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/subscriber/usecases/object_storage_subscriber.py +0 -0
  300. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/subscriber/usecases/stream_basic.py +0 -0
  301. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/subscriber/usecases/stream_pull_subscriber.py +0 -0
  302. {faststream-0.7.2 → faststream-0.7.4}/faststream/nats/subscriber/usecases/stream_push_subscriber.py +0 -0
  303. {faststream-0.7.2 → faststream-0.7.4}/faststream/opentelemetry/__init__.py +0 -0
  304. {faststream-0.7.2 → faststream-0.7.4}/faststream/opentelemetry/annotations.py +0 -0
  305. {faststream-0.7.2 → faststream-0.7.4}/faststream/opentelemetry/baggage.py +0 -0
  306. {faststream-0.7.2 → faststream-0.7.4}/faststream/opentelemetry/consts.py +0 -0
  307. {faststream-0.7.2 → faststream-0.7.4}/faststream/opentelemetry/middleware.py +0 -0
  308. {faststream-0.7.2 → faststream-0.7.4}/faststream/opentelemetry/provider.py +0 -0
  309. {faststream-0.7.2 → faststream-0.7.4}/faststream/params/__init__.py +0 -0
  310. {faststream-0.7.2 → faststream-0.7.4}/faststream/params/no_cast.py +0 -0
  311. {faststream-0.7.2 → faststream-0.7.4}/faststream/params/params.py +0 -0
  312. {faststream-0.7.2 → faststream-0.7.4}/faststream/prometheus/__init__.py +0 -0
  313. {faststream-0.7.2 → faststream-0.7.4}/faststream/prometheus/consts.py +0 -0
  314. {faststream-0.7.2 → faststream-0.7.4}/faststream/prometheus/container.py +0 -0
  315. {faststream-0.7.2 → faststream-0.7.4}/faststream/prometheus/manager.py +0 -0
  316. {faststream-0.7.2 → faststream-0.7.4}/faststream/prometheus/middleware.py +0 -0
  317. {faststream-0.7.2 → faststream-0.7.4}/faststream/prometheus/provider.py +0 -0
  318. {faststream-0.7.2 → faststream-0.7.4}/faststream/prometheus/types.py +0 -0
  319. {faststream-0.7.2 → faststream-0.7.4}/faststream/py.typed +0 -0
  320. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/annotations.py +0 -0
  321. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/broker/__init__.py +0 -0
  322. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/broker/logging.py +0 -0
  323. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/broker/registrator.py +0 -0
  324. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/broker/router.py +0 -0
  325. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/configs/__init__.py +0 -0
  326. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/configs/base.py +0 -0
  327. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/configs/broker.py +0 -0
  328. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/fastapi/fastapi.py +0 -0
  329. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/helpers/__init__.py +0 -0
  330. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/helpers/channel_manager.py +0 -0
  331. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/helpers/declarer.py +0 -0
  332. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/helpers/state.py +0 -0
  333. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/message.py +0 -0
  334. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/opentelemetry/__init__.py +0 -0
  335. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/opentelemetry/middleware.py +0 -0
  336. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/opentelemetry/provider.py +0 -0
  337. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/parser.py +0 -0
  338. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/prometheus/__init__.py +0 -0
  339. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/prometheus/middleware.py +0 -0
  340. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/prometheus/provider.py +0 -0
  341. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/publisher/__init__.py +0 -0
  342. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/publisher/config.py +0 -0
  343. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/publisher/factory.py +0 -0
  344. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/publisher/fake.py +0 -0
  345. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/publisher/options.py +0 -0
  346. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/publisher/producer.py +0 -0
  347. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/publisher/specification.py +0 -0
  348. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/publisher/usecase.py +0 -0
  349. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/response.py +0 -0
  350. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/schemas/__init__.py +0 -0
  351. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/schemas/channel.py +0 -0
  352. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/schemas/constants.py +0 -0
  353. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/schemas/exchange.py +0 -0
  354. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/schemas/queue.py +0 -0
  355. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/subscriber/__init__.py +0 -0
  356. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/subscriber/config.py +0 -0
  357. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/subscriber/factory.py +0 -0
  358. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/subscriber/specification.py +0 -0
  359. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/subscriber/usecase.py +0 -0
  360. {faststream-0.7.2 → faststream-0.7.4}/faststream/rabbit/types.py +0 -0
  361. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/__init__.py +0 -0
  362. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/broker/__init__.py +0 -0
  363. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/broker/cluster_broker.py +0 -0
  364. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/broker/logging.py +0 -0
  365. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/broker/registrator.py +0 -0
  366. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/broker/router.py +0 -0
  367. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/broker/sentinel_broker.py +0 -0
  368. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/configs/__init__.py +0 -0
  369. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/configs/broker.py +0 -0
  370. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/exceptions.py +0 -0
  371. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/message.py +0 -0
  372. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/opentelemetry/__init__.py +0 -0
  373. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/opentelemetry/middleware.py +0 -0
  374. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/opentelemetry/provider.py +0 -0
  375. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/parser/__init__.py +0 -0
  376. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/parser/binary.py +0 -0
  377. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/parser/message.py +0 -0
  378. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/parser/parsers.py +0 -0
  379. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/prometheus/__init__.py +0 -0
  380. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/prometheus/middleware.py +0 -0
  381. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/prometheus/provider.py +0 -0
  382. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/publisher/__init__.py +0 -0
  383. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/publisher/config.py +0 -0
  384. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/publisher/factory.py +0 -0
  385. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/publisher/fake.py +0 -0
  386. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/publisher/producer.py +0 -0
  387. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/publisher/specification.py +0 -0
  388. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/publisher/usecase.py +0 -0
  389. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/response.py +0 -0
  390. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/schemas/__init__.py +0 -0
  391. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/schemas/list_sub.py +0 -0
  392. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/schemas/proto.py +0 -0
  393. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/schemas/pub_sub.py +0 -0
  394. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/schemas/stream_sub.py +0 -0
  395. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/security.py +0 -0
  396. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/subscriber/__init__.py +0 -0
  397. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/subscriber/config.py +0 -0
  398. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/subscriber/factory.py +0 -0
  399. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/subscriber/specification.py +0 -0
  400. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/subscriber/usecases/__init__.py +0 -0
  401. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/subscriber/usecases/basic.py +0 -0
  402. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/subscriber/usecases/channel_subscriber.py +0 -0
  403. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/subscriber/usecases/list_subscriber.py +0 -0
  404. {faststream-0.7.2 → faststream-0.7.4}/faststream/redis/subscriber/usecases/stream_subscriber.py +0 -0
  405. {faststream-0.7.2 → faststream-0.7.4}/faststream/response/__init__.py +0 -0
  406. {faststream-0.7.2 → faststream-0.7.4}/faststream/response/publish_type.py +0 -0
  407. {faststream-0.7.2 → faststream-0.7.4}/faststream/response/utils.py +0 -0
  408. {faststream-0.7.2 → faststream-0.7.4}/faststream/security.py +0 -0
  409. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/__init__.py +0 -0
  410. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/__init__.py +0 -0
  411. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/factory.py +0 -0
  412. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/message.py +0 -0
  413. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/site.py +0 -0
  414. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/utils.py +0 -0
  415. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/__init__.py +0 -0
  416. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/generate.py +0 -0
  417. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/__init__.py +0 -0
  418. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/__init__.py +0 -0
  419. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/amqp/__init__.py +0 -0
  420. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/amqp/channel.py +0 -0
  421. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/amqp/operation.py +0 -0
  422. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/http/__init__.py +0 -0
  423. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/http/operation.py +0 -0
  424. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/kafka/__init__.py +0 -0
  425. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/kafka/channel.py +0 -0
  426. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/kafka/operation.py +0 -0
  427. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/main/__init__.py +0 -0
  428. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/main/channel.py +0 -0
  429. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/main/operation.py +0 -0
  430. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/mqtt/__init__.py +0 -0
  431. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/mqtt/channel.py +0 -0
  432. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/mqtt/operation.py +0 -0
  433. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/nats/__init__.py +0 -0
  434. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/nats/channel.py +0 -0
  435. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/nats/operation.py +0 -0
  436. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/redis/__init__.py +0 -0
  437. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/redis/channel.py +0 -0
  438. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/redis/operation.py +0 -0
  439. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/sqs/__init__.py +0 -0
  440. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/sqs/channel.py +0 -0
  441. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/bindings/sqs/operation.py +0 -0
  442. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/channels.py +0 -0
  443. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/components.py +0 -0
  444. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/contact.py +0 -0
  445. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/docs.py +0 -0
  446. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/info.py +0 -0
  447. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/license.py +0 -0
  448. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/message.py +0 -0
  449. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/operations.py +0 -0
  450. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/schema.py +0 -0
  451. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/servers.py +0 -0
  452. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/tag.py +0 -0
  453. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v2_6_0/schema/utils.py +0 -0
  454. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/__init__.py +0 -0
  455. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/generate.py +0 -0
  456. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/__init__.py +0 -0
  457. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/bindings/__init__.py +0 -0
  458. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/bindings/amqp/__init__.py +0 -0
  459. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/bindings/amqp/channel.py +0 -0
  460. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/bindings/amqp/operation.py +0 -0
  461. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/bindings/http.py +0 -0
  462. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/bindings/kafka.py +0 -0
  463. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/bindings/main/__init__.py +0 -0
  464. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/bindings/main/channel.py +0 -0
  465. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/bindings/main/operation.py +0 -0
  466. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/bindings/mqtt.py +0 -0
  467. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/bindings/nats.py +0 -0
  468. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/bindings/redis.py +0 -0
  469. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/bindings/sqs.py +0 -0
  470. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/channels.py +0 -0
  471. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/components.py +0 -0
  472. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/contact.py +0 -0
  473. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/docs.py +0 -0
  474. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/info.py +0 -0
  475. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/license.py +0 -0
  476. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/message.py +0 -0
  477. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/operations.py +0 -0
  478. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/schema.py +0 -0
  479. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/servers.py +0 -0
  480. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/tag.py +0 -0
  481. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/asyncapi/v3_0_0/schema/utils.py +0 -0
  482. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/base/__init__.py +0 -0
  483. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/base/generator.py +0 -0
  484. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/base/info.py +0 -0
  485. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/base/schema.py +0 -0
  486. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/base/specification.py +0 -0
  487. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/__init__.py +0 -0
  488. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/bindings/__init__.py +0 -0
  489. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/bindings/amqp.py +0 -0
  490. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/bindings/http.py +0 -0
  491. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/bindings/kafka.py +0 -0
  492. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/bindings/main.py +0 -0
  493. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/bindings/mqtt.py +0 -0
  494. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/bindings/nats.py +0 -0
  495. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/bindings/redis.py +0 -0
  496. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/bindings/sqs.py +0 -0
  497. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/broker.py +0 -0
  498. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/extra/__init__.py +0 -0
  499. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/extra/contact.py +0 -0
  500. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/extra/external_docs.py +0 -0
  501. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/extra/license.py +0 -0
  502. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/extra/tag.py +0 -0
  503. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/message/__init__.py +0 -0
  504. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/message/model.py +0 -0
  505. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/operation/__init__.py +0 -0
  506. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/operation/model.py +0 -0
  507. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/publisher.py +0 -0
  508. {faststream-0.7.2 → faststream-0.7.4}/faststream/specification/schema/subscriber.py +0 -0
  509. {faststream-0.7.2 → faststream-0.7.4}/faststream/types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: faststream
3
- Version: 0.7.2
3
+ Version: 0.7.4
4
4
  Summary: FastStream: the simplest way to work with a messaging queues
5
5
  Keywords: rabbitmq,kafka,nats,redis,mqtt,asyncapi,framework,message brokers
6
6
  Author: AG2AI, Nikita Pastukhov
@@ -37,17 +37,17 @@ Classifier: Framework :: Pydantic :: 2
37
37
  Requires-Dist: fast-depends[pydantic]>=3.0.0
38
38
  Requires-Dist: typing-extensions>=4.12.0
39
39
  Requires-Dist: anyio>=4.0,<5
40
- Requires-Dist: typer>=0.9,!=0.12,<=0.21.1 ; extra == 'cli'
40
+ Requires-Dist: typer>=0.9,!=0.12,<=0.27.1 ; extra == 'cli'
41
41
  Requires-Dist: watchfiles>=0.15.0,<1.2.0 ; extra == 'cli'
42
42
  Requires-Dist: confluent-kafka>=2,!=2.8.1,<3 ; python_full_version < '3.13' and extra == 'confluent'
43
43
  Requires-Dist: confluent-kafka>=2.6,!=2.8.1,<3 ; python_full_version >= '3.13' and extra == 'confluent'
44
44
  Requires-Dist: aiokafka>=0.9,<0.15 ; extra == 'kafka'
45
- Requires-Dist: zmqtt>=0.0.5 ; extra == 'mqtt'
45
+ Requires-Dist: zmqtt>=0.1.0,<0.2.0 ; extra == 'mqtt'
46
46
  Requires-Dist: nats-py>=2.12.0,<=3.0.0 ; extra == 'nats'
47
47
  Requires-Dist: opentelemetry-sdk>=1.24.0,<2.0.0 ; extra == 'otel'
48
48
  Requires-Dist: prometheus-client>=0.20.0,<0.30.0 ; extra == 'prometheus'
49
- Requires-Dist: aio-pika>=9,<10 ; extra == 'rabbit'
50
- Requires-Dist: redis>=5.0.0,<8.0.0 ; extra == 'redis'
49
+ Requires-Dist: aio-pika>=9,<11 ; extra == 'rabbit'
50
+ Requires-Dist: redis>=5.0.0,<9.0.0 ; extra == 'redis'
51
51
  Requires-Python: >=3.10
52
52
  Project-URL: Homepage, https://faststream.ag2.ai/latest/
53
53
  Project-URL: Documentation, https://faststream.ag2.ai/latest/getting-started/
@@ -438,7 +438,11 @@ if __name__ == "__main__":
438
438
  web.run_app(app)
439
439
  ```
440
440
 
441
- ### **FastAPI** Plugin
441
+ ### **FastAPI** Plugin (deprecated)
442
+
443
+ The integration has been moved to the
444
+ **[faststream_fastapi](https://github.com/faststream-community/faststream_fastapi)**
445
+ package and will be removed in 1.0.0 version.
442
446
 
443
447
  Also, **FastStream** can be used as part of **FastAPI**.
444
448
 
@@ -371,7 +371,11 @@ if __name__ == "__main__":
371
371
  web.run_app(app)
372
372
  ```
373
373
 
374
- ### **FastAPI** Plugin
374
+ ### **FastAPI** Plugin (deprecated)
375
+
376
+ The integration has been moved to the
377
+ **[faststream_fastapi](https://github.com/faststream-community/faststream_fastapi)**
378
+ package and will be removed in 1.0.0 version.
375
379
 
376
380
  Also, **FastStream** can be used as part of **FastAPI**.
377
381
 
@@ -1,6 +1,6 @@
1
1
  import logging
2
2
  from abc import abstractmethod
3
- from collections.abc import AsyncIterator, Callable, Sequence
3
+ from collections.abc import AsyncGenerator, Callable, Sequence
4
4
  from contextlib import asynccontextmanager
5
5
  from typing import TYPE_CHECKING, Any, Optional, TypeVar
6
6
 
@@ -32,7 +32,7 @@ try:
32
32
  from faststream.exceptions import StartupValidationError
33
33
 
34
34
  @asynccontextmanager
35
- async def catch_startup_validation_error() -> AsyncIterator[None]:
35
+ async def catch_startup_validation_error() -> AsyncGenerator[None, None]:
36
36
  try:
37
37
  yield
38
38
  except PValidation as e:
@@ -216,7 +216,7 @@ class Application(StartAbleApplication):
216
216
  async def _start_hooks_context(
217
217
  self,
218
218
  **run_extra_options: "SettingField",
219
- ) -> AsyncIterator[None]:
219
+ ) -> AsyncGenerator[None, None]:
220
220
  async with catch_startup_validation_error():
221
221
  for func in self._on_startup_calling:
222
222
  await func(**run_extra_options)
@@ -230,7 +230,7 @@ class Application(StartAbleApplication):
230
230
  async def _startup_logging(
231
231
  self,
232
232
  log_level: int = logging.INFO,
233
- ) -> AsyncIterator[None]:
233
+ ) -> AsyncGenerator[None, None]:
234
234
  """Separated startup logging."""
235
235
  self._log(
236
236
  log_level,
@@ -260,7 +260,7 @@ class Application(StartAbleApplication):
260
260
  await broker.stop()
261
261
 
262
262
  @asynccontextmanager
263
- async def _shutdown_hooks_context(self) -> AsyncIterator[None]:
263
+ async def _shutdown_hooks_context(self) -> AsyncGenerator[None, None]:
264
264
  for func in self._on_shutdown_calling:
265
265
  await func()
266
266
 
@@ -273,7 +273,7 @@ class Application(StartAbleApplication):
273
273
  async def _shutdown_logging(
274
274
  self,
275
275
  log_level: int = logging.INFO,
276
- ) -> AsyncIterator[None]:
276
+ ) -> AsyncGenerator[None, None]:
277
277
  """Separated startup logging."""
278
278
  self._log(log_level, "FastStream app shutting down...")
279
279
 
@@ -200,7 +200,7 @@ def _parse_and_serve(args: RunArgs) -> None:
200
200
  data = json_dumps(schema)
201
201
 
202
202
  else:
203
- msg = f"Unknown extension given - {args.app}; Please provide app in format [python_module:Specification] or [asyncapi.yaml/.json] - path to your application or documentation"
203
+ msg = f"Unknown extension given - {args.app}; Please provide app in format [python_module:FastStream] or [asyncapi.yaml/.json] - path to your application or documentation"
204
204
  raise ValueError(msg)
205
205
 
206
206
  for schema in (SchemaV3, SchemaV2_6):
@@ -4,6 +4,8 @@ from typing import TYPE_CHECKING
4
4
  from faststream._internal.cli.supervisors.basereload import BaseReload
5
5
  from faststream._internal.logger import logger
6
6
 
7
+ SIGKILL: int | None = getattr(signal, "SIGKILL", None)
8
+
7
9
  if TYPE_CHECKING:
8
10
  from multiprocessing.context import SpawnProcess
9
11
 
@@ -50,7 +52,11 @@ class Multiprocess(BaseReload):
50
52
  continue
51
53
 
52
54
  log_msg = "Worker %s (pid:%s) exited with code %s."
53
- if process.exitcode and abs(process.exitcode) == signal.SIGKILL:
55
+ if (
56
+ SIGKILL is not None
57
+ and process.exitcode
58
+ and abs(process.exitcode) == SIGKILL
59
+ ):
54
60
  log_msg += " Perhaps out of memory?"
55
61
  logger.error(log_msg, worker_id, process.pid, process.exitcode)
56
62
 
@@ -25,7 +25,9 @@ HANDLED_SIGNALS: tuple[int, ...] = (
25
25
  )
26
26
  if IS_WINDOWS: # pragma: py-not-win32
27
27
  # Windows signal 21. Sent by Ctrl+Break.
28
- HANDLED_SIGNALS += (signal.SIGBREAK,) # type: ignore[attr-defined]
28
+ sigbreak: int | None = getattr(signal, "SIGBREAK", None)
29
+ if sigbreak is not None:
30
+ HANDLED_SIGNALS += (sigbreak,)
29
31
 
30
32
 
31
33
  def set_exit(
@@ -2,10 +2,14 @@ from faststream.exceptions import StartupValidationError
2
2
 
3
3
 
4
4
  def draw_startup_errors(startup_exc: StartupValidationError) -> None:
5
- from click.exceptions import BadParameter, MissingParameter
6
5
  from typer.core import TyperOption
7
6
 
8
- def draw_error(click_exc: BadParameter) -> None:
7
+ try:
8
+ from typer._click import exceptions as click_exceptions
9
+ except ImportError: # pragma: no cover - Typer < 0.26
10
+ from click import exceptions as click_exceptions # type: ignore[no-redef]
11
+
12
+ def draw_error(click_exc: click_exceptions.ClickException) -> None:
9
13
  try:
10
14
  from typer import rich_utils
11
15
 
@@ -15,7 +19,7 @@ def draw_startup_errors(startup_exc: StartupValidationError) -> None:
15
19
 
16
20
  for field in startup_exc.invalid_fields:
17
21
  draw_error(
18
- BadParameter(
22
+ click_exceptions.BadParameter(
19
23
  message=(
20
24
  "extra option in your application "
21
25
  "`lifespan/on_startup` hook has a wrong type."
@@ -26,7 +30,7 @@ def draw_startup_errors(startup_exc: StartupValidationError) -> None:
26
30
 
27
31
  if startup_exc.missed_fields:
28
32
  draw_error(
29
- MissingParameter(
33
+ click_exceptions.MissingParameter(
30
34
  message=(
31
35
  "You registered extra options in your application "
32
36
  "`lifespan/on_startup` hook, but does not set in CLI."
@@ -1,4 +1,4 @@
1
- from collections.abc import Iterator, Mapping
1
+ from collections.abc import Generator, Mapping
2
2
  from contextlib import contextmanager
3
3
  from contextvars import ContextVar, Token
4
4
  from typing import Any
@@ -97,7 +97,7 @@ class ContextRepo:
97
97
  return context_value
98
98
 
99
99
  @contextmanager
100
- def scope(self, key: str, value: Any) -> Iterator[None]:
100
+ def scope(self, key: str, value: Any) -> Generator[None, None, None]:
101
101
  """Sets a local variable and yields control to the caller. After the caller is done, the local variable is reset.
102
102
 
103
103
  Args:
@@ -138,6 +138,8 @@ class HandlerCallWrapper(Generic[P_HandlerParams, T_HandlerReturn]):
138
138
 
139
139
  if error:
140
140
  self.future.set_exception(error)
141
+ # Mark the mirrored error as retrieved to avoid unhandled-future reports.
142
+ self.future.exception()
141
143
 
142
144
  else:
143
145
  self.future.set_result(result)
@@ -91,7 +91,7 @@ if FASTAPI_v102_3:
91
91
  ) -> SolvedDependency:
92
92
  solved_result = await solve_dependencies(
93
93
  request=request,
94
- body=request._body, # type: ignore[arg-type]
94
+ body=request._body, # pyright: ignore[reportArgumentType]
95
95
  dependant=dependant,
96
96
  dependency_overrides_provider=dependency_overrides_provider,
97
97
  **extra, # type: ignore[arg-type]
@@ -122,7 +122,7 @@ else:
122
122
  ) -> SolvedDependency:
123
123
  solved_result = await solve_dependencies(
124
124
  request=request,
125
- body=request._body, # type: ignore[arg-type]
125
+ body=request._body, # pyright: ignore[reportArgumentType]
126
126
  dependant=dependant,
127
127
  dependency_overrides_provider=dependency_overrides_provider,
128
128
  **kwargs,
@@ -1,10 +1,12 @@
1
1
  import inspect
2
2
  from collections.abc import Callable, Iterable
3
+ from dataclasses import fields
3
4
  from typing import TYPE_CHECKING, Annotated, Any, cast, get_args, get_origin
4
5
 
5
6
  from fast_depends.library.serializer import OptionItem
6
7
  from fast_depends.utils import get_typed_annotation
7
8
  from fastapi import params
9
+ from fastapi.dependencies.models import Dependant
8
10
  from fastapi.dependencies.utils import (
9
11
  get_dependant,
10
12
  get_parameterless_sub_dependant,
@@ -17,6 +19,23 @@ if TYPE_CHECKING:
17
19
  from fastapi.dependencies import models
18
20
 
19
21
 
22
+ class _FastStreamDependant(Dependant):
23
+ """FastAPI dependant extended with fields required by FastStream."""
24
+
25
+ model: type[Any]
26
+ custom_fields: dict[str, Any]
27
+ flat_params: list[OptionItem]
28
+
29
+
30
+ def _extend_fastapi_dependant(dependant: Dependant) -> _FastStreamDependant:
31
+ """Copy a native FastAPI dependant into an extensible subclass."""
32
+ return _FastStreamDependant(**{
33
+ field.name: getattr(dependant, field.name)
34
+ for field in fields(dependant)
35
+ if field.init
36
+ })
37
+
38
+
20
39
  def get_fastapi_dependant(
21
40
  orig_call: Callable[..., Any],
22
41
  dependencies: Iterable["params.Depends"],
@@ -55,6 +74,7 @@ def _patch_fastapi_dependent(dependant: "models.Dependant") -> "models.Dependant
55
74
 
56
75
  from faststream._internal._compat import PydanticUndefined
57
76
 
77
+ dependant = _extend_fastapi_dependant(dependant)
58
78
  params = dependant.query_params + dependant.body_params
59
79
 
60
80
  for d in dependant.dependencies:
@@ -128,12 +148,12 @@ def _patch_fastapi_dependent(dependant: "models.Dependant") -> "models.Dependant
128
148
  f,
129
149
  )
130
150
 
131
- dependant.model = create_model( # type: ignore[attr-defined]
151
+ dependant.model = create_model(
132
152
  getattr(call, "__name__", type(call).__name__),
133
153
  )
134
154
 
135
- dependant.custom_fields = {} # type: ignore[attr-defined]
136
- dependant.flat_params = [ # type: ignore[attr-defined]
155
+ dependant.custom_fields = {}
156
+ dependant.flat_params = [
137
157
  OptionItem(field_name=name, field_type=type_, default_value=default)
138
158
  for name, (type_, default) in params_unique.items()
139
159
  ]
@@ -2,7 +2,7 @@ import json
2
2
  import warnings
3
3
  from abc import abstractmethod
4
4
  from collections.abc import (
5
- AsyncIterator,
5
+ AsyncGenerator,
6
6
  Awaitable,
7
7
  Callable,
8
8
  Iterable,
@@ -273,7 +273,7 @@ class StreamRouter(APIRouter, StartAbleApplication, Generic[MsgType]):
273
273
  @asynccontextmanager
274
274
  async def start_broker_lifespan(
275
275
  app: "FastAPI",
276
- ) -> AsyncIterator[Mapping[str, Any] | None]:
276
+ ) -> AsyncGenerator[Mapping[str, Any] | None, None]:
277
277
  """Starts the lifespan of a broker."""
278
278
  self.fastapi_config.set_application(app)
279
279
 
@@ -1,13 +1,21 @@
1
1
  import warnings
2
2
  from abc import abstractmethod
3
- from collections.abc import AsyncIterator, Generator, Iterator
3
+ from collections.abc import AsyncGenerator, Generator
4
4
  from contextlib import (
5
5
  AsyncExitStack,
6
6
  asynccontextmanager,
7
7
  contextmanager,
8
8
  )
9
9
  from functools import partial
10
- from typing import TYPE_CHECKING, Any, Generic, Optional, Protocol, TypeVar, cast
10
+ from typing import (
11
+ TYPE_CHECKING,
12
+ Any,
13
+ Generic,
14
+ Optional,
15
+ Protocol,
16
+ TypeVar,
17
+ cast,
18
+ )
11
19
  from unittest import mock
12
20
  from unittest.mock import MagicMock
13
21
 
@@ -97,7 +105,7 @@ class TestBroker(Generic[Broker, EnterType]):
97
105
  await self._ctx.__aexit__(exc_type, exc_val, exc_tb)
98
106
 
99
107
  @asynccontextmanager
100
- async def _create_ctx(self) -> AsyncIterator[list[Broker]]:
108
+ async def _create_ctx(self) -> AsyncGenerator[list[Broker], None]:
101
109
  async with AsyncExitStack() as stack:
102
110
  saved_running = {}
103
111
  started_brokers = []
@@ -123,7 +131,7 @@ class TestBroker(Generic[Broker, EnterType]):
123
131
  sub.running = was_running
124
132
 
125
133
  @asynccontextmanager
126
- async def _do_start(self, broker: Broker) -> AsyncIterator[Broker]:
134
+ async def _do_start(self, broker: Broker) -> AsyncGenerator[Broker, None]:
127
135
  try:
128
136
  if not self.connect_only:
129
137
  await broker.start()
@@ -134,11 +142,11 @@ class TestBroker(Generic[Broker, EnterType]):
134
142
  self._fake_close(broker)
135
143
 
136
144
  @contextmanager
137
- def _patch_producer(self, broker: Broker) -> Iterator[None]:
145
+ def _patch_producer(self, broker: Broker) -> Generator[None, None, None]:
138
146
  raise NotImplementedError
139
147
 
140
148
  @contextmanager
141
- def _patch_logger(self, broker: Broker) -> Iterator[None]:
149
+ def _patch_logger(self, broker: Broker) -> Generator[None, None, None]:
142
150
  broker._setup_logger()
143
151
 
144
152
  logger_state = broker.config.logger
@@ -1,5 +1,5 @@
1
1
  import asyncio
2
- from collections.abc import AsyncIterator, Awaitable, Callable
2
+ from collections.abc import AsyncGenerator, Awaitable, Callable
3
3
  from concurrent.futures import Executor
4
4
  from contextlib import asynccontextmanager
5
5
  from functools import partial, wraps
@@ -64,7 +64,7 @@ def to_async(
64
64
 
65
65
 
66
66
  @asynccontextmanager
67
- async def fake_context(*args: Any, **kwargs: Any) -> AsyncIterator[None]:
67
+ async def fake_context(*args: Any, **kwargs: Any) -> AsyncGenerator[None, None]:
68
68
  yield None
69
69
 
70
70
 
@@ -2,7 +2,7 @@ import inspect
2
2
  import logging
3
3
  import traceback
4
4
  from abc import abstractmethod
5
- from collections.abc import AsyncIterator, Sequence
5
+ from collections.abc import AsyncGenerator, Sequence
6
6
  from contextlib import asynccontextmanager
7
7
  from typing import TYPE_CHECKING, Any, Optional, Protocol
8
8
 
@@ -250,7 +250,7 @@ class AsgiFastStream(Application):
250
250
  async def start_lifespan_context(
251
251
  self,
252
252
  run_extra_options: dict[str, "SettingField"] | None = None,
253
- ) -> AsyncIterator[None]:
253
+ ) -> AsyncGenerator[None, None]:
254
254
  run_extra_options = run_extra_options or self._run_extra_options
255
255
 
256
256
  async with self.lifespan_context(**run_extra_options):
@@ -1,3 +1,4 @@
1
+ import warnings
1
2
  from typing import Annotated
2
3
 
3
4
  from faststream._internal.fastapi.context import Context, ContextRepo, Logger
@@ -7,6 +8,15 @@ from faststream.confluent.publisher.producer import AsyncConfluentFastProducer
7
8
 
8
9
  from .fastapi import KafkaRouter
9
10
 
11
+ warnings.warn(
12
+ "The integration has been moved to the faststream_fastapi package"
13
+ " and will be removed in 1.0.0 version."
14
+ "\n`pip install faststream_fastapi`"
15
+ "\nhttps://github.com/faststream-community/faststream_fastapi",
16
+ DeprecationWarning,
17
+ stacklevel=2,
18
+ )
19
+
10
20
  __all__ = (
11
21
  "Context",
12
22
  "ContextRepo",
@@ -1,3 +1,4 @@
1
+ from collections.abc import Sequence
1
2
  from typing import TYPE_CHECKING, Any, Union
2
3
 
3
4
  from typing_extensions import override
@@ -9,6 +10,7 @@ from faststream.response.response import (
9
10
  Response,
10
11
  extract_per_message_keys_and_bodies,
11
12
  key_for_index,
13
+ realign_keys,
12
14
  )
13
15
 
14
16
  if TYPE_CHECKING:
@@ -99,9 +101,9 @@ class KafkaPublishCommand(BatchPublishCommand):
99
101
 
100
102
  # per-message keys support
101
103
  keys, normalized = extract_per_message_keys_and_bodies(self.batch_bodies)
104
+ self._per_message_keys = keys
102
105
  if normalized is not None:
103
106
  self.batch_bodies = normalized
104
- self._per_message_keys = keys
105
107
 
106
108
  @classmethod
107
109
  def from_cmd(
@@ -140,6 +142,24 @@ class KafkaPublishCommand(BatchPublishCommand):
140
142
 
141
143
  return headers | self.headers
142
144
 
145
+ @BatchPublishCommand.batch_bodies.setter # type: ignore[attr-defined, untyped-decorator]
146
+ def batch_bodies(self, value: Sequence["Any"]) -> None:
147
+ if len(value) == 0:
148
+ self.body = None
149
+ self.extra_bodies = ()
150
+ else:
151
+ self._align_keys(value)
152
+ self.body = value[0]
153
+ self.extra_bodies = tuple(value[1:])
154
+
155
+ def _align_keys(self, value: Sequence["Any"]) -> None:
156
+ """Align the per-message keys with the batch_bodies."""
157
+ if not self._per_message_keys:
158
+ return
159
+ self._per_message_keys = realign_keys(
160
+ self._per_message_keys, self.batch_bodies, value
161
+ )
162
+
143
163
 
144
164
  # Semantic alias for publish operations
145
165
  # More intuitive name when using in publish_batch() rather than as handler return value
@@ -1,4 +1,4 @@
1
- from collections.abc import Callable, Generator, Iterable, Iterator, Sequence
1
+ from collections.abc import Callable, Generator, Iterable, Sequence
2
2
  from contextlib import ExitStack, contextmanager
3
3
  from datetime import datetime, timezone
4
4
  from typing import TYPE_CHECKING, Any, Optional, cast, overload
@@ -70,7 +70,7 @@ class TestKafkaBroker(TestBroker[KafkaBroker, EnterType]):
70
70
  )
71
71
 
72
72
  @contextmanager
73
- def _patch_producer(self, broker: KafkaBroker) -> Iterator[None]:
73
+ def _patch_producer(self, broker: KafkaBroker) -> Generator[None, None, None]:
74
74
  fake_producer = FakeProducer(broker, self.brokers)
75
75
 
76
76
  with ExitStack() as es:
@@ -279,7 +279,7 @@ class FakeProducer(AsyncConfluentFastProducer):
279
279
  class MockConfluentMessage:
280
280
  def __init__(
281
281
  self,
282
- raw_msg: bytes,
282
+ raw_msg: bytes | None,
283
283
  topic: str,
284
284
  key: bytes | str,
285
285
  headers: list[tuple[str, bytes]],
@@ -304,7 +304,7 @@ class MockConfluentMessage:
304
304
  self._timestamp = (timestamp_type, timestamp_ms)
305
305
 
306
306
  def len(self) -> int:
307
- return len(self._raw_msg)
307
+ return 0 if self._raw_msg is None else len(self._raw_msg)
308
308
 
309
309
  def error(self) -> str | None:
310
310
  return self._error
@@ -327,7 +327,7 @@ class MockConfluentMessage:
327
327
  def topic(self) -> str:
328
328
  return self._topic
329
329
 
330
- def value(self) -> bytes:
330
+ def value(self) -> bytes | None:
331
331
  return self._raw_msg
332
332
 
333
333
 
@@ -345,8 +345,12 @@ async def build_message(
345
345
  codec: Optional["CodecProto"] = None,
346
346
  ) -> MockConfluentMessage:
347
347
  """Build a mock confluent_kafka.Message for a sendable message."""
348
- codec_instance = codec or DefaultCodec()
349
- msg, content_type = await codec_instance.encode(message, serializer)
348
+ if message is None:
349
+ # keep a real tombstone (message.value() is None) distinct from b""
350
+ msg, content_type = None, None
351
+ else:
352
+ codec_instance = codec or DefaultCodec()
353
+ msg, content_type = await codec_instance.encode(message, serializer)
350
354
  k = key or b""
351
355
  headers = {
352
356
  "content-type": content_type or "",
@@ -1,3 +1,4 @@
1
+ import warnings
1
2
  from typing import Annotated
2
3
 
3
4
  from faststream._internal.fastapi.context import Context, ContextRepo, Logger
@@ -7,6 +8,15 @@ from faststream.kafka.publisher.producer import AioKafkaFastProducer
7
8
 
8
9
  from .fastapi import KafkaRouter
9
10
 
11
+ warnings.warn(
12
+ "The integration has been moved to the faststream_fastapi package"
13
+ " and will be removed in 1.0.0 version."
14
+ "\n`pip install faststream_fastapi`"
15
+ "\nhttps://github.com/faststream-community/faststream_fastapi",
16
+ DeprecationWarning,
17
+ stacklevel=2,
18
+ )
19
+
10
20
  __all__ = (
11
21
  "Context",
12
22
  "ContextRepo",
@@ -1,3 +1,4 @@
1
+ from collections.abc import Sequence
1
2
  from typing import TYPE_CHECKING, Any, Union
2
3
 
3
4
  from typing_extensions import override
@@ -9,6 +10,7 @@ from faststream.response.response import (
9
10
  Response,
10
11
  extract_per_message_keys_and_bodies,
11
12
  key_for_index,
13
+ realign_keys,
12
14
  )
13
15
 
14
16
  if TYPE_CHECKING:
@@ -99,9 +101,9 @@ class KafkaPublishCommand(BatchPublishCommand):
99
101
 
100
102
  # per-message keys support
101
103
  keys, normalized = extract_per_message_keys_and_bodies(self.batch_bodies)
104
+ self._per_message_keys = keys
102
105
  if normalized is not None:
103
106
  self.batch_bodies = normalized
104
- self._per_message_keys = keys
105
107
 
106
108
  @classmethod
107
109
  def from_cmd(
@@ -140,6 +142,24 @@ class KafkaPublishCommand(BatchPublishCommand):
140
142
 
141
143
  return headers | self.headers
142
144
 
145
+ @BatchPublishCommand.batch_bodies.setter # type: ignore[attr-defined, untyped-decorator]
146
+ def batch_bodies(self, value: Sequence["Any"]) -> None:
147
+ if len(value) == 0:
148
+ self.body = None
149
+ self.extra_bodies = ()
150
+ else:
151
+ self._align_keys(value)
152
+ self.body = value[0]
153
+ self.extra_bodies = tuple(value[1:])
154
+
155
+ def _align_keys(self, value: Sequence["Any"]) -> None:
156
+ """Align the per-message keys with the batch_bodies."""
157
+ if not self._per_message_keys:
158
+ return
159
+ self._per_message_keys = realign_keys(
160
+ self._per_message_keys, self.batch_bodies, value
161
+ )
162
+
143
163
 
144
164
  # Semantic alias for publish operations
145
165
  # More intuitive name when using in publish_batch() rather than as handler return value
@@ -1,5 +1,5 @@
1
1
  import re
2
- from collections.abc import Callable, Generator, Iterable, Iterator, Sequence
2
+ from collections.abc import Callable, Generator, Iterable, Sequence
3
3
  from contextlib import ExitStack, contextmanager
4
4
  from datetime import datetime, timezone
5
5
  from typing import TYPE_CHECKING, Any, Optional, cast, overload
@@ -72,7 +72,7 @@ class TestKafkaBroker(TestBroker[KafkaBroker, EnterType]):
72
72
  )
73
73
 
74
74
  @contextmanager
75
- def _patch_producer(self, broker: KafkaBroker) -> Iterator[None]:
75
+ def _patch_producer(self, broker: KafkaBroker) -> Generator[None, None, None]:
76
76
  fake_producer = FakeProducer(broker, self.brokers)
77
77
 
78
78
  with ExitStack() as es:
@@ -309,7 +309,12 @@ async def build_message(
309
309
  codec: Optional["CodecProto"] = None,
310
310
  ) -> "ConsumerRecord":
311
311
  """Build a Kafka ConsumerRecord for a sendable message."""
312
- msg, content_type = await (codec or DefaultCodec()).encode(message, serializer)
312
+ if message is None and key is not None:
313
+ # keyed None is a real tombstone, matching publish()'s own rule
314
+ # (aiokafka needs a key or value, a keyless None still goes b"")
315
+ msg, content_type = None, None
316
+ else:
317
+ msg, content_type = await (codec or DefaultCodec()).encode(message, serializer)
313
318
 
314
319
  k = key or b""
315
320
 
@@ -328,8 +333,8 @@ async def build_message(
328
333
  partition=partition or 0,
329
334
  key=k,
330
335
  serialized_key_size=len(k),
331
- serialized_value_size=len(msg),
332
- checksum=sum(msg),
336
+ serialized_value_size=0 if msg is None else len(msg),
337
+ checksum=0 if msg is None else sum(msg),
333
338
  offset=0,
334
339
  headers=[(i, j.encode()) for i, j in headers.items()],
335
340
  timestamp_type=1,
@@ -64,6 +64,7 @@ class MQTTBroker(
64
64
  reconnect: zmqtt.ReconnectConfig | None = None,
65
65
  mqtt_connect_timeout: float = 30.0,
66
66
  session_expiry_interval: int = 0,
67
+ stripped_prefixes: tuple[str, ...] | None = None,
67
68
  graceful_timeout: float | None = 15.0,
68
69
  decoder: Optional["CustomCallable"] = None,
69
70
  parser: Optional["CustomCallable"] = None,
@@ -90,6 +91,10 @@ class MQTTBroker(
90
91
  ) -> None:
91
92
  secure_kwargs = parse_security(security)
92
93
 
94
+ connection_kwargs = {}
95
+ if stripped_prefixes is not None:
96
+ connection_kwargs["stripped_prefixes"] = stripped_prefixes
97
+
93
98
  producer: ZmqttBaseProducer
94
99
  if version == "5.0":
95
100
  producer = ZmqttProducerV5(parser=parser, decoder=decoder)
@@ -116,6 +121,7 @@ class MQTTBroker(
116
121
  reconnect=reconnect,
117
122
  mqtt_connect_timeout=mqtt_connect_timeout,
118
123
  session_expiry_interval=session_expiry_interval,
124
+ **connection_kwargs,
119
125
  **secure_kwargs,
120
126
  # broker config
121
127
  routers=routers,