prefect-client 3.4.24.dev2__tar.gz → 3.4.24.dev3__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 (340) hide show
  1. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/PKG-INFO +2 -3
  2. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/pyproject.toml +1 -2
  3. prefect_client-3.4.24.dev3/src/prefect/_build_info.py +5 -0
  4. prefect_client-3.4.24.dev3/src/prefect/_internal/websockets.py +88 -0
  5. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/subscriptions.py +1 -1
  6. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/events/__init__.py +2 -0
  7. prefect_client-3.4.24.dev3/src/prefect/events/subscribers.py +186 -0
  8. prefect_client-3.4.24.dev2/src/prefect/_build_info.py +0 -5
  9. prefect_client-3.4.24.dev2/src/prefect/_internal/websockets.py +0 -144
  10. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/.gitignore +0 -0
  11. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/LICENSE +0 -0
  12. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/README.md +0 -0
  13. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/.prefectignore +0 -0
  14. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/AGENTS.md +0 -0
  15. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/__init__.py +0 -0
  16. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/__main__.py +0 -0
  17. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_experimental/__init__.py +0 -0
  18. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_experimental/bundles/__init__.py +0 -0
  19. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_experimental/bundles/execute.py +0 -0
  20. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_experimental/sla/__init__.py +0 -0
  21. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_experimental/sla/client.py +0 -0
  22. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_experimental/sla/objects.py +0 -0
  23. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/__init__.py +0 -0
  24. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/_logging.py +0 -0
  25. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/compatibility/__init__.py +0 -0
  26. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  27. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/compatibility/blocks.py +0 -0
  28. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  29. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/compatibility/migration.py +0 -0
  30. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/compatibility/starlette.py +0 -0
  31. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/concurrency/__init__.py +0 -0
  32. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/concurrency/api.py +0 -0
  33. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/concurrency/calls.py +0 -0
  34. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  35. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  36. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/concurrency/inspection.py +0 -0
  37. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/concurrency/primitives.py +0 -0
  38. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/concurrency/services.py +0 -0
  39. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/concurrency/threads.py +0 -0
  40. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/concurrency/waiters.py +0 -0
  41. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/installation.py +0 -0
  42. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/integrations.py +0 -0
  43. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/pydantic/__init__.py +0 -0
  44. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/pydantic/schemas.py +0 -0
  45. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  46. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  47. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
  48. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/pytz.py +0 -0
  49. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/retries.py +0 -0
  50. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/schemas/__init__.py +0 -0
  51. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/schemas/bases.py +0 -0
  52. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/schemas/fields.py +0 -0
  53. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/schemas/serializers.py +0 -0
  54. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/schemas/validators.py +0 -0
  55. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_internal/uuid7.py +0 -0
  56. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_result_records.py +0 -0
  57. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_vendor/croniter/__init__.py +0 -0
  58. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_vendor/croniter/croniter.py +0 -0
  59. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_versioning.py +0 -0
  60. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/_waiters.py +0 -0
  61. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/agent.py +0 -0
  62. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/artifacts.py +0 -0
  63. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/assets/__init__.py +0 -0
  64. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/assets/core.py +0 -0
  65. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/assets/materialize.py +0 -0
  66. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/automations.py +0 -0
  67. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/blocks/__init__.py +0 -0
  68. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/blocks/abstract.py +0 -0
  69. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/blocks/core.py +0 -0
  70. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/blocks/fields.py +0 -0
  71. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/blocks/notifications.py +0 -0
  72. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/blocks/redis.py +0 -0
  73. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/blocks/system.py +0 -0
  74. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/blocks/webhook.py +0 -0
  75. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/cache_policies.py +0 -0
  76. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/__init__.py +0 -0
  77. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/base.py +0 -0
  78. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/cloud.py +0 -0
  79. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/collections.py +0 -0
  80. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/constants.py +0 -0
  81. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/__init__.py +0 -0
  82. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
  83. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  84. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
  85. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_automations/client.py +0 -0
  86. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
  87. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  88. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
  89. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  90. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
  91. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  92. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
  93. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
  94. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
  95. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_deployments/client.py +0 -0
  96. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
  97. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  98. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
  99. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_flows/client.py +0 -0
  100. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
  101. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_logs/client.py +0 -0
  102. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
  103. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_variables/client.py +0 -0
  104. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
  105. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
  106. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/base.py +0 -0
  107. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/orchestration/routes.py +0 -0
  108. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/schemas/__init__.py +0 -0
  109. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/schemas/actions.py +0 -0
  110. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/schemas/filters.py +0 -0
  111. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/schemas/objects.py +0 -0
  112. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/schemas/responses.py +0 -0
  113. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/schemas/schedules.py +0 -0
  114. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/schemas/sorting.py +0 -0
  115. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/types/__init__.py +0 -0
  116. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  117. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/client/utilities.py +0 -0
  118. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/concurrency/__init__.py +0 -0
  119. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/concurrency/_asyncio.py +0 -0
  120. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/concurrency/_events.py +0 -0
  121. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/concurrency/_leases.py +0 -0
  122. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/concurrency/asyncio.py +0 -0
  123. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/concurrency/context.py +0 -0
  124. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/concurrency/services.py +0 -0
  125. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/concurrency/sync.py +0 -0
  126. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/concurrency/v1/__init__.py +0 -0
  127. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  128. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/concurrency/v1/_events.py +0 -0
  129. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/concurrency/v1/asyncio.py +0 -0
  130. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/concurrency/v1/context.py +0 -0
  131. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/concurrency/v1/services.py +0 -0
  132. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/concurrency/v1/sync.py +0 -0
  133. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/context.py +0 -0
  134. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/deployments/__init__.py +0 -0
  135. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/deployments/base.py +0 -0
  136. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/deployments/deployments.py +0 -0
  137. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/deployments/flow_runs.py +0 -0
  138. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/deployments/runner.py +0 -0
  139. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/deployments/schedules.py +0 -0
  140. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/deployments/steps/__init__.py +0 -0
  141. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/deployments/steps/core.py +0 -0
  142. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/deployments/steps/pull.py +0 -0
  143. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/deployments/steps/utility.py +0 -0
  144. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/docker/__init__.py +0 -0
  145. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/docker/docker_image.py +0 -0
  146. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/engine.py +0 -0
  147. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/events/actions.py +0 -0
  148. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/events/cli/__init__.py +0 -0
  149. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/events/cli/automations.py +0 -0
  150. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/events/clients.py +0 -0
  151. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/events/filters.py +0 -0
  152. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/events/related.py +0 -0
  153. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/events/schemas/__init__.py +0 -0
  154. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/events/schemas/automations.py +0 -0
  155. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  156. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/events/schemas/events.py +0 -0
  157. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/events/schemas/labelling.py +0 -0
  158. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/events/utilities.py +0 -0
  159. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/events/worker.py +0 -0
  160. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/exceptions.py +0 -0
  161. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/filesystems.py +0 -0
  162. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/flow_engine.py +0 -0
  163. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/flow_runs.py +0 -0
  164. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/flows.py +0 -0
  165. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/futures.py +0 -0
  166. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/infrastructure/__init__.py +0 -0
  167. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/infrastructure/base.py +0 -0
  168. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  169. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  170. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  171. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  172. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  173. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  174. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/input/__init__.py +0 -0
  175. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/input/actions.py +0 -0
  176. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/input/run_input.py +0 -0
  177. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/locking/__init__.py +0 -0
  178. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/locking/filesystem.py +0 -0
  179. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/locking/memory.py +0 -0
  180. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/locking/protocol.py +0 -0
  181. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/logging/__init__.py +0 -0
  182. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/logging/clients.py +0 -0
  183. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/logging/configuration.py +0 -0
  184. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/logging/filters.py +0 -0
  185. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/logging/formatters.py +0 -0
  186. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/logging/handlers.py +0 -0
  187. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/logging/highlighters.py +0 -0
  188. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/logging/loggers.py +0 -0
  189. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/logging/logging.yml +0 -0
  190. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/main.py +0 -0
  191. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/plugins.py +0 -0
  192. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/py.typed +0 -0
  193. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/results.py +0 -0
  194. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/runner/__init__.py +0 -0
  195. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/runner/_observers.py +0 -0
  196. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/runner/runner.py +0 -0
  197. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/runner/server.py +0 -0
  198. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/runner/storage.py +0 -0
  199. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/runner/submit.py +0 -0
  200. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/runner/utils.py +0 -0
  201. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/runtime/__init__.py +0 -0
  202. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/runtime/deployment.py +0 -0
  203. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/runtime/flow_run.py +0 -0
  204. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/runtime/task_run.py +0 -0
  205. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/schedules.py +0 -0
  206. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/serializers.py +0 -0
  207. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/__init__.py +0 -0
  208. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/admin.py +0 -0
  209. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/artifacts.py +0 -0
  210. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/automations.py +0 -0
  211. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/block_capabilities.py +0 -0
  212. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/block_documents.py +0 -0
  213. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/block_schemas.py +0 -0
  214. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/block_types.py +0 -0
  215. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/clients.py +0 -0
  216. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/collections.py +0 -0
  217. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  218. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/concurrency_limits.py +0 -0
  219. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
  220. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/csrf_token.py +0 -0
  221. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/dependencies.py +0 -0
  222. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/deployments.py +0 -0
  223. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/events.py +0 -0
  224. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/flow_run_states.py +0 -0
  225. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/flow_runs.py +0 -0
  226. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/flows.py +0 -0
  227. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/logs.py +0 -0
  228. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/middleware.py +0 -0
  229. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/root.py +0 -0
  230. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/run_history.py +0 -0
  231. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/saved_searches.py +0 -0
  232. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/server.py +0 -0
  233. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  234. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/task_run_states.py +0 -0
  235. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/task_runs.py +0 -0
  236. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/task_workers.py +0 -0
  237. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/templates.py +0 -0
  238. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/ui/__init__.py +0 -0
  239. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/ui/flow_runs.py +0 -0
  240. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/ui/flows.py +0 -0
  241. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/ui/schemas.py +0 -0
  242. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/ui/task_runs.py +0 -0
  243. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/validation.py +0 -0
  244. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/variables.py +0 -0
  245. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/work_queues.py +0 -0
  246. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/server/api/workers.py +0 -0
  247. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/__init__.py +0 -0
  248. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/base.py +0 -0
  249. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/constants.py +0 -0
  250. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/context.py +0 -0
  251. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/legacy.py +0 -0
  252. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/__init__.py +0 -0
  253. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/_defaults.py +0 -0
  254. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/api.py +0 -0
  255. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/cli.py +0 -0
  256. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/client.py +0 -0
  257. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/cloud.py +0 -0
  258. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/deployments.py +0 -0
  259. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/experiments.py +0 -0
  260. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/flows.py +0 -0
  261. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/internal.py +0 -0
  262. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/logging.py +0 -0
  263. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/results.py +0 -0
  264. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/root.py +0 -0
  265. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/runner.py +0 -0
  266. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/server/__init__.py +0 -0
  267. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/server/api.py +0 -0
  268. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/server/concurrency.py +0 -0
  269. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/server/database.py +0 -0
  270. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/server/deployments.py +0 -0
  271. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/server/ephemeral.py +0 -0
  272. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/server/events.py +0 -0
  273. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  274. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/server/logs.py +0 -0
  275. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/server/root.py +0 -0
  276. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/server/services.py +0 -0
  277. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/server/tasks.py +0 -0
  278. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/server/ui.py +0 -0
  279. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/tasks.py +0 -0
  280. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/testing.py +0 -0
  281. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/models/worker.py +0 -0
  282. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/profiles.py +0 -0
  283. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/profiles.toml +0 -0
  284. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/settings/sources.py +0 -0
  285. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/states.py +0 -0
  286. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/task_engine.py +0 -0
  287. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/task_runners.py +0 -0
  288. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/task_runs.py +0 -0
  289. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/task_worker.py +0 -0
  290. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/tasks.py +0 -0
  291. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/telemetry/__init__.py +0 -0
  292. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/telemetry/run_telemetry.py +0 -0
  293. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/transactions.py +0 -0
  294. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/types/__init__.py +0 -0
  295. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/types/_concurrency.py +0 -0
  296. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/types/_datetime.py +0 -0
  297. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/types/_schema.py +0 -0
  298. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/types/entrypoint.py +0 -0
  299. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/types/names.py +0 -0
  300. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/__init__.py +0 -0
  301. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/_ast.py +0 -0
  302. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/_deprecated.py +0 -0
  303. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/_engine.py +0 -0
  304. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/_git.py +0 -0
  305. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/annotations.py +0 -0
  306. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/asyncutils.py +0 -0
  307. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/callables.py +0 -0
  308. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/collections.py +0 -0
  309. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/compat.py +0 -0
  310. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/context.py +0 -0
  311. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/dispatch.py +0 -0
  312. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/dockerutils.py +0 -0
  313. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/engine.py +0 -0
  314. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/filesystem.py +0 -0
  315. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/generics.py +0 -0
  316. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/hashing.py +0 -0
  317. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/importtools.py +0 -0
  318. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/math.py +0 -0
  319. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/names.py +0 -0
  320. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/processutils.py +0 -0
  321. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/pydantic.py +0 -0
  322. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/render_swagger.py +0 -0
  323. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  324. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  325. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/schema_tools/validation.py +0 -0
  326. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/services.py +0 -0
  327. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/slugify.py +0 -0
  328. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/templating.py +0 -0
  329. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/text.py +0 -0
  330. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/timeout.py +0 -0
  331. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/urls.py +0 -0
  332. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/utilities/visualization.py +0 -0
  333. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/variables.py +0 -0
  334. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/workers/__init__.py +0 -0
  335. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/workers/base.py +0 -0
  336. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/workers/block.py +0 -0
  337. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/workers/cloud.py +0 -0
  338. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/workers/process.py +0 -0
  339. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/workers/server.py +0 -0
  340. {prefect_client-3.4.24.dev2 → prefect_client-3.4.24.dev3}/src/prefect/workers/utilities.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: prefect-client
3
- Version: 3.4.24.dev2
3
+ Version: 3.4.24.dev3
4
4
  Summary: Workflow orchestration and management.
5
5
  Project-URL: Changelog, https://github.com/PrefectHQ/prefect/releases
6
6
  Project-URL: Documentation, https://docs.prefect.io
@@ -50,7 +50,6 @@ Requires-Dist: pydantic-extra-types<3.0.0,>=2.8.2
50
50
  Requires-Dist: pydantic-settings!=2.9.0,<3.0.0,>2.2.1
51
51
  Requires-Dist: python-dateutil<3.0.0,>=2.8.2
52
52
  Requires-Dist: python-slugify<9.0,>=5.0
53
- Requires-Dist: python-socks[asyncio]<3.0,>=2.5.3
54
53
  Requires-Dist: pytz<2026,>=2021.1
55
54
  Requires-Dist: pyyaml<7.0.0,>=5.4.1
56
55
  Requires-Dist: rfc3339-validator<0.2.0,>=0.1.4
@@ -60,7 +59,7 @@ Requires-Dist: sniffio<2.0.0,>=1.3.0
60
59
  Requires-Dist: toml>=0.10.0
61
60
  Requires-Dist: typing-extensions<5.0.0,>=4.10.0
62
61
  Requires-Dist: uvicorn!=0.29.0,>=0.14.0
63
- Requires-Dist: websockets<16.0,>=13.0
62
+ Requires-Dist: websockets<16.0,>=15.0.1
64
63
  Requires-Dist: whenever<0.10.0,>=0.7.3; python_version >= '3.13'
65
64
  Provides-Extra: notifications
66
65
  Requires-Dist: apprise<2.0.0,>=1.1.0; extra == 'notifications'
@@ -54,7 +54,6 @@ dependencies = [
54
54
  "pydantic_settings>2.2.1,<3.0.0,!=2.9.0",
55
55
  "python-dateutil>=2.8.2,<3.0.0",
56
56
  "python-slugify>=5.0,<9.0",
57
- "python-socks[asyncio]>=2.5.3,<3.0",
58
57
  "pytz>=2021.1,<2026",
59
58
  "pyyaml>=5.4.1,<7.0.0",
60
59
  "rfc3339-validator>=0.1.4,<0.2.0",
@@ -64,7 +63,7 @@ dependencies = [
64
63
  "toml>=0.10.0",
65
64
  "typing_extensions>=4.10.0,<5.0.0",
66
65
  "uvicorn>=0.14.0,!=0.29.0",
67
- "websockets>=13.0,<16.0",
66
+ "websockets>=15.0.1,<16.0",
68
67
  "whenever>=0.7.3,<0.10.0; python_version>='3.13'",
69
68
  ]
70
69
  [project.urls]
@@ -0,0 +1,5 @@
1
+ # Generated by versioningit
2
+ __version__ = "3.4.24.dev3"
3
+ __build_date__ = "2025-10-14 08:08:51.459069+00:00"
4
+ __git_commit__ = "5b27fc1a52ea3ca42c97918911d260537231db96"
5
+ __dirty__ = False
@@ -0,0 +1,88 @@
1
+ """
2
+ Internal WebSocket proxy utilities for Prefect client connections.
3
+
4
+ This module provides shared WebSocket proxy connection logic and SSL configuration
5
+ to avoid duplication between events and logs clients.
6
+ """
7
+
8
+ import ssl
9
+ import warnings
10
+ from functools import wraps
11
+ from typing import Any, Optional
12
+ from urllib.parse import urlparse
13
+
14
+ import certifi
15
+ from websockets.asyncio.client import connect
16
+
17
+ from prefect.settings import get_current_settings
18
+
19
+
20
+ def create_ssl_context_for_websocket(uri: str) -> Optional[ssl.SSLContext]:
21
+ """Create SSL context for WebSocket connections based on URI scheme."""
22
+ u = urlparse(uri)
23
+
24
+ if u.scheme != "wss":
25
+ return None
26
+
27
+ if get_current_settings().api.tls_insecure_skip_verify:
28
+ # Create an unverified context for insecure connections
29
+ ctx = ssl.create_default_context()
30
+ ctx.check_hostname = False
31
+ ctx.verify_mode = ssl.CERT_NONE
32
+ return ctx
33
+ else:
34
+ # Create a verified context with the certificate file
35
+ cert_file = get_current_settings().api.ssl_cert_file
36
+ if not cert_file:
37
+ cert_file = certifi.where()
38
+ return ssl.create_default_context(cafile=cert_file)
39
+
40
+
41
+ @wraps(connect)
42
+ def websocket_connect(uri: str, **kwargs: Any) -> connect:
43
+ """
44
+ Create a WebSocket connection with proxy and SSL support.
45
+
46
+ Proxy support is automatic via HTTP_PROXY/HTTPS_PROXY environment variables.
47
+ The websockets library handles proxy detection and connection automatically.
48
+ """
49
+ # Configure SSL context for HTTPS connections
50
+ ssl_context = create_ssl_context_for_websocket(uri)
51
+ if ssl_context:
52
+ kwargs.setdefault("ssl", ssl_context)
53
+
54
+ # Add custom headers from settings
55
+ custom_headers = get_current_settings().client.custom_headers
56
+ if custom_headers:
57
+ # Get existing additional_headers or create new dict
58
+ additional_headers = kwargs.get("additional_headers", {})
59
+ if not isinstance(additional_headers, dict):
60
+ additional_headers = {}
61
+
62
+ for header_name, header_value in custom_headers.items():
63
+ # Check for protected headers that shouldn't be overridden
64
+ if header_name.lower() in {
65
+ "user-agent",
66
+ "sec-websocket-key",
67
+ "sec-websocket-version",
68
+ "sec-websocket-extensions",
69
+ "sec-websocket-protocol",
70
+ "connection",
71
+ "upgrade",
72
+ "host",
73
+ }:
74
+ warnings.warn(
75
+ f"Custom header '{header_name}' is ignored because it conflicts with "
76
+ f"a protected WebSocket header. Protected headers include: "
77
+ f"User-Agent, Sec-WebSocket-Key, Sec-WebSocket-Version, "
78
+ f"Sec-WebSocket-Extensions, Sec-WebSocket-Protocol, Connection, "
79
+ f"Upgrade, Host",
80
+ UserWarning,
81
+ stacklevel=2,
82
+ )
83
+ else:
84
+ additional_headers[header_name] = header_value
85
+
86
+ kwargs["additional_headers"] = additional_headers
87
+
88
+ return connect(uri, **kwargs)
@@ -11,7 +11,7 @@ from starlette.status import WS_1008_POLICY_VIOLATION
11
11
  from typing_extensions import Self
12
12
 
13
13
  from prefect._internal.schemas.bases import IDBaseModel
14
- from prefect.events.clients import websocket_connect
14
+ from prefect._internal.websockets import websocket_connect
15
15
  from prefect.logging import get_logger
16
16
  from prefect.settings import get_current_settings
17
17
 
@@ -43,6 +43,7 @@ from .actions import (
43
43
  DeclareIncident,
44
44
  )
45
45
  from .clients import get_events_client, get_events_subscriber
46
+ from .subscribers import FlowRunSubscriber
46
47
  from .utilities import emit_event
47
48
 
48
49
  __all__ = [
@@ -90,4 +91,5 @@ __all__ = [
90
91
  "emit_event",
91
92
  "get_events_client",
92
93
  "get_events_subscriber",
94
+ "FlowRunSubscriber",
93
95
  ]
@@ -0,0 +1,186 @@
1
+ """
2
+ Flow run subscriber that interleaves events and logs from a flow run
3
+ """
4
+
5
+ from __future__ import annotations
6
+
7
+ import asyncio
8
+ from types import TracebackType
9
+ from typing import TYPE_CHECKING, Any, Optional, Union
10
+ from uuid import UUID
11
+
12
+ from typing_extensions import Self
13
+
14
+ from prefect.client.schemas.filters import LogFilter, LogFilterFlowRunId
15
+ from prefect.client.schemas.objects import TERMINAL_STATES, Log, StateType
16
+ from prefect.events import Event
17
+ from prefect.events.clients import get_events_subscriber
18
+ from prefect.events.filters import EventAnyResourceFilter, EventFilter
19
+ from prefect.logging.clients import get_logs_subscriber
20
+
21
+ if TYPE_CHECKING:
22
+ from prefect.events.clients import PrefectEventSubscriber
23
+ from prefect.logging.clients import PrefectLogsSubscriber
24
+
25
+
26
+ class FlowRunSubscriber:
27
+ """
28
+ Subscribes to both events and logs for a specific flow run, yielding them
29
+ in an interleaved stream.
30
+
31
+ This subscriber combines the event stream and log stream for a flow run into
32
+ a single async iterator. When a terminal event (Completed, Failed, or Crashed)
33
+ is received, the event subscription stops but log subscription continues for a
34
+ configurable timeout to catch any straggler logs.
35
+
36
+ Example:
37
+ ```python
38
+ from prefect.events.subscribers import FlowRunSubscriber
39
+
40
+ async with FlowRunSubscriber(flow_run_id=my_flow_run_id) as subscriber:
41
+ async for item in subscriber:
42
+ if isinstance(item, Event):
43
+ print(f"Event: {item.event}")
44
+ else: # isinstance(item, Log)
45
+ print(f"Log: {item.message}")
46
+ ```
47
+ """
48
+
49
+ _flow_run_id: UUID
50
+ _queue: asyncio.Queue[Union[Log, Event, None]]
51
+ _tasks: list[asyncio.Task[None]]
52
+ _flow_completed: bool
53
+ _straggler_timeout: int
54
+ _reconnection_attempts: int
55
+ _log_filter: LogFilter
56
+ _event_filter: EventFilter
57
+ _logs_subscriber: PrefectLogsSubscriber | Any
58
+ _events_subscriber: PrefectEventSubscriber | Any
59
+ _sentinels_received: int
60
+
61
+ def __init__(
62
+ self,
63
+ flow_run_id: UUID,
64
+ straggler_timeout: int = 3,
65
+ reconnection_attempts: int = 10,
66
+ ):
67
+ """
68
+ Args:
69
+ flow_run_id: The ID of the flow run to follow
70
+ straggler_timeout: After a terminal event, how long (in seconds) to wait
71
+ for additional logs before stopping
72
+ reconnection_attempts: Number of times to attempt reconnection if
73
+ the websocket connection is lost
74
+ """
75
+ self._flow_run_id = flow_run_id
76
+ self._straggler_timeout = straggler_timeout
77
+ self._reconnection_attempts = reconnection_attempts
78
+ self._queue = asyncio.Queue()
79
+ self._tasks = []
80
+ self._flow_completed = False
81
+ self._sentinels_received = 0
82
+
83
+ self._log_filter = LogFilter(flow_run_id=LogFilterFlowRunId(any_=[flow_run_id]))
84
+ self._event_filter = EventFilter(
85
+ any_resource=EventAnyResourceFilter(id=[f"prefect.flow-run.{flow_run_id}"])
86
+ )
87
+
88
+ self._logs_subscriber = None
89
+ self._events_subscriber = None
90
+
91
+ async def __aenter__(self) -> Self:
92
+ """Enter the async context manager"""
93
+ self._logs_subscriber = get_logs_subscriber(
94
+ filter=self._log_filter, reconnection_attempts=self._reconnection_attempts
95
+ )
96
+ self._events_subscriber = get_events_subscriber(
97
+ filter=self._event_filter, reconnection_attempts=self._reconnection_attempts
98
+ )
99
+
100
+ await self._logs_subscriber.__aenter__()
101
+ await self._events_subscriber.__aenter__()
102
+
103
+ self._tasks = [
104
+ asyncio.create_task(self._consume_logs()),
105
+ asyncio.create_task(self._consume_events()),
106
+ ]
107
+
108
+ return self
109
+
110
+ async def __aexit__(
111
+ self,
112
+ exc_type: Optional[type[BaseException]],
113
+ exc_val: Optional[BaseException],
114
+ exc_tb: Optional[TracebackType],
115
+ ) -> None:
116
+ """Exit the async context manager and clean up resources"""
117
+ for task in self._tasks:
118
+ task.cancel()
119
+
120
+ await asyncio.gather(*self._tasks, return_exceptions=True)
121
+
122
+ await self._logs_subscriber.__aexit__(exc_type, exc_val, exc_tb)
123
+ await self._events_subscriber.__aexit__(exc_type, exc_val, exc_tb)
124
+
125
+ def __aiter__(self) -> Self:
126
+ """Return self as an async iterator"""
127
+ return self
128
+
129
+ async def __anext__(self) -> Union[Log, Event]:
130
+ """Get the next log or event from the interleaved stream"""
131
+ while self._sentinels_received < len(self._tasks):
132
+ if self._flow_completed:
133
+ try:
134
+ item = await asyncio.wait_for(
135
+ self._queue.get(), timeout=self._straggler_timeout
136
+ )
137
+ except asyncio.TimeoutError:
138
+ raise StopAsyncIteration
139
+ else:
140
+ item = await self._queue.get()
141
+
142
+ if item is None:
143
+ self._sentinels_received += 1
144
+ continue
145
+
146
+ return item
147
+
148
+ raise StopAsyncIteration
149
+
150
+ async def _consume_logs(self) -> None:
151
+ """Background task to consume logs and put them in the queue"""
152
+ try:
153
+ async for log in self._logs_subscriber:
154
+ await self._queue.put(log)
155
+ except asyncio.CancelledError:
156
+ pass
157
+ except Exception:
158
+ pass
159
+ finally:
160
+ await self._queue.put(None)
161
+
162
+ async def _consume_events(self) -> None:
163
+ """Background task to consume events and put them in the queue"""
164
+ try:
165
+ async for event in self._events_subscriber:
166
+ await self._queue.put(event)
167
+
168
+ # Check if this is a terminal state event for our flow run
169
+ if event.resource.id == f"prefect.flow-run.{self._flow_run_id}":
170
+ # Get state type from event resource or payload
171
+ state_type_str = event.resource.get("prefect.state-type")
172
+ if not state_type_str and "validated_state" in event.payload:
173
+ state_type_str = event.payload["validated_state"].get("type")
174
+
175
+ if state_type_str:
176
+ try:
177
+ state_type = StateType(state_type_str)
178
+ if state_type in TERMINAL_STATES:
179
+ self._flow_completed = True
180
+ break
181
+ except ValueError:
182
+ pass
183
+ except Exception:
184
+ pass
185
+ finally:
186
+ await self._queue.put(None)
@@ -1,5 +0,0 @@
1
- # Generated by versioningit
2
- __version__ = "3.4.24.dev2"
3
- __build_date__ = "2025-10-13 08:09:36.212484+00:00"
4
- __git_commit__ = "2c75d8cd6ca1f17e98e98c7335c17201c6343c43"
5
- __dirty__ = False
@@ -1,144 +0,0 @@
1
- """
2
- Internal WebSocket proxy utilities for Prefect client connections.
3
-
4
- This module provides shared WebSocket proxy connection logic and SSL configuration
5
- to avoid duplication between events and logs clients.
6
- """
7
-
8
- import os
9
- import ssl
10
- import warnings
11
- from typing import Any, Generator, Optional
12
- from urllib.parse import urlparse
13
- from urllib.request import proxy_bypass
14
-
15
- import certifi
16
- from python_socks.async_.asyncio import Proxy
17
- from typing_extensions import Self
18
- from websockets.asyncio.client import ClientConnection, connect
19
-
20
- from prefect.settings import get_current_settings
21
-
22
-
23
- def create_ssl_context_for_websocket(uri: str) -> Optional[ssl.SSLContext]:
24
- """Create SSL context for WebSocket connections based on URI scheme."""
25
- u = urlparse(uri)
26
-
27
- if u.scheme != "wss":
28
- return None
29
-
30
- if get_current_settings().api.tls_insecure_skip_verify:
31
- # Create an unverified context for insecure connections
32
- ctx = ssl.create_default_context()
33
- ctx.check_hostname = False
34
- ctx.verify_mode = ssl.CERT_NONE
35
- return ctx
36
- else:
37
- # Create a verified context with the certificate file
38
- cert_file = get_current_settings().api.ssl_cert_file
39
- if not cert_file:
40
- cert_file = certifi.where()
41
- return ssl.create_default_context(cafile=cert_file)
42
-
43
-
44
- class WebsocketProxyConnect(connect):
45
- """
46
- WebSocket connection class with proxy and SSL support.
47
-
48
- Extends the websockets.asyncio.client.connect class to add HTTP/HTTPS
49
- proxy support via environment variables, proxy bypass logic, and SSL
50
- certificate verification.
51
- """
52
-
53
- def __init__(self: Self, uri: str, **kwargs: Any):
54
- # super() is intentionally deferred to the _proxy_connect method
55
- # to allow for the socket to be established first
56
-
57
- self.uri = uri
58
- self._kwargs = kwargs
59
-
60
- u = urlparse(uri)
61
- host = u.hostname
62
-
63
- if not host:
64
- raise ValueError(f"Invalid URI {uri}, no hostname found")
65
-
66
- if u.scheme == "ws":
67
- port = u.port or 80
68
- proxy_url = os.environ.get("HTTP_PROXY")
69
- elif u.scheme == "wss":
70
- port = u.port or 443
71
- proxy_url = os.environ.get("HTTPS_PROXY")
72
- kwargs["server_hostname"] = host
73
- else:
74
- raise ValueError(
75
- "Unsupported scheme %s. Expected 'ws' or 'wss'. " % u.scheme
76
- )
77
-
78
- # Store proxy URL for deferred creation. Creating the proxy object here
79
- # can bind asyncio futures to the wrong event loop when multiple WebSocket
80
- # connections are initialized at different times (e.g., events + logs clients).
81
- self._proxy_url = proxy_url if proxy_url and not proxy_bypass(host) else None
82
- self._host = host
83
- self._port = port
84
-
85
- # Configure SSL context for HTTPS connections
86
- ssl_context = create_ssl_context_for_websocket(uri)
87
- if ssl_context:
88
- self._kwargs.setdefault("ssl", ssl_context)
89
-
90
- # Add custom headers from settings
91
- custom_headers = get_current_settings().client.custom_headers
92
- if custom_headers:
93
- # Get existing additional_headers or create new dict
94
- additional_headers = self._kwargs.get("additional_headers", {})
95
- if not isinstance(additional_headers, dict):
96
- additional_headers = {}
97
-
98
- for header_name, header_value in custom_headers.items():
99
- # Check for protected headers that shouldn't be overridden
100
- if header_name.lower() in {
101
- "user-agent",
102
- "sec-websocket-key",
103
- "sec-websocket-version",
104
- "sec-websocket-extensions",
105
- "sec-websocket-protocol",
106
- "connection",
107
- "upgrade",
108
- "host",
109
- }:
110
- warnings.warn(
111
- f"Custom header '{header_name}' is ignored because it conflicts with "
112
- f"a protected WebSocket header. Protected headers include: "
113
- f"User-Agent, Sec-WebSocket-Key, Sec-WebSocket-Version, "
114
- f"Sec-WebSocket-Extensions, Sec-WebSocket-Protocol, Connection, "
115
- f"Upgrade, Host",
116
- UserWarning,
117
- stacklevel=2,
118
- )
119
- else:
120
- additional_headers[header_name] = header_value
121
-
122
- self._kwargs["additional_headers"] = additional_headers
123
-
124
- async def _proxy_connect(self: Self) -> ClientConnection:
125
- if self._proxy_url:
126
- # Create proxy in the current event loop context
127
- proxy = Proxy.from_url(self._proxy_url)
128
- sock = await proxy.connect(
129
- dest_host=self._host,
130
- dest_port=self._port,
131
- )
132
- self._kwargs["sock"] = sock
133
-
134
- super().__init__(self.uri, **self._kwargs)
135
- proto = await self.__await_impl__()
136
- return proto
137
-
138
- def __await__(self: Self) -> Generator[Any, None, ClientConnection]:
139
- return self._proxy_connect().__await__()
140
-
141
-
142
- def websocket_connect(uri: str, **kwargs: Any) -> WebsocketProxyConnect:
143
- """Create a WebSocket connection with proxy and SSL support."""
144
- return WebsocketProxyConnect(uri, **kwargs)