prefect-client 3.4.9.dev5__tar.gz → 3.4.10.dev1__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 (341) hide show
  1. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/PKG-INFO +2 -2
  2. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/pyproject.toml +1 -1
  3. prefect_client-3.4.10.dev1/src/prefect/_build_info.py +5 -0
  4. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_experimental/bundles/__init__.py +65 -0
  5. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/assets/core.py +5 -1
  6. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_concurrency_limits/client.py +146 -2
  7. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/routes.py +3 -0
  8. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/schemas/responses.py +7 -0
  9. prefect_client-3.4.10.dev1/src/prefect/concurrency/_asyncio.py +177 -0
  10. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/concurrency/asyncio.py +66 -23
  11. prefect_client-3.4.10.dev1/src/prefect/concurrency/context.py +25 -0
  12. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/concurrency/services.py +5 -3
  13. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/flows.py +156 -3
  14. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/concurrency_limits_v2.py +4 -2
  15. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/server.py +1 -1
  16. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/workers/base.py +20 -41
  17. prefect_client-3.4.9.dev5/src/prefect/_build_info.py +0 -5
  18. prefect_client-3.4.9.dev5/src/prefect/concurrency/_asyncio.py +0 -76
  19. prefect_client-3.4.9.dev5/src/prefect/concurrency/context.py +0 -28
  20. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/.gitignore +0 -0
  21. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/LICENSE +0 -0
  22. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/README.md +0 -0
  23. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/.prefectignore +0 -0
  24. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/AGENTS.md +0 -0
  25. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/__init__.py +0 -0
  26. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/__main__.py +0 -0
  27. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_experimental/__init__.py +0 -0
  28. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_experimental/bundles/execute.py +0 -0
  29. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_experimental/lineage.py +0 -0
  30. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_experimental/sla/__init__.py +0 -0
  31. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_experimental/sla/client.py +0 -0
  32. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_experimental/sla/objects.py +0 -0
  33. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/__init__.py +0 -0
  34. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/_logging.py +0 -0
  35. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/compatibility/__init__.py +0 -0
  36. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  37. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/compatibility/blocks.py +0 -0
  38. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  39. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/compatibility/migration.py +0 -0
  40. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/concurrency/__init__.py +0 -0
  41. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/concurrency/api.py +0 -0
  42. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/concurrency/calls.py +0 -0
  43. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  44. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  45. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/concurrency/inspection.py +0 -0
  46. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/concurrency/primitives.py +0 -0
  47. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/concurrency/services.py +0 -0
  48. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/concurrency/threads.py +0 -0
  49. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/concurrency/waiters.py +0 -0
  50. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/integrations.py +0 -0
  51. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/pydantic/__init__.py +0 -0
  52. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/pydantic/schemas.py +0 -0
  53. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  54. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  55. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
  56. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/pytz.py +0 -0
  57. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/retries.py +0 -0
  58. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/schemas/__init__.py +0 -0
  59. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/schemas/bases.py +0 -0
  60. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/schemas/fields.py +0 -0
  61. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/schemas/serializers.py +0 -0
  62. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/schemas/validators.py +0 -0
  63. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/uuid7.py +0 -0
  64. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_internal/websockets.py +0 -0
  65. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_result_records.py +0 -0
  66. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_vendor/croniter/__init__.py +0 -0
  67. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_vendor/croniter/croniter.py +0 -0
  68. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_versioning.py +0 -0
  69. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/_waiters.py +0 -0
  70. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/agent.py +0 -0
  71. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/artifacts.py +0 -0
  72. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/assets/__init__.py +0 -0
  73. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/assets/materialize.py +0 -0
  74. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/automations.py +0 -0
  75. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/blocks/__init__.py +0 -0
  76. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/blocks/abstract.py +0 -0
  77. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/blocks/core.py +0 -0
  78. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/blocks/fields.py +0 -0
  79. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/blocks/notifications.py +0 -0
  80. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/blocks/redis.py +0 -0
  81. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/blocks/system.py +0 -0
  82. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/blocks/webhook.py +0 -0
  83. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/cache_policies.py +0 -0
  84. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/__init__.py +0 -0
  85. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/base.py +0 -0
  86. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/cloud.py +0 -0
  87. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/collections.py +0 -0
  88. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/constants.py +0 -0
  89. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/__init__.py +0 -0
  90. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
  91. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  92. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
  93. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_automations/client.py +0 -0
  94. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
  95. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  96. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
  97. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  98. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
  99. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  100. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
  101. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
  102. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_deployments/client.py +0 -0
  103. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
  104. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  105. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
  106. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_flows/client.py +0 -0
  107. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
  108. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_logs/client.py +0 -0
  109. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
  110. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_variables/client.py +0 -0
  111. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
  112. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
  113. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/orchestration/base.py +0 -0
  114. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/schemas/__init__.py +0 -0
  115. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/schemas/actions.py +0 -0
  116. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/schemas/filters.py +0 -0
  117. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/schemas/objects.py +0 -0
  118. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/schemas/schedules.py +0 -0
  119. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/schemas/sorting.py +0 -0
  120. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/subscriptions.py +0 -0
  121. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/types/__init__.py +0 -0
  122. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  123. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/client/utilities.py +0 -0
  124. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/concurrency/__init__.py +0 -0
  125. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/concurrency/_events.py +0 -0
  126. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/concurrency/sync.py +0 -0
  127. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/concurrency/v1/__init__.py +0 -0
  128. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  129. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/concurrency/v1/_events.py +0 -0
  130. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/concurrency/v1/asyncio.py +0 -0
  131. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/concurrency/v1/context.py +0 -0
  132. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/concurrency/v1/services.py +0 -0
  133. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/concurrency/v1/sync.py +0 -0
  134. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/context.py +0 -0
  135. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/deployments/__init__.py +0 -0
  136. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/deployments/base.py +0 -0
  137. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/deployments/deployments.py +0 -0
  138. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/deployments/flow_runs.py +0 -0
  139. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/deployments/runner.py +0 -0
  140. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/deployments/schedules.py +0 -0
  141. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/deployments/steps/__init__.py +0 -0
  142. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/deployments/steps/core.py +0 -0
  143. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/deployments/steps/pull.py +0 -0
  144. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/deployments/steps/utility.py +0 -0
  145. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/docker/__init__.py +0 -0
  146. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/docker/docker_image.py +0 -0
  147. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/engine.py +0 -0
  148. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/events/__init__.py +0 -0
  149. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/events/actions.py +0 -0
  150. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/events/cli/__init__.py +0 -0
  151. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/events/cli/automations.py +0 -0
  152. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/events/clients.py +0 -0
  153. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/events/filters.py +0 -0
  154. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/events/related.py +0 -0
  155. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/events/schemas/__init__.py +0 -0
  156. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/events/schemas/automations.py +0 -0
  157. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  158. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/events/schemas/events.py +0 -0
  159. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/events/schemas/labelling.py +0 -0
  160. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/events/utilities.py +0 -0
  161. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/events/worker.py +0 -0
  162. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/exceptions.py +0 -0
  163. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/filesystems.py +0 -0
  164. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/flow_engine.py +0 -0
  165. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/flow_runs.py +0 -0
  166. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/futures.py +0 -0
  167. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/infrastructure/__init__.py +0 -0
  168. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/infrastructure/base.py +0 -0
  169. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  170. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  171. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  172. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  173. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  174. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  175. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/input/__init__.py +0 -0
  176. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/input/actions.py +0 -0
  177. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/input/run_input.py +0 -0
  178. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/locking/__init__.py +0 -0
  179. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/locking/filesystem.py +0 -0
  180. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/locking/memory.py +0 -0
  181. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/locking/protocol.py +0 -0
  182. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/logging/__init__.py +0 -0
  183. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/logging/clients.py +0 -0
  184. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/logging/configuration.py +0 -0
  185. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/logging/filters.py +0 -0
  186. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/logging/formatters.py +0 -0
  187. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/logging/handlers.py +0 -0
  188. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/logging/highlighters.py +0 -0
  189. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/logging/loggers.py +0 -0
  190. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/logging/logging.yml +0 -0
  191. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/main.py +0 -0
  192. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/plugins.py +0 -0
  193. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/py.typed +0 -0
  194. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/results.py +0 -0
  195. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/runner/__init__.py +0 -0
  196. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/runner/_observers.py +0 -0
  197. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/runner/runner.py +0 -0
  198. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/runner/server.py +0 -0
  199. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/runner/storage.py +0 -0
  200. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/runner/submit.py +0 -0
  201. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/runner/utils.py +0 -0
  202. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/runtime/__init__.py +0 -0
  203. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/runtime/deployment.py +0 -0
  204. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/runtime/flow_run.py +0 -0
  205. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/runtime/task_run.py +0 -0
  206. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/schedules.py +0 -0
  207. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/serializers.py +0 -0
  208. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/__init__.py +0 -0
  209. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/admin.py +0 -0
  210. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/artifacts.py +0 -0
  211. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/automations.py +0 -0
  212. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/block_capabilities.py +0 -0
  213. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/block_documents.py +0 -0
  214. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/block_schemas.py +0 -0
  215. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/block_types.py +0 -0
  216. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/clients.py +0 -0
  217. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/collections.py +0 -0
  218. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  219. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/concurrency_limits.py +0 -0
  220. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/csrf_token.py +0 -0
  221. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/dependencies.py +0 -0
  222. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/deployments.py +0 -0
  223. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/events.py +0 -0
  224. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/flow_run_states.py +0 -0
  225. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/flow_runs.py +0 -0
  226. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/flows.py +0 -0
  227. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/logs.py +0 -0
  228. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/middleware.py +0 -0
  229. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/root.py +0 -0
  230. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/run_history.py +0 -0
  231. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/saved_searches.py +0 -0
  232. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  233. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/task_run_states.py +0 -0
  234. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/task_runs.py +0 -0
  235. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/task_workers.py +0 -0
  236. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/templates.py +0 -0
  237. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/ui/__init__.py +0 -0
  238. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/ui/flow_runs.py +0 -0
  239. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/ui/flows.py +0 -0
  240. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/ui/schemas.py +0 -0
  241. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/ui/task_runs.py +0 -0
  242. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/validation.py +0 -0
  243. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/variables.py +0 -0
  244. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/work_queues.py +0 -0
  245. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/server/api/workers.py +0 -0
  246. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/__init__.py +0 -0
  247. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/base.py +0 -0
  248. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/constants.py +0 -0
  249. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/context.py +0 -0
  250. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/legacy.py +0 -0
  251. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/__init__.py +0 -0
  252. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/_defaults.py +0 -0
  253. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/api.py +0 -0
  254. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/cli.py +0 -0
  255. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/client.py +0 -0
  256. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/cloud.py +0 -0
  257. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/deployments.py +0 -0
  258. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/experiments.py +0 -0
  259. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/flows.py +0 -0
  260. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/internal.py +0 -0
  261. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/logging.py +0 -0
  262. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/results.py +0 -0
  263. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/root.py +0 -0
  264. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/runner.py +0 -0
  265. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/server/__init__.py +0 -0
  266. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/server/api.py +0 -0
  267. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/server/concurrency.py +0 -0
  268. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/server/database.py +0 -0
  269. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/server/deployments.py +0 -0
  270. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/server/ephemeral.py +0 -0
  271. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/server/events.py +0 -0
  272. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  273. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/server/logs.py +0 -0
  274. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/server/root.py +0 -0
  275. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/server/services.py +0 -0
  276. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/server/tasks.py +0 -0
  277. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/server/ui.py +0 -0
  278. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/tasks.py +0 -0
  279. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/testing.py +0 -0
  280. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/models/worker.py +0 -0
  281. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/profiles.py +0 -0
  282. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/profiles.toml +0 -0
  283. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/settings/sources.py +0 -0
  284. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/states.py +0 -0
  285. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/task_engine.py +0 -0
  286. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/task_runners.py +0 -0
  287. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/task_runs.py +0 -0
  288. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/task_worker.py +0 -0
  289. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/tasks.py +0 -0
  290. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/telemetry/__init__.py +0 -0
  291. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/telemetry/bootstrap.py +0 -0
  292. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/telemetry/instrumentation.py +0 -0
  293. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/telemetry/logging.py +0 -0
  294. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/telemetry/processors.py +0 -0
  295. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/telemetry/run_telemetry.py +0 -0
  296. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/telemetry/services.py +0 -0
  297. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/transactions.py +0 -0
  298. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/types/__init__.py +0 -0
  299. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/types/_datetime.py +0 -0
  300. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/types/entrypoint.py +0 -0
  301. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/types/names.py +0 -0
  302. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/__init__.py +0 -0
  303. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/_ast.py +0 -0
  304. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/_deprecated.py +0 -0
  305. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/_engine.py +0 -0
  306. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/_git.py +0 -0
  307. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/annotations.py +0 -0
  308. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/asyncutils.py +0 -0
  309. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/callables.py +0 -0
  310. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/collections.py +0 -0
  311. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/compat.py +0 -0
  312. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/context.py +0 -0
  313. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/dispatch.py +0 -0
  314. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/dockerutils.py +0 -0
  315. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/engine.py +0 -0
  316. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/filesystem.py +0 -0
  317. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/generics.py +0 -0
  318. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/hashing.py +0 -0
  319. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/importtools.py +0 -0
  320. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/math.py +0 -0
  321. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/names.py +0 -0
  322. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/processutils.py +0 -0
  323. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/pydantic.py +0 -0
  324. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/render_swagger.py +0 -0
  325. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  326. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  327. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/schema_tools/validation.py +0 -0
  328. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/services.py +0 -0
  329. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/slugify.py +0 -0
  330. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/templating.py +0 -0
  331. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/text.py +0 -0
  332. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/timeout.py +0 -0
  333. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/urls.py +0 -0
  334. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/utilities/visualization.py +0 -0
  335. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/variables.py +0 -0
  336. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/workers/__init__.py +0 -0
  337. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/workers/block.py +0 -0
  338. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/workers/cloud.py +0 -0
  339. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/workers/process.py +0 -0
  340. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/src/prefect/workers/server.py +0 -0
  341. {prefect_client-3.4.9.dev5 → prefect_client-3.4.10.dev1}/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.9.dev5
3
+ Version: 3.4.10.dev1
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
@@ -44,7 +44,7 @@ Requires-Dist: packaging<25.1,>=21.3
44
44
  Requires-Dist: pathspec>=0.8.0
45
45
  Requires-Dist: pendulum<4,>=3.0.0; python_version < '3.13'
46
46
  Requires-Dist: prometheus-client>=0.20.0
47
- Requires-Dist: pydantic!=2.10.0,!=2.11.0,!=2.11.1,!=2.11.2,!=2.11.3,!=2.11.4,<3.0.0,>=2.9
47
+ Requires-Dist: pydantic!=2.11.0,!=2.11.1,!=2.11.2,!=2.11.3,!=2.11.4,<3.0.0,>=2.10.1
48
48
  Requires-Dist: pydantic-core<3.0.0,>=2.12.0
49
49
  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
@@ -48,7 +48,7 @@ dependencies = [
48
48
  "pathspec>=0.8.0",
49
49
  "pendulum>=3.0.0,<4; python_version<'3.13'",
50
50
  "prometheus-client>=0.20.0",
51
- "pydantic>=2.9,<3.0.0,!=2.10.0,!=2.11.0,!=2.11.1,!=2.11.2,!=2.11.3,!=2.11.4",
51
+ "pydantic>=2.10.1,<3.0.0,!=2.11.0,!=2.11.1,!=2.11.2,!=2.11.3,!=2.11.4",
52
52
  "pydantic_core>=2.12.0,<3.0.0",
53
53
  "pydantic_extra_types>=2.8.2,<3.0.0",
54
54
  "pydantic_settings>2.2.1,<3.0.0,!=2.9.0",
@@ -0,0 +1,5 @@
1
+ # Generated by versioningit
2
+ __version__ = "3.4.10.dev1"
3
+ __build_date__ = "2025-07-22 08:09:38.485899+00:00"
4
+ __git_commit__ = "855e2d9504627b56bc34dea45f4b2578706d7ab7"
5
+ __dirty__ = False
@@ -3,14 +3,18 @@ from __future__ import annotations
3
3
  import asyncio
4
4
  import base64
5
5
  import gzip
6
+ import json
7
+ import logging
6
8
  import multiprocessing
7
9
  import multiprocessing.context
8
10
  import os
9
11
  import subprocess
10
12
  import sys
11
13
  from pathlib import Path
14
+ import tempfile
12
15
  from typing import Any, TypedDict
13
16
 
17
+ import anyio
14
18
  import cloudpickle # pyright: ignore[reportMissingTypeStubs]
15
19
 
16
20
  from prefect.client.schemas.objects import FlowRun
@@ -18,12 +22,15 @@ from prefect.context import SettingsContext, get_settings_context, serialize_con
18
22
  from prefect.engine import handle_engine_signals
19
23
  from prefect.flow_engine import run_flow
20
24
  from prefect.flows import Flow
25
+ from prefect.logging import get_logger
21
26
  from prefect.settings.context import get_current_settings
22
27
  from prefect.settings.models.root import Settings
23
28
  from prefect.utilities.slugify import slugify
24
29
 
25
30
  from .execute import execute_bundle_from_file
26
31
 
32
+ logger: logging.Logger = get_logger(__name__)
33
+
27
34
 
28
35
  def _get_uv_path() -> str:
29
36
  try:
@@ -246,6 +253,64 @@ def convert_step_to_command(
246
253
  return command
247
254
 
248
255
 
256
+ def upload_bundle_to_storage(
257
+ bundle: SerializedBundle, key: str, upload_command: list[str]
258
+ ) -> None:
259
+ """
260
+ Uploads a bundle to storage.
261
+
262
+ Args:
263
+ bundle: The serialized bundle to upload.
264
+ key: The key to use for the remote file when uploading.
265
+ upload_command: The command to use to upload the bundle as a list of strings.
266
+ """
267
+ # Write the bundle to a temporary directory so it can be uploaded to the bundle storage
268
+ # via the upload command
269
+ with tempfile.TemporaryDirectory() as temp_dir:
270
+ Path(temp_dir).joinpath(key).write_bytes(json.dumps(bundle).encode("utf-8"))
271
+
272
+ try:
273
+ full_command = upload_command + [key]
274
+ logger.debug("Uploading execution bundle with command: %s", full_command)
275
+ subprocess.check_call(
276
+ full_command,
277
+ cwd=temp_dir,
278
+ )
279
+ except subprocess.CalledProcessError as e:
280
+ raise RuntimeError(e.stderr.decode("utf-8")) from e
281
+
282
+
283
+ async def aupload_bundle_to_storage(
284
+ bundle: SerializedBundle, key: str, upload_command: list[str]
285
+ ) -> None:
286
+ """
287
+ Asynchronously uploads a bundle to storage.
288
+
289
+ Args:
290
+ bundle: The serialized bundle to upload.
291
+ key: The key to use for the remote file when uploading.
292
+ upload_command: The command to use to upload the bundle as a list of strings.
293
+ """
294
+ # Write the bundle to a temporary directory so it can be uploaded to the bundle storage
295
+ # via the upload command
296
+ with tempfile.TemporaryDirectory() as temp_dir:
297
+ await (
298
+ anyio.Path(temp_dir)
299
+ .joinpath(key)
300
+ .write_bytes(json.dumps(bundle).encode("utf-8"))
301
+ )
302
+
303
+ try:
304
+ full_command = upload_command + [key]
305
+ logger.debug("Uploading execution bundle with command: %s", full_command)
306
+ await anyio.run_process(
307
+ full_command,
308
+ cwd=temp_dir,
309
+ )
310
+ except subprocess.CalledProcessError as e:
311
+ raise RuntimeError(e.stderr.decode("utf-8")) from e
312
+
313
+
249
314
  __all__ = [
250
315
  "execute_bundle_from_file",
251
316
  "convert_step_to_command",
@@ -7,6 +7,8 @@ from pydantic import ConfigDict, Field
7
7
  from prefect._internal.schemas.bases import PrefectBaseModel
8
8
  from prefect.types import ValidAssetKey
9
9
 
10
+ MAX_ASSET_DESCRIPTION_LENGTH = 2500
11
+
10
12
 
11
13
  class AssetProperties(PrefectBaseModel):
12
14
  """
@@ -22,7 +24,9 @@ class AssetProperties(PrefectBaseModel):
22
24
  default=None, description="Visitable url to view the Asset."
23
25
  )
24
26
  description: Optional[str] = Field(
25
- default=None, description="Description of the Asset."
27
+ default=None,
28
+ description="Description of the Asset.",
29
+ max_length=MAX_ASSET_DESCRIPTION_LENGTH,
26
30
  )
27
31
  owners: Optional[list[str]] = Field(
28
32
  default=None, description="Owners of the Asset."
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import TYPE_CHECKING, Any
3
+ from typing import TYPE_CHECKING, Any, Literal
4
4
 
5
5
  from httpx import HTTPStatusError, RequestError
6
6
 
@@ -245,6 +245,14 @@ class ConcurrencyLimitClient(BaseClient):
245
245
  slots: int,
246
246
  mode: str,
247
247
  ) -> "Response":
248
+ """
249
+ Increment concurrency slots for the specified limits.
250
+
251
+ Args:
252
+ names: A list of limit names for which to occupy slots.
253
+ slots: The number of concurrency slots to occupy.
254
+ mode: The mode of the concurrency limits.
255
+ """
248
256
  return self.request(
249
257
  "POST",
250
258
  "/v2/concurrency_limits/increment",
@@ -255,6 +263,52 @@ class ConcurrencyLimitClient(BaseClient):
255
263
  },
256
264
  )
257
265
 
266
+ def increment_concurrency_slots_with_lease(
267
+ self,
268
+ names: list[str],
269
+ slots: int,
270
+ mode: Literal["concurrency", "rate_limit"],
271
+ lease_duration: float,
272
+ ) -> "Response":
273
+ """
274
+ Increment concurrency slots for the specified limits with a lease.
275
+
276
+ Args:
277
+ names: A list of limit names for which to occupy slots.
278
+ slots: The number of concurrency slots to occupy.
279
+ mode: The mode of the concurrency limits.
280
+ lease_duration: The duration of the lease in seconds.
281
+ """
282
+ return self.request(
283
+ "POST",
284
+ "/v2/concurrency_limits/increment-with-lease",
285
+ json={
286
+ "names": names,
287
+ "slots": slots,
288
+ "mode": mode,
289
+ "lease_duration": lease_duration,
290
+ },
291
+ )
292
+
293
+ def renew_concurrency_lease(
294
+ self,
295
+ lease_id: "UUID",
296
+ lease_duration: float,
297
+ ) -> "Response":
298
+ """
299
+ Renew a concurrency lease.
300
+
301
+ Args:
302
+ lease_id: The ID of the lease to renew.
303
+ lease_duration: The new lease duration in seconds.
304
+ """
305
+ return self.request(
306
+ "POST",
307
+ "/v2/concurrency_limits/leases/{lease_id}/renew",
308
+ path_params={"lease_id": lease_id},
309
+ json={"lease_duration": lease_duration},
310
+ )
311
+
258
312
  def release_concurrency_slots(
259
313
  self, names: list[str], slots: int, occupancy_seconds: float
260
314
  ) -> "Response":
@@ -281,6 +335,24 @@ class ConcurrencyLimitClient(BaseClient):
281
335
  },
282
336
  )
283
337
 
338
+ def release_concurrency_slots_with_lease(
339
+ self,
340
+ lease_id: "UUID",
341
+ ) -> "Response":
342
+ """
343
+ Release concurrency slots for the specified lease.
344
+
345
+ Args:
346
+ lease_id: The ID of the lease corresponding to the concurrency limits to release.
347
+ """
348
+ return self.request(
349
+ "POST",
350
+ "/v2/concurrency_limits/decrement-with-lease",
351
+ json={
352
+ "lease_id": str(lease_id),
353
+ },
354
+ )
355
+
284
356
  def create_global_concurrency_limit(
285
357
  self, concurrency_limit: "GlobalConcurrencyLimitCreate"
286
358
  ) -> "UUID":
@@ -611,8 +683,16 @@ class ConcurrencyLimitAsyncClient(BaseAsyncClient):
611
683
  self,
612
684
  names: list[str],
613
685
  slots: int,
614
- mode: str,
686
+ mode: Literal["concurrency", "rate_limit"],
615
687
  ) -> "Response":
688
+ """
689
+ Increment concurrency slots for the specified limits.
690
+
691
+ Args:
692
+ names: A list of limit names for which to occupy slots.
693
+ slots: The number of concurrency slots to occupy.
694
+ mode: The mode of the concurrency limits.
695
+ """
616
696
  return await self.request(
617
697
  "POST",
618
698
  "/v2/concurrency_limits/increment",
@@ -623,6 +703,52 @@ class ConcurrencyLimitAsyncClient(BaseAsyncClient):
623
703
  },
624
704
  )
625
705
 
706
+ async def increment_concurrency_slots_with_lease(
707
+ self,
708
+ names: list[str],
709
+ slots: int,
710
+ mode: Literal["concurrency", "rate_limit"],
711
+ lease_duration: float,
712
+ ) -> "Response":
713
+ """
714
+ Increment concurrency slots for the specified limits with a lease.
715
+
716
+ Args:
717
+ names: A list of limit names for which to occupy slots.
718
+ slots: The number of concurrency slots to occupy.
719
+ mode: The mode of the concurrency limits.
720
+ lease_duration: The duration of the lease in seconds.
721
+ """
722
+ return await self.request(
723
+ "POST",
724
+ "/v2/concurrency_limits/increment-with-lease",
725
+ json={
726
+ "names": names,
727
+ "slots": slots,
728
+ "mode": mode,
729
+ "lease_duration": lease_duration,
730
+ },
731
+ )
732
+
733
+ async def renew_concurrency_lease(
734
+ self,
735
+ lease_id: "UUID",
736
+ lease_duration: float,
737
+ ) -> "Response":
738
+ """
739
+ Renew a concurrency lease.
740
+
741
+ Args:
742
+ lease_id: The ID of the lease to renew.
743
+ lease_duration: The new lease duration in seconds.
744
+ """
745
+ return await self.request(
746
+ "POST",
747
+ "/v2/concurrency_limits/leases/{lease_id}/renew",
748
+ path_params={"lease_id": lease_id},
749
+ json={"lease_duration": lease_duration},
750
+ )
751
+
626
752
  async def release_concurrency_slots(
627
753
  self, names: list[str], slots: int, occupancy_seconds: float
628
754
  ) -> "Response":
@@ -649,6 +775,24 @@ class ConcurrencyLimitAsyncClient(BaseAsyncClient):
649
775
  },
650
776
  )
651
777
 
778
+ async def release_concurrency_slots_with_lease(
779
+ self,
780
+ lease_id: "UUID",
781
+ ) -> "Response":
782
+ """
783
+ Release concurrency slots for the specified lease.
784
+
785
+ Args:
786
+ lease_id: The ID of the lease corresponding to the concurrency limits to release.
787
+ """
788
+ return await self.request(
789
+ "POST",
790
+ "/v2/concurrency_limits/decrement-with-lease",
791
+ json={
792
+ "lease_id": str(lease_id),
793
+ },
794
+ )
795
+
652
796
  async def create_global_concurrency_limit(
653
797
  self, concurrency_limit: "GlobalConcurrencyLimitCreate"
654
798
  ) -> "UUID":
@@ -115,8 +115,11 @@ ServerRoutes = Literal[
115
115
  "/v2/concurrency_limits/",
116
116
  "/v2/concurrency_limits/{id_or_name}",
117
117
  "/v2/concurrency_limits/decrement",
118
+ "/v2/concurrency_limits/decrement-with-lease",
118
119
  "/v2/concurrency_limits/filter",
119
120
  "/v2/concurrency_limits/increment",
121
+ "/v2/concurrency_limits/increment-with-lease",
122
+ "/v2/concurrency_limits/leases/{lease_id}/renew",
120
123
  "/variables/",
121
124
  "/variables/{id}",
122
125
  "/variables/count",
@@ -477,6 +477,13 @@ class MinimalConcurrencyLimitResponse(PrefectBaseModel):
477
477
  limit: int
478
478
 
479
479
 
480
+ class ConcurrencyLimitWithLeaseResponse(PrefectBaseModel):
481
+ model_config: ClassVar[ConfigDict] = ConfigDict(extra="ignore")
482
+
483
+ lease_id: UUID
484
+ limits: list[MinimalConcurrencyLimitResponse]
485
+
486
+
480
487
  class GlobalConcurrencyLimitResponse(ObjectBaseModel):
481
488
  """
482
489
  A response object for global concurrency limits.
@@ -0,0 +1,177 @@
1
+ import asyncio
2
+ import logging
3
+ from typing import Literal, Optional
4
+ from uuid import UUID
5
+
6
+ import httpx
7
+
8
+ from prefect.client.orchestration import get_client
9
+ from prefect.client.schemas.responses import (
10
+ ConcurrencyLimitWithLeaseResponse,
11
+ MinimalConcurrencyLimitResponse,
12
+ )
13
+ from prefect.logging import get_logger
14
+ from prefect.logging.loggers import get_run_logger
15
+ from prefect.utilities.timeout import timeout_async
16
+
17
+ from .services import ConcurrencySlotAcquisitionService
18
+
19
+
20
+ class ConcurrencySlotAcquisitionError(Exception):
21
+ """Raised when an unhandlable occurs while acquiring concurrency slots."""
22
+
23
+
24
+ class AcquireConcurrencySlotTimeoutError(TimeoutError):
25
+ """Raised when acquiring a concurrency slot times out."""
26
+
27
+
28
+ logger: logging.Logger = get_logger("concurrency")
29
+
30
+
31
+ async def aacquire_concurrency_slots(
32
+ names: list[str],
33
+ slots: int,
34
+ mode: Literal["concurrency", "rate_limit"] = "concurrency",
35
+ timeout_seconds: Optional[float] = None,
36
+ max_retries: Optional[int] = None,
37
+ strict: bool = False,
38
+ ) -> list[MinimalConcurrencyLimitResponse]:
39
+ service = ConcurrencySlotAcquisitionService.instance(frozenset(names))
40
+ future = service.send((slots, mode, timeout_seconds, max_retries))
41
+ try:
42
+ response = await asyncio.wrap_future(future)
43
+ except TimeoutError as timeout:
44
+ raise AcquireConcurrencySlotTimeoutError(
45
+ f"Attempt to acquire concurrency slots timed out after {timeout_seconds} second(s)"
46
+ ) from timeout
47
+ except Exception as exc:
48
+ raise ConcurrencySlotAcquisitionError(
49
+ f"Unable to acquire concurrency slots on {names!r}"
50
+ ) from exc
51
+
52
+ retval = _response_to_minimal_concurrency_limit_response(response)
53
+
54
+ if not retval:
55
+ if strict:
56
+ raise ConcurrencySlotAcquisitionError(
57
+ f"Concurrency limits {names!r} must be created before acquiring slots"
58
+ )
59
+ try:
60
+ logger = get_run_logger()
61
+ except Exception:
62
+ pass
63
+ else:
64
+ logger.warning(
65
+ f"Concurrency limits {names!r} do not exist - skipping acquisition."
66
+ )
67
+
68
+ return retval
69
+
70
+
71
+ async def aacquire_concurrency_slots_with_lease(
72
+ names: list[str],
73
+ slots: int,
74
+ mode: Literal["concurrency", "rate_limit"] = "concurrency",
75
+ timeout_seconds: Optional[float] = None,
76
+ max_retries: Optional[int] = None,
77
+ lease_duration: float = 300,
78
+ strict: bool = False,
79
+ ) -> ConcurrencyLimitWithLeaseResponse:
80
+ try:
81
+ # Use a run logger if available
82
+ logger = get_run_logger()
83
+ except Exception:
84
+ logger = get_logger("concurrency")
85
+
86
+ try:
87
+ with timeout_async(seconds=timeout_seconds):
88
+ async with get_client() as client:
89
+ while True:
90
+ try:
91
+ response = await client.increment_concurrency_slots_with_lease(
92
+ names=names,
93
+ slots=slots,
94
+ mode=mode,
95
+ lease_duration=lease_duration,
96
+ )
97
+ retval = ConcurrencyLimitWithLeaseResponse.model_validate(
98
+ response.json()
99
+ )
100
+ if not retval.limits:
101
+ if strict:
102
+ raise ConcurrencySlotAcquisitionError(
103
+ f"Concurrency limits {names!r} must be created before acquiring slots"
104
+ )
105
+ else:
106
+ logger.warning(
107
+ f"Concurrency limits {names!r} do not exist - skipping acquisition."
108
+ )
109
+
110
+ return retval
111
+ except httpx.HTTPStatusError as exc:
112
+ if not exc.response.status_code == 423: # HTTP_423_LOCKED
113
+ raise
114
+
115
+ if max_retries is not None and max_retries <= 0:
116
+ raise exc
117
+ retry_after = float(exc.response.headers["Retry-After"])
118
+ logger.debug(
119
+ f"Unable to acquire concurrency slot. Retrying in {retry_after} second(s)."
120
+ )
121
+ await asyncio.sleep(retry_after)
122
+ if max_retries is not None:
123
+ max_retries -= 1
124
+ except TimeoutError as timeout:
125
+ raise AcquireConcurrencySlotTimeoutError(
126
+ f"Attempt to acquire concurrency slots timed out after {timeout_seconds} second(s)"
127
+ ) from timeout
128
+ except Exception as exc:
129
+ raise ConcurrencySlotAcquisitionError(
130
+ f"Unable to acquire concurrency slots on {names!r}"
131
+ ) from exc
132
+
133
+
134
+ async def amaintain_concurrency_lease(
135
+ lease_id: UUID,
136
+ lease_duration: float,
137
+ ) -> None:
138
+ """
139
+ Maintain a concurrency lease by renewing it after the given interval.
140
+
141
+ Args:
142
+ lease_id: The ID of the lease to maintain.
143
+ lease_duration: The duration of the lease in seconds.
144
+ """
145
+ async with get_client() as client:
146
+ while True:
147
+ await asyncio.sleep( # Renew the lease 3/4 of the way through the lease duration
148
+ lease_duration * 0.75
149
+ )
150
+ await client.renew_concurrency_lease(
151
+ lease_id=lease_id, lease_duration=lease_duration
152
+ )
153
+
154
+
155
+ async def arelease_concurrency_slots(
156
+ names: list[str], slots: int, occupancy_seconds: float
157
+ ) -> list[MinimalConcurrencyLimitResponse]:
158
+ async with get_client() as client:
159
+ response = await client.release_concurrency_slots(
160
+ names=names, slots=slots, occupancy_seconds=occupancy_seconds
161
+ )
162
+ return _response_to_minimal_concurrency_limit_response(response)
163
+
164
+
165
+ async def arelease_concurrency_slots_with_lease(
166
+ lease_id: UUID,
167
+ ) -> None:
168
+ async with get_client() as client:
169
+ await client.release_concurrency_slots_with_lease(lease_id=lease_id)
170
+
171
+
172
+ def _response_to_minimal_concurrency_limit_response(
173
+ response: httpx.Response,
174
+ ) -> list[MinimalConcurrencyLimitResponse]:
175
+ return [
176
+ MinimalConcurrencyLimitResponse.model_validate(obj_) for obj_ in response.json()
177
+ ]