prefect-client 3.4.25.dev5__tar.gz → 3.4.26.dev2__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 (346) hide show
  1. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/PKG-INFO +3 -2
  2. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/pyproject.toml +2 -1
  3. prefect_client-3.4.26.dev2/src/prefect/_build_info.py +5 -0
  4. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/pydantic/v1_schema.py +6 -1
  5. prefect_client-3.4.26.dev2/src/prefect/_internal/pydantic/validated_func.py +339 -0
  6. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/concurrency/_asyncio.py +104 -3
  7. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/concurrency/_leases.py +18 -6
  8. prefect_client-3.4.25.dev5/src/prefect/concurrency/sync.py → prefect_client-3.4.26.dev2/src/prefect/concurrency/_sync.py +19 -57
  9. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/concurrency/asyncio.py +8 -37
  10. prefect_client-3.4.26.dev2/src/prefect/concurrency/sync.py +110 -0
  11. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/flow_engine.py +2 -2
  12. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/flows.py +42 -36
  13. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/runner/storage.py +93 -78
  14. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/deployments.py +1 -1
  15. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/flows.py +1 -1
  16. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/saved_searches.py +1 -1
  17. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/task_engine.py +8 -6
  18. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/tasks.py +1 -2
  19. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/transactions.py +2 -3
  20. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/asyncutils.py +1 -1
  21. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/workers/base.py +9 -2
  22. prefect_client-3.4.25.dev5/src/prefect/_build_info.py +0 -5
  23. prefect_client-3.4.25.dev5/src/prefect/_internal/pydantic/v2_validated_func.py +0 -102
  24. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/.gitignore +0 -0
  25. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/LICENSE +0 -0
  26. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/README.md +0 -0
  27. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/.prefectignore +0 -0
  28. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/AGENTS.md +0 -0
  29. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/__init__.py +0 -0
  30. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/__main__.py +0 -0
  31. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_experimental/__init__.py +0 -0
  32. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_experimental/bundles/__init__.py +0 -0
  33. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_experimental/bundles/execute.py +0 -0
  34. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_experimental/plugins/__init__.py +0 -0
  35. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_experimental/plugins/apply.py +0 -0
  36. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
  37. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_experimental/plugins/manager.py +0 -0
  38. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_experimental/plugins/spec.py +0 -0
  39. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_experimental/sla/__init__.py +0 -0
  40. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_experimental/sla/client.py +0 -0
  41. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_experimental/sla/objects.py +0 -0
  42. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/__init__.py +0 -0
  43. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/_logging.py +0 -0
  44. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/compatibility/__init__.py +0 -0
  45. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  46. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/compatibility/blocks.py +0 -0
  47. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  48. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/compatibility/migration.py +0 -0
  49. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/compatibility/starlette.py +0 -0
  50. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/concurrency/__init__.py +0 -0
  51. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/concurrency/api.py +0 -0
  52. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/concurrency/calls.py +0 -0
  53. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  54. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  55. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/concurrency/inspection.py +0 -0
  56. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/concurrency/primitives.py +0 -0
  57. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/concurrency/services.py +0 -0
  58. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/concurrency/threads.py +0 -0
  59. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/concurrency/waiters.py +0 -0
  60. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/installation.py +0 -0
  61. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/integrations.py +0 -0
  62. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/pydantic/__init__.py +0 -0
  63. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/pydantic/schemas.py +0 -0
  64. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  65. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/pytz.py +0 -0
  66. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/retries.py +0 -0
  67. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/schemas/__init__.py +0 -0
  68. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/schemas/bases.py +0 -0
  69. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/schemas/fields.py +0 -0
  70. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/schemas/serializers.py +0 -0
  71. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/schemas/validators.py +0 -0
  72. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/uuid7.py +0 -0
  73. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_internal/websockets.py +0 -0
  74. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_result_records.py +0 -0
  75. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_vendor/croniter/__init__.py +0 -0
  76. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_vendor/croniter/croniter.py +0 -0
  77. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_versioning.py +0 -0
  78. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/_waiters.py +0 -0
  79. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/agent.py +0 -0
  80. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/artifacts.py +0 -0
  81. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/assets/__init__.py +0 -0
  82. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/assets/core.py +0 -0
  83. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/assets/materialize.py +0 -0
  84. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/automations.py +0 -0
  85. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/blocks/__init__.py +0 -0
  86. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/blocks/abstract.py +0 -0
  87. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/blocks/core.py +0 -0
  88. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/blocks/fields.py +0 -0
  89. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/blocks/notifications.py +0 -0
  90. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/blocks/redis.py +0 -0
  91. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/blocks/system.py +0 -0
  92. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/blocks/webhook.py +0 -0
  93. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/cache_policies.py +0 -0
  94. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/__init__.py +0 -0
  95. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/base.py +0 -0
  96. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/cloud.py +0 -0
  97. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/collections.py +0 -0
  98. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/constants.py +0 -0
  99. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/__init__.py +0 -0
  100. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
  101. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  102. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
  103. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_automations/client.py +0 -0
  104. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
  105. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  106. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
  107. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  108. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
  109. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  110. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
  111. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
  112. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
  113. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_deployments/client.py +0 -0
  114. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
  115. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  116. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
  117. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_flows/client.py +0 -0
  118. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
  119. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_logs/client.py +0 -0
  120. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
  121. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_variables/client.py +0 -0
  122. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
  123. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
  124. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/base.py +0 -0
  125. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/orchestration/routes.py +0 -0
  126. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/schemas/__init__.py +0 -0
  127. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/schemas/actions.py +0 -0
  128. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/schemas/filters.py +0 -0
  129. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/schemas/objects.py +0 -0
  130. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/schemas/responses.py +0 -0
  131. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/schemas/schedules.py +0 -0
  132. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/schemas/sorting.py +0 -0
  133. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/subscriptions.py +0 -0
  134. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/types/__init__.py +0 -0
  135. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  136. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/client/utilities.py +0 -0
  137. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/concurrency/__init__.py +0 -0
  138. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/concurrency/_events.py +0 -0
  139. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/concurrency/context.py +0 -0
  140. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/concurrency/services.py +0 -0
  141. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/concurrency/v1/__init__.py +0 -0
  142. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  143. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/concurrency/v1/_events.py +0 -0
  144. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/concurrency/v1/asyncio.py +0 -0
  145. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/concurrency/v1/context.py +0 -0
  146. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/concurrency/v1/services.py +0 -0
  147. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/concurrency/v1/sync.py +0 -0
  148. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/context.py +0 -0
  149. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/deployments/__init__.py +0 -0
  150. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/deployments/base.py +0 -0
  151. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/deployments/deployments.py +0 -0
  152. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/deployments/flow_runs.py +0 -0
  153. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/deployments/runner.py +0 -0
  154. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/deployments/schedules.py +0 -0
  155. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/deployments/steps/__init__.py +0 -0
  156. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/deployments/steps/core.py +0 -0
  157. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/deployments/steps/pull.py +0 -0
  158. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/deployments/steps/utility.py +0 -0
  159. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/docker/__init__.py +0 -0
  160. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/docker/docker_image.py +0 -0
  161. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/engine.py +0 -0
  162. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/events/__init__.py +0 -0
  163. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/events/actions.py +0 -0
  164. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/events/cli/__init__.py +0 -0
  165. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/events/cli/automations.py +0 -0
  166. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/events/clients.py +0 -0
  167. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/events/filters.py +0 -0
  168. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/events/related.py +0 -0
  169. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/events/schemas/__init__.py +0 -0
  170. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/events/schemas/automations.py +0 -0
  171. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  172. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/events/schemas/events.py +0 -0
  173. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/events/schemas/labelling.py +0 -0
  174. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/events/subscribers.py +0 -0
  175. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/events/utilities.py +0 -0
  176. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/events/worker.py +0 -0
  177. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/exceptions.py +0 -0
  178. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/filesystems.py +0 -0
  179. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/flow_runs.py +0 -0
  180. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/futures.py +0 -0
  181. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/infrastructure/__init__.py +0 -0
  182. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/infrastructure/base.py +0 -0
  183. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  184. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  185. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  186. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  187. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  188. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  189. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/input/__init__.py +0 -0
  190. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/input/actions.py +0 -0
  191. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/input/run_input.py +0 -0
  192. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/locking/__init__.py +0 -0
  193. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/locking/filesystem.py +0 -0
  194. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/locking/memory.py +0 -0
  195. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/locking/protocol.py +0 -0
  196. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/logging/__init__.py +0 -0
  197. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/logging/clients.py +0 -0
  198. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/logging/configuration.py +0 -0
  199. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/logging/filters.py +0 -0
  200. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/logging/formatters.py +0 -0
  201. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/logging/handlers.py +0 -0
  202. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/logging/highlighters.py +0 -0
  203. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/logging/loggers.py +0 -0
  204. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/logging/logging.yml +0 -0
  205. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/main.py +0 -0
  206. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/plugins.py +0 -0
  207. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/py.typed +0 -0
  208. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/results.py +0 -0
  209. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/runner/__init__.py +0 -0
  210. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/runner/_observers.py +0 -0
  211. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/runner/runner.py +0 -0
  212. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/runner/server.py +0 -0
  213. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/runner/submit.py +0 -0
  214. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/runner/utils.py +0 -0
  215. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/runtime/__init__.py +0 -0
  216. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/runtime/deployment.py +0 -0
  217. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/runtime/flow_run.py +0 -0
  218. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/runtime/task_run.py +0 -0
  219. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/schedules.py +0 -0
  220. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/serializers.py +0 -0
  221. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/__init__.py +0 -0
  222. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/admin.py +0 -0
  223. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/artifacts.py +0 -0
  224. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/automations.py +0 -0
  225. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/block_capabilities.py +0 -0
  226. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/block_documents.py +0 -0
  227. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/block_schemas.py +0 -0
  228. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/block_types.py +0 -0
  229. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/clients.py +0 -0
  230. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/collections.py +0 -0
  231. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  232. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/concurrency_limits.py +0 -0
  233. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
  234. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/csrf_token.py +0 -0
  235. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/dependencies.py +0 -0
  236. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/events.py +0 -0
  237. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/flow_run_states.py +0 -0
  238. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/flow_runs.py +0 -0
  239. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/logs.py +0 -0
  240. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/middleware.py +0 -0
  241. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/root.py +0 -0
  242. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/run_history.py +0 -0
  243. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/server.py +0 -0
  244. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  245. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/task_run_states.py +0 -0
  246. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/task_runs.py +0 -0
  247. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/task_workers.py +0 -0
  248. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/templates.py +0 -0
  249. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/ui/__init__.py +0 -0
  250. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/ui/flow_runs.py +0 -0
  251. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/ui/flows.py +0 -0
  252. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/ui/schemas.py +0 -0
  253. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/ui/task_runs.py +0 -0
  254. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/validation.py +0 -0
  255. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/variables.py +0 -0
  256. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/work_queues.py +0 -0
  257. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/server/api/workers.py +0 -0
  258. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/__init__.py +0 -0
  259. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/base.py +0 -0
  260. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/constants.py +0 -0
  261. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/context.py +0 -0
  262. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/legacy.py +0 -0
  263. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/__init__.py +0 -0
  264. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/_defaults.py +0 -0
  265. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/api.py +0 -0
  266. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/cli.py +0 -0
  267. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/client.py +0 -0
  268. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/cloud.py +0 -0
  269. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/deployments.py +0 -0
  270. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/experiments.py +0 -0
  271. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/flows.py +0 -0
  272. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/internal.py +0 -0
  273. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/logging.py +0 -0
  274. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/results.py +0 -0
  275. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/root.py +0 -0
  276. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/runner.py +0 -0
  277. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/server/__init__.py +0 -0
  278. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/server/api.py +0 -0
  279. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/server/concurrency.py +0 -0
  280. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/server/database.py +0 -0
  281. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/server/deployments.py +0 -0
  282. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/server/ephemeral.py +0 -0
  283. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/server/events.py +0 -0
  284. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  285. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/server/logs.py +0 -0
  286. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/server/root.py +0 -0
  287. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/server/services.py +0 -0
  288. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/server/tasks.py +0 -0
  289. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/server/ui.py +0 -0
  290. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/tasks.py +0 -0
  291. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/testing.py +0 -0
  292. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/models/worker.py +0 -0
  293. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/profiles.py +0 -0
  294. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/profiles.toml +0 -0
  295. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/settings/sources.py +0 -0
  296. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/states.py +0 -0
  297. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/task_runners.py +0 -0
  298. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/task_runs.py +0 -0
  299. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/task_worker.py +0 -0
  300. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/telemetry/__init__.py +0 -0
  301. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/telemetry/run_telemetry.py +0 -0
  302. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/types/__init__.py +0 -0
  303. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/types/_concurrency.py +0 -0
  304. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/types/_datetime.py +0 -0
  305. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/types/_schema.py +0 -0
  306. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/types/entrypoint.py +0 -0
  307. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/types/names.py +0 -0
  308. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/__init__.py +0 -0
  309. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/_ast.py +0 -0
  310. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/_deprecated.py +0 -0
  311. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/_engine.py +0 -0
  312. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/_git.py +0 -0
  313. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/annotations.py +0 -0
  314. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/callables.py +0 -0
  315. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/collections.py +0 -0
  316. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/compat.py +0 -0
  317. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/context.py +0 -0
  318. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/dispatch.py +0 -0
  319. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/dockerutils.py +0 -0
  320. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/engine.py +0 -0
  321. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/filesystem.py +0 -0
  322. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/generics.py +0 -0
  323. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/hashing.py +0 -0
  324. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/importtools.py +0 -0
  325. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/math.py +0 -0
  326. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/names.py +0 -0
  327. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/processutils.py +0 -0
  328. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/pydantic.py +0 -0
  329. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/render_swagger.py +0 -0
  330. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  331. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  332. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/schema_tools/validation.py +0 -0
  333. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/services.py +0 -0
  334. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/slugify.py +0 -0
  335. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/templating.py +0 -0
  336. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/text.py +0 -0
  337. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/timeout.py +0 -0
  338. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/urls.py +0 -0
  339. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/utilities/visualization.py +0 -0
  340. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/variables.py +0 -0
  341. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/workers/__init__.py +0 -0
  342. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/workers/block.py +0 -0
  343. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/workers/cloud.py +0 -0
  344. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/workers/process.py +0 -0
  345. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/src/prefect/workers/server.py +0 -0
  346. {prefect_client-3.4.25.dev5 → prefect_client-3.4.26.dev2}/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.25.dev5
3
+ Version: 3.4.26.dev2
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
@@ -19,8 +19,9 @@ Classifier: Programming Language :: Python :: 3.10
19
19
  Classifier: Programming Language :: Python :: 3.11
20
20
  Classifier: Programming Language :: Python :: 3.12
21
21
  Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Programming Language :: Python :: 3.14
22
23
  Classifier: Topic :: Software Development :: Libraries
23
- Requires-Python: <3.14,>=3.9
24
+ Requires-Python: <3.15,>=3.9
24
25
  Requires-Dist: anyio<5.0.0,>=4.4.0
25
26
  Requires-Dist: asgi-lifespan<3.0,>=1.0
26
27
  Requires-Dist: cachetools<7.0,>=5.3
@@ -7,7 +7,7 @@ name = "prefect-client"
7
7
  dynamic = ["version"]
8
8
  description = "Workflow orchestration and management."
9
9
  readme = "README.md"
10
- requires-python = ">=3.9,<3.14"
10
+ requires-python = ">=3.9,<3.15"
11
11
  license = { text = "Apache-2.0" }
12
12
  authors = [{ name = "Prefect Technologies, Inc.", email = "help@prefect.io" }]
13
13
  classifiers = [
@@ -21,6 +21,7 @@ classifiers = [
21
21
  "Programming Language :: Python :: 3.11",
22
22
  "Programming Language :: Python :: 3.12",
23
23
  "Programming Language :: Python :: 3.13",
24
+ "Programming Language :: Python :: 3.14",
24
25
  "Topic :: Software Development :: Libraries",
25
26
  ]
26
27
  dependencies = [
@@ -0,0 +1,5 @@
1
+ # Generated by versioningit
2
+ __version__ = "3.4.26.dev2"
3
+ __build_date__ = "2025-10-25 08:07:49.047020+00:00"
4
+ __git_commit__ = "7fcfb7e8c133807fdc174214560a3badb40f0839"
5
+ __dirty__ = False
@@ -1,9 +1,9 @@
1
1
  import inspect
2
+ import sys
2
3
  import typing
3
4
  import warnings
4
5
 
5
6
  import pydantic
6
- from pydantic.v1 import BaseModel as V1BaseModel
7
7
 
8
8
 
9
9
  def is_v1_model(v: typing.Any) -> bool:
@@ -12,6 +12,11 @@ def is_v1_model(v: typing.Any) -> bool:
12
12
  "ignore", category=pydantic.warnings.PydanticDeprecatedSince20
13
13
  )
14
14
 
15
+ if sys.version_info >= (3, 14): # Pydantic v1 is not supported in Python 3.14+
16
+ return False
17
+
18
+ from pydantic.v1 import BaseModel as V1BaseModel
19
+
15
20
  if isinstance(v, V1BaseModel):
16
21
  return True
17
22
  try:
@@ -0,0 +1,339 @@
1
+ """
2
+ Pure Pydantic v2 implementation of function argument validation.
3
+
4
+ This module provides validation of function arguments without calling the function,
5
+ compatible with Python 3.14+ (no Pydantic v1 dependency).
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import inspect
11
+ from typing import Any, Callable, ClassVar, Optional
12
+
13
+ from pydantic import (
14
+ BaseModel,
15
+ ConfigDict,
16
+ Field,
17
+ ValidationError,
18
+ create_model,
19
+ field_validator,
20
+ )
21
+
22
+ # Special field names for validation
23
+ # These match pydantic.v1.decorator constants for compatibility
24
+ V_ARGS_NAME = "v__args"
25
+ V_KWARGS_NAME = "v__kwargs"
26
+ V_POSITIONAL_ONLY_NAME = "v__positional_only"
27
+ V_DUPLICATE_KWARGS = "v__duplicate_kwargs"
28
+
29
+
30
+ class ValidatedFunction:
31
+ """
32
+ Validates function arguments using Pydantic v2 without calling the function.
33
+
34
+ This class inspects a function's signature and creates a Pydantic model
35
+ that can validate arguments passed to the function, including handling
36
+ of *args, **kwargs, positional-only parameters, and duplicate arguments.
37
+
38
+ Example:
39
+ ```python
40
+ def greet(name: str, age: int = 0):
41
+ return f"Hello {name}, you are {age} years old"
42
+
43
+ vf = ValidatedFunction(greet)
44
+
45
+ # Validate arguments
46
+ values = vf.validate_call_args(("Alice",), {"age": 30})
47
+ # Returns: {"name": "Alice", "age": 30}
48
+
49
+ # Invalid arguments will raise ValidationError
50
+ vf.validate_call_args(("Bob",), {"age": "not a number"})
51
+ # Raises: ValidationError
52
+ ```
53
+ """
54
+
55
+ def __init__(
56
+ self,
57
+ function: Callable[..., Any],
58
+ config: ConfigDict | None = None,
59
+ ):
60
+ """
61
+ Initialize the validated function.
62
+
63
+ Args:
64
+ function: The function to validate arguments for
65
+ config: Optional Pydantic ConfigDict or dict configuration
66
+
67
+ Raises:
68
+ ValueError: If function parameters conflict with internal field names
69
+ """
70
+ self.raw_function = function
71
+ self.signature = inspect.signature(function)
72
+ self.arg_mapping: dict[int, str] = {}
73
+ self.positional_only_args: set[str] = set()
74
+ self.v_args_name = V_ARGS_NAME
75
+ self.v_kwargs_name = V_KWARGS_NAME
76
+
77
+ # Check for conflicts with internal field names
78
+ reserved_names = {
79
+ V_ARGS_NAME,
80
+ V_KWARGS_NAME,
81
+ V_POSITIONAL_ONLY_NAME,
82
+ V_DUPLICATE_KWARGS,
83
+ }
84
+ param_names = set(self.signature.parameters.keys())
85
+ conflicts = reserved_names & param_names
86
+ if conflicts:
87
+ raise ValueError(
88
+ f"Function parameters conflict with internal field names: {conflicts}. "
89
+ f"These names are reserved: {reserved_names}"
90
+ )
91
+
92
+ # Build the validation model
93
+ fields, takes_args, takes_kwargs = self._build_fields()
94
+ self._create_model(fields, takes_args, takes_kwargs, config)
95
+
96
+ def _build_fields(self) -> tuple[dict[str, Any], bool, bool]:
97
+ """
98
+ Build field definitions from function signature.
99
+
100
+ Returns:
101
+ Tuple of (fields_dict, takes_args, takes_kwargs)
102
+ """
103
+ fields: dict[str, Any] = {}
104
+ takes_args = False
105
+ takes_kwargs = False
106
+ position = 0
107
+
108
+ for param_name, param in self.signature.parameters.items():
109
+ if param.kind == inspect.Parameter.VAR_POSITIONAL:
110
+ takes_args = True
111
+ continue
112
+
113
+ if param.kind == inspect.Parameter.VAR_KEYWORD:
114
+ takes_kwargs = True
115
+ continue
116
+
117
+ # Track positional-only parameters
118
+ if param.kind == inspect.Parameter.POSITIONAL_ONLY:
119
+ self.positional_only_args.add(param_name)
120
+
121
+ # Map position to parameter name
122
+ if param.kind in (
123
+ inspect.Parameter.POSITIONAL_ONLY,
124
+ inspect.Parameter.POSITIONAL_OR_KEYWORD,
125
+ ):
126
+ self.arg_mapping[position] = param_name
127
+ position += 1
128
+
129
+ # Determine type and default
130
+ annotation = (
131
+ param.annotation if param.annotation != inspect.Parameter.empty else Any
132
+ )
133
+
134
+ if param.default == inspect.Parameter.empty:
135
+ # Required parameter
136
+ fields[param_name] = (annotation, Field(...))
137
+ else:
138
+ # Optional parameter with default
139
+ fields[param_name] = (annotation, Field(default=param.default))
140
+
141
+ # Always add args/kwargs fields for validation, even if function doesn't accept them
142
+ fields[self.v_args_name] = (Optional[list[Any]], Field(default=None))
143
+ fields[self.v_kwargs_name] = (Optional[dict[str, Any]], Field(default=None))
144
+
145
+ # Add special validation fields
146
+ fields[V_POSITIONAL_ONLY_NAME] = (Optional[list[str]], Field(default=None))
147
+ fields[V_DUPLICATE_KWARGS] = (Optional[list[str]], Field(default=None))
148
+
149
+ return fields, takes_args, takes_kwargs
150
+
151
+ def _create_model(
152
+ self,
153
+ fields: dict[str, Any],
154
+ takes_args: bool,
155
+ takes_kwargs: bool,
156
+ config: ConfigDict | None,
157
+ ) -> None:
158
+ """Create the Pydantic validation model."""
159
+ pos_args = len(self.arg_mapping)
160
+
161
+ # Process config
162
+ # Note: ConfigDict is a TypedDict, so we can't use isinstance() in Python 3.14
163
+ # Instead, check if it's a dict-like object and merge with defaults
164
+ if config is None:
165
+ config_dict = ConfigDict(extra="forbid")
166
+ else:
167
+ config_dict = config.copy()
168
+ if "extra" not in config_dict:
169
+ config_dict["extra"] = "forbid"
170
+
171
+ # Create base model with validators
172
+ class DecoratorBaseModel(BaseModel):
173
+ model_config: ClassVar[ConfigDict] = config_dict
174
+
175
+ @field_validator(V_ARGS_NAME, check_fields=False)
176
+ @classmethod
177
+ def check_args(cls, v: Optional[list[Any]]) -> Optional[list[Any]]:
178
+ if takes_args or v is None:
179
+ return v
180
+
181
+ raise TypeError(
182
+ f"{pos_args} positional argument{'s' if pos_args != 1 else ''} "
183
+ f"expected but {pos_args + len(v)} given"
184
+ )
185
+
186
+ @field_validator(V_KWARGS_NAME, check_fields=False)
187
+ @classmethod
188
+ def check_kwargs(
189
+ cls, v: Optional[dict[str, Any]]
190
+ ) -> Optional[dict[str, Any]]:
191
+ if takes_kwargs or v is None:
192
+ return v
193
+
194
+ plural = "" if len(v) == 1 else "s"
195
+ keys = ", ".join(map(repr, v.keys()))
196
+ raise TypeError(f"unexpected keyword argument{plural}: {keys}")
197
+
198
+ @field_validator(V_POSITIONAL_ONLY_NAME, check_fields=False)
199
+ @classmethod
200
+ def check_positional_only(cls, v: Optional[list[str]]) -> None:
201
+ if v is None:
202
+ return
203
+
204
+ plural = "" if len(v) == 1 else "s"
205
+ keys = ", ".join(map(repr, v))
206
+ raise TypeError(
207
+ f"positional-only argument{plural} passed as keyword "
208
+ f"argument{plural}: {keys}"
209
+ )
210
+
211
+ @field_validator(V_DUPLICATE_KWARGS, check_fields=False)
212
+ @classmethod
213
+ def check_duplicate_kwargs(cls, v: Optional[list[str]]) -> None:
214
+ if v is None:
215
+ return
216
+
217
+ plural = "" if len(v) == 1 else "s"
218
+ keys = ", ".join(map(repr, v))
219
+ raise TypeError(f"multiple values for argument{plural}: {keys}")
220
+
221
+ # Create the model dynamically
222
+ model_name = f"{self.raw_function.__name__.title()}Model"
223
+ self.model = create_model(
224
+ model_name,
225
+ __base__=DecoratorBaseModel,
226
+ **fields,
227
+ )
228
+
229
+ def validate_call_args(
230
+ self, args: tuple[Any, ...], kwargs: dict[str, Any]
231
+ ) -> dict[str, Any]:
232
+ """
233
+ Validate function arguments and return normalized parameters.
234
+
235
+ Args:
236
+ args: Positional arguments
237
+ kwargs: Keyword arguments
238
+
239
+ Returns:
240
+ Dictionary mapping parameter names to values
241
+
242
+ Raises:
243
+ ValidationError: If arguments don't match the function signature
244
+ """
245
+ # Build the values dict for validation
246
+ values: dict[str, Any] = {}
247
+ var_args: list[Any] = []
248
+ var_kwargs: dict[str, Any] = {}
249
+ positional_only_passed_as_kw: list[str] = []
250
+ duplicate_kwargs: list[str] = []
251
+
252
+ # Process positional arguments
253
+ for i, arg in enumerate(args):
254
+ if i in self.arg_mapping:
255
+ param_name = self.arg_mapping[i]
256
+ if param_name in kwargs:
257
+ # Duplicate: both positional and keyword
258
+ duplicate_kwargs.append(param_name)
259
+ values[param_name] = arg
260
+ else:
261
+ # Extra positional args go into *args
262
+ var_args.append(arg)
263
+
264
+ # Process keyword arguments
265
+ for key, value in kwargs.items():
266
+ if key in values:
267
+ # Already set by positional arg
268
+ continue
269
+
270
+ # Check if this is a positional-only param passed as keyword
271
+ if key in self.positional_only_args:
272
+ positional_only_passed_as_kw.append(key)
273
+ continue
274
+
275
+ # Check if this is a known parameter
276
+ if key in self.signature.parameters:
277
+ values[key] = value
278
+ else:
279
+ # Unknown parameter goes into **kwargs
280
+ var_kwargs[key] = value
281
+
282
+ # Add special fields
283
+ if var_args:
284
+ values[self.v_args_name] = var_args
285
+ if var_kwargs:
286
+ values[self.v_kwargs_name] = var_kwargs
287
+ if positional_only_passed_as_kw:
288
+ values[V_POSITIONAL_ONLY_NAME] = positional_only_passed_as_kw
289
+ if duplicate_kwargs:
290
+ values[V_DUPLICATE_KWARGS] = duplicate_kwargs
291
+
292
+ # Validate using the model
293
+ try:
294
+ validated = self.model.model_validate(values)
295
+ except ValidationError as e:
296
+ # Convert ValidationError to TypeError for certain cases to match Python's behavior
297
+ # Check if the error is about extra kwargs
298
+ for error in e.errors():
299
+ if error.get("type") == "extra_forbidden" and error.get("loc") == (
300
+ "kwargs",
301
+ ):
302
+ # This is an extra keyword argument error
303
+ extra_keys = error.get("input", {})
304
+ if isinstance(extra_keys, dict):
305
+ plural = "" if len(extra_keys) == 1 else "s"
306
+ keys = ", ".join(map(repr, extra_keys.keys()))
307
+ raise TypeError(f"unexpected keyword argument{plural}: {keys}")
308
+ # For other validation errors, re-raise as-is
309
+ raise
310
+
311
+ # Extract only the actual function parameters
312
+ result: dict[str, Any] = {}
313
+ for param_name in self.signature.parameters.keys():
314
+ param = self.signature.parameters[param_name]
315
+
316
+ if param.kind == inspect.Parameter.VAR_POSITIONAL:
317
+ result[param_name] = getattr(validated, self.v_args_name) or []
318
+ elif param.kind == inspect.Parameter.VAR_KEYWORD:
319
+ result[param_name] = getattr(validated, self.v_kwargs_name) or {}
320
+ else:
321
+ # Regular parameter
322
+ value = getattr(validated, param_name)
323
+ result[param_name] = value
324
+
325
+ return result
326
+
327
+ def __call__(self, *args: Any, **kwargs: Any) -> Any:
328
+ """
329
+ Validate arguments and call the function.
330
+
331
+ Args:
332
+ *args: Positional arguments
333
+ **kwargs: Keyword arguments
334
+
335
+ Returns:
336
+ The result of calling the function with validated arguments
337
+ """
338
+ validated_params = self.validate_call_args(args, kwargs)
339
+ return self.raw_function(**validated_params)
@@ -1,8 +1,12 @@
1
+ from __future__ import annotations
2
+
1
3
  import asyncio
2
4
  import logging
3
- from typing import TYPE_CHECKING, Literal, Optional
5
+ from contextlib import asynccontextmanager
6
+ from typing import TYPE_CHECKING, AsyncGenerator, Literal, Optional
4
7
  from uuid import UUID
5
8
 
9
+ import anyio
6
10
  import httpx
7
11
 
8
12
  from prefect.client.orchestration import get_client
@@ -10,6 +14,12 @@ from prefect.client.schemas.responses import (
10
14
  ConcurrencyLimitWithLeaseResponse,
11
15
  MinimalConcurrencyLimitResponse,
12
16
  )
17
+ from prefect.concurrency._events import (
18
+ emit_concurrency_acquisition_events,
19
+ emit_concurrency_release_events,
20
+ )
21
+ from prefect.concurrency._leases import amaintain_concurrency_lease
22
+ from prefect.concurrency.context import ConcurrencyContext
13
23
  from prefect.logging import get_logger
14
24
  from prefect.logging.loggers import get_run_logger
15
25
  from prefect.utilities.timeout import timeout_async
@@ -80,6 +90,7 @@ async def aacquire_concurrency_slots_with_lease(
80
90
  lease_duration: float = 300,
81
91
  strict: bool = False,
82
92
  holder: "Optional[ConcurrencyLeaseHolder]" = None,
93
+ suppress_warnings: bool = False,
83
94
  ) -> ConcurrencyLimitWithLeaseResponse:
84
95
  try:
85
96
  # Use a run logger if available
@@ -108,8 +119,14 @@ async def aacquire_concurrency_slots_with_lease(
108
119
  f"Concurrency limits {names!r} must be created before acquiring slots"
109
120
  )
110
121
  else:
111
- logger.warning(
112
- f"Concurrency limits {names!r} do not exist - skipping acquisition."
122
+ log_level = (
123
+ logging.DEBUG
124
+ if suppress_warnings
125
+ else logging.WARNING
126
+ )
127
+ logger.log(
128
+ log_level,
129
+ f"Concurrency limits {names!r} do not exist - skipping acquisition.",
113
130
  )
114
131
 
115
132
  return retval
@@ -159,3 +176,87 @@ def _response_to_minimal_concurrency_limit_response(
159
176
  return [
160
177
  MinimalConcurrencyLimitResponse.model_validate(obj_) for obj_ in response.json()
161
178
  ]
179
+
180
+
181
+ @asynccontextmanager
182
+ async def concurrency(
183
+ names: str | list[str],
184
+ occupy: int = 1,
185
+ timeout_seconds: Optional[float] = None,
186
+ max_retries: Optional[int] = None,
187
+ lease_duration: float = 300,
188
+ strict: bool = False,
189
+ holder: "Optional[ConcurrencyLeaseHolder]" = None,
190
+ suppress_warnings: bool = False,
191
+ ) -> AsyncGenerator[None, None]:
192
+ """
193
+ Internal version of the `concurrency` context manager. The public version is located in `prefect.concurrency.asyncio`.
194
+
195
+ Args:
196
+ names: The names of the concurrency limits to acquire slots from.
197
+ occupy: The number of slots to acquire and hold from each limit.
198
+ timeout_seconds: The number of seconds to wait for the slots to be acquired before
199
+ raising a `TimeoutError`. A timeout of `None` will wait indefinitely.
200
+ max_retries: The maximum number of retries to acquire the concurrency slots.
201
+ lease_duration: The duration of the lease for the acquired slots in seconds.
202
+ strict: A boolean specifying whether to raise an error if the concurrency limit does not exist.
203
+ Defaults to `False`.
204
+ holder: A dictionary containing information about the holder of the concurrency slots.
205
+ Typically includes 'type' and 'id' keys.
206
+
207
+ Raises:
208
+ TimeoutError: If the slots are not acquired within the given timeout.
209
+ ConcurrencySlotAcquisitionError: If the concurrency limit does not exist and `strict` is `True`.
210
+
211
+ Example:
212
+ A simple example of using the async `concurrency` context manager:
213
+ ```python
214
+ from prefect.concurrency.asyncio import concurrency
215
+
216
+ async def resource_heavy():
217
+ async with concurrency("test", occupy=1):
218
+ print("Resource heavy task")
219
+
220
+ async def main():
221
+ await resource_heavy()
222
+ ```
223
+ """
224
+ if not names:
225
+ yield
226
+ return
227
+
228
+ names = names if isinstance(names, list) else [names]
229
+
230
+ response = await aacquire_concurrency_slots_with_lease(
231
+ names=names,
232
+ slots=occupy,
233
+ timeout_seconds=timeout_seconds,
234
+ max_retries=max_retries,
235
+ lease_duration=lease_duration,
236
+ strict=strict,
237
+ holder=holder,
238
+ suppress_warnings=suppress_warnings,
239
+ )
240
+ emitted_events = emit_concurrency_acquisition_events(response.limits, occupy)
241
+
242
+ try:
243
+ async with amaintain_concurrency_lease(
244
+ response.lease_id,
245
+ lease_duration,
246
+ raise_on_lease_renewal_failure=strict,
247
+ suppress_warnings=suppress_warnings,
248
+ ):
249
+ yield
250
+ finally:
251
+ try:
252
+ await arelease_concurrency_slots_with_lease(
253
+ lease_id=response.lease_id,
254
+ )
255
+ except anyio.get_cancelled_exc_class():
256
+ # The task was cancelled before it could release the lease. Add the
257
+ # lease ID to the cleanup list so it can be released when the
258
+ # concurrency context is exited.
259
+ if ctx := ConcurrencyContext.get():
260
+ ctx.cleanup_lease_ids.append(response.lease_id)
261
+
262
+ emit_concurrency_release_events(response.limits, occupy, emitted_events)
@@ -40,6 +40,7 @@ def maintain_concurrency_lease(
40
40
  lease_id: UUID,
41
41
  lease_duration: float,
42
42
  raise_on_lease_renewal_failure: bool = False,
43
+ suppress_warnings: bool = False,
43
44
  ) -> Generator[None, None, None]:
44
45
  """
45
46
  Maintain a concurrency lease for the given lease ID.
@@ -76,9 +77,14 @@ def maintain_concurrency_lease(
76
77
  )
77
78
  assert cancel_scope.cancel()
78
79
  else:
79
- logger.warning(
80
- "Concurrency lease renewal failed - slots are no longer reserved. Execution will continue, but concurrency limits may be exceeded."
81
- )
80
+ if suppress_warnings:
81
+ logger.debug(
82
+ "Concurrency lease renewal failed - slots are no longer reserved. Execution will continue, but concurrency limits may be exceeded."
83
+ )
84
+ else:
85
+ logger.warning(
86
+ "Concurrency lease renewal failed - slots are no longer reserved. Execution will continue, but concurrency limits may be exceeded."
87
+ )
82
88
 
83
89
  lease_renewal_call.future.add_done_callback(handle_lease_renewal_failure)
84
90
 
@@ -94,6 +100,7 @@ async def amaintain_concurrency_lease(
94
100
  lease_id: UUID,
95
101
  lease_duration: float,
96
102
  raise_on_lease_renewal_failure: bool = False,
103
+ suppress_warnings: bool = False,
97
104
  ) -> AsyncGenerator[None, None]:
98
105
  """
99
106
  Maintain a concurrency lease for the given lease ID.
@@ -125,9 +132,14 @@ async def amaintain_concurrency_lease(
125
132
  )
126
133
  cancel_scope.cancel()
127
134
  else:
128
- logger.warning(
129
- "Concurrency lease renewal failed - slots are no longer reserved. Execution will continue, but concurrency limits may be exceeded."
130
- )
135
+ if suppress_warnings:
136
+ logger.debug(
137
+ "Concurrency lease renewal failed - slots are no longer reserved. Execution will continue, but concurrency limits may be exceeded."
138
+ )
139
+ else:
140
+ logger.warning(
141
+ "Concurrency lease renewal failed - slots are no longer reserved. Execution will continue, but concurrency limits may be exceeded."
142
+ )
131
143
 
132
144
  # Add a callback to stop execution if the lease renewal fails and strict is True
133
145
  lease_renewal_task.add_done_callback(handle_lease_renewal_failure)