prefect-client 3.4.21.dev3__tar.gz → 3.4.21.dev4__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 (337) hide show
  1. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/PKG-INFO +1 -1
  2. prefect_client-3.4.21.dev4/src/prefect/_build_info.py +5 -0
  3. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_experimental/bundles/__init__.py +263 -6
  4. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/client.py +3 -4
  5. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/concurrency.py +12 -1
  6. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/types/__init__.py +21 -0
  7. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/engine.py +7 -0
  8. prefect_client-3.4.21.dev3/src/prefect/_build_info.py +0 -5
  9. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/.gitignore +0 -0
  10. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/LICENSE +0 -0
  11. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/README.md +0 -0
  12. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/pyproject.toml +0 -0
  13. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/.prefectignore +0 -0
  14. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/AGENTS.md +0 -0
  15. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/__init__.py +0 -0
  16. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/__main__.py +0 -0
  17. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_experimental/__init__.py +0 -0
  18. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_experimental/bundles/execute.py +0 -0
  19. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_experimental/sla/__init__.py +0 -0
  20. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_experimental/sla/client.py +0 -0
  21. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_experimental/sla/objects.py +0 -0
  22. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/__init__.py +0 -0
  23. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/_logging.py +0 -0
  24. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/compatibility/__init__.py +0 -0
  25. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  26. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/compatibility/blocks.py +0 -0
  27. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  28. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/compatibility/migration.py +0 -0
  29. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/compatibility/starlette.py +0 -0
  30. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/__init__.py +0 -0
  31. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/api.py +0 -0
  32. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/calls.py +0 -0
  33. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  34. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  35. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/inspection.py +0 -0
  36. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/primitives.py +0 -0
  37. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/services.py +0 -0
  38. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/threads.py +0 -0
  39. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/waiters.py +0 -0
  40. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/installation.py +0 -0
  41. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/integrations.py +0 -0
  42. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/pydantic/__init__.py +0 -0
  43. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/pydantic/schemas.py +0 -0
  44. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  45. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  46. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
  47. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/pytz.py +0 -0
  48. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/retries.py +0 -0
  49. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/schemas/__init__.py +0 -0
  50. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/schemas/bases.py +0 -0
  51. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/schemas/fields.py +0 -0
  52. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/schemas/serializers.py +0 -0
  53. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/schemas/validators.py +0 -0
  54. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/uuid7.py +0 -0
  55. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/websockets.py +0 -0
  56. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_result_records.py +0 -0
  57. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_vendor/croniter/__init__.py +0 -0
  58. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_vendor/croniter/croniter.py +0 -0
  59. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_versioning.py +0 -0
  60. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_waiters.py +0 -0
  61. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/agent.py +0 -0
  62. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/artifacts.py +0 -0
  63. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/assets/__init__.py +0 -0
  64. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/assets/core.py +0 -0
  65. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/assets/materialize.py +0 -0
  66. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/automations.py +0 -0
  67. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/blocks/__init__.py +0 -0
  68. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/blocks/abstract.py +0 -0
  69. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/blocks/core.py +0 -0
  70. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/blocks/fields.py +0 -0
  71. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/blocks/notifications.py +0 -0
  72. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/blocks/redis.py +0 -0
  73. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/blocks/system.py +0 -0
  74. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/blocks/webhook.py +0 -0
  75. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/cache_policies.py +0 -0
  76. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/__init__.py +0 -0
  77. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/base.py +0 -0
  78. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/cloud.py +0 -0
  79. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/collections.py +0 -0
  80. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/constants.py +0 -0
  81. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/__init__.py +0 -0
  82. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
  83. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  84. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
  85. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_automations/client.py +0 -0
  86. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
  87. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  88. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
  89. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  90. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
  91. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  92. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
  93. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
  94. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
  95. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_deployments/client.py +0 -0
  96. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
  97. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  98. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
  99. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_flows/client.py +0 -0
  100. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
  101. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_logs/client.py +0 -0
  102. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
  103. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_variables/client.py +0 -0
  104. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
  105. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
  106. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/base.py +0 -0
  107. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/routes.py +0 -0
  108. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/schemas/__init__.py +0 -0
  109. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/schemas/actions.py +0 -0
  110. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/schemas/filters.py +0 -0
  111. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/schemas/objects.py +0 -0
  112. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/schemas/responses.py +0 -0
  113. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/schemas/schedules.py +0 -0
  114. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/schemas/sorting.py +0 -0
  115. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/subscriptions.py +0 -0
  116. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/types/__init__.py +0 -0
  117. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  118. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/utilities.py +0 -0
  119. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/__init__.py +0 -0
  120. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/_asyncio.py +0 -0
  121. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/_events.py +0 -0
  122. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/_leases.py +0 -0
  123. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/asyncio.py +0 -0
  124. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/context.py +0 -0
  125. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/services.py +0 -0
  126. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/sync.py +0 -0
  127. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/v1/__init__.py +0 -0
  128. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  129. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/v1/_events.py +0 -0
  130. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/v1/asyncio.py +0 -0
  131. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/v1/context.py +0 -0
  132. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/v1/services.py +0 -0
  133. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/v1/sync.py +0 -0
  134. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/context.py +0 -0
  135. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/__init__.py +0 -0
  136. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/base.py +0 -0
  137. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/deployments.py +0 -0
  138. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/flow_runs.py +0 -0
  139. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/runner.py +0 -0
  140. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/schedules.py +0 -0
  141. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/steps/__init__.py +0 -0
  142. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/steps/core.py +0 -0
  143. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/steps/pull.py +0 -0
  144. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/steps/utility.py +0 -0
  145. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/docker/__init__.py +0 -0
  146. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/docker/docker_image.py +0 -0
  147. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/engine.py +0 -0
  148. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/__init__.py +0 -0
  149. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/actions.py +0 -0
  150. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/cli/__init__.py +0 -0
  151. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/cli/automations.py +0 -0
  152. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/clients.py +0 -0
  153. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/filters.py +0 -0
  154. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/related.py +0 -0
  155. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/schemas/__init__.py +0 -0
  156. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/schemas/automations.py +0 -0
  157. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  158. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/schemas/events.py +0 -0
  159. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/schemas/labelling.py +0 -0
  160. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/utilities.py +0 -0
  161. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/worker.py +0 -0
  162. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/exceptions.py +0 -0
  163. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/filesystems.py +0 -0
  164. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/flow_engine.py +0 -0
  165. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/flow_runs.py +0 -0
  166. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/flows.py +0 -0
  167. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/futures.py +0 -0
  168. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/infrastructure/__init__.py +0 -0
  169. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/infrastructure/base.py +0 -0
  170. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  171. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  172. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  173. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  174. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  175. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  176. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/input/__init__.py +0 -0
  177. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/input/actions.py +0 -0
  178. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/input/run_input.py +0 -0
  179. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/locking/__init__.py +0 -0
  180. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/locking/filesystem.py +0 -0
  181. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/locking/memory.py +0 -0
  182. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/locking/protocol.py +0 -0
  183. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/logging/__init__.py +0 -0
  184. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/logging/clients.py +0 -0
  185. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/logging/configuration.py +0 -0
  186. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/logging/filters.py +0 -0
  187. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/logging/formatters.py +0 -0
  188. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/logging/handlers.py +0 -0
  189. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/logging/highlighters.py +0 -0
  190. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/logging/loggers.py +0 -0
  191. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/logging/logging.yml +0 -0
  192. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/main.py +0 -0
  193. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/plugins.py +0 -0
  194. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/py.typed +0 -0
  195. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/results.py +0 -0
  196. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runner/__init__.py +0 -0
  197. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runner/_observers.py +0 -0
  198. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runner/runner.py +0 -0
  199. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runner/server.py +0 -0
  200. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runner/storage.py +0 -0
  201. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runner/submit.py +0 -0
  202. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runner/utils.py +0 -0
  203. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runtime/__init__.py +0 -0
  204. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runtime/deployment.py +0 -0
  205. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runtime/flow_run.py +0 -0
  206. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runtime/task_run.py +0 -0
  207. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/schedules.py +0 -0
  208. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/serializers.py +0 -0
  209. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/__init__.py +0 -0
  210. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/admin.py +0 -0
  211. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/artifacts.py +0 -0
  212. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/automations.py +0 -0
  213. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/block_capabilities.py +0 -0
  214. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/block_documents.py +0 -0
  215. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/block_schemas.py +0 -0
  216. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/block_types.py +0 -0
  217. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/clients.py +0 -0
  218. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/collections.py +0 -0
  219. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  220. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/concurrency_limits.py +0 -0
  221. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
  222. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/csrf_token.py +0 -0
  223. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/dependencies.py +0 -0
  224. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/deployments.py +0 -0
  225. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/events.py +0 -0
  226. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/flow_run_states.py +0 -0
  227. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/flow_runs.py +0 -0
  228. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/flows.py +0 -0
  229. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/logs.py +0 -0
  230. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/middleware.py +0 -0
  231. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/root.py +0 -0
  232. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/run_history.py +0 -0
  233. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/saved_searches.py +0 -0
  234. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/server.py +0 -0
  235. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  236. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/task_run_states.py +0 -0
  237. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/task_runs.py +0 -0
  238. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/task_workers.py +0 -0
  239. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/templates.py +0 -0
  240. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/ui/__init__.py +0 -0
  241. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/ui/flow_runs.py +0 -0
  242. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/ui/flows.py +0 -0
  243. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/ui/schemas.py +0 -0
  244. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/ui/task_runs.py +0 -0
  245. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/validation.py +0 -0
  246. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/variables.py +0 -0
  247. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/work_queues.py +0 -0
  248. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/workers.py +0 -0
  249. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/__init__.py +0 -0
  250. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/base.py +0 -0
  251. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/constants.py +0 -0
  252. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/context.py +0 -0
  253. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/legacy.py +0 -0
  254. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/__init__.py +0 -0
  255. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/_defaults.py +0 -0
  256. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/api.py +0 -0
  257. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/cli.py +0 -0
  258. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/cloud.py +0 -0
  259. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/deployments.py +0 -0
  260. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/experiments.py +0 -0
  261. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/flows.py +0 -0
  262. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/internal.py +0 -0
  263. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/logging.py +0 -0
  264. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/results.py +0 -0
  265. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/root.py +0 -0
  266. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/runner.py +0 -0
  267. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/__init__.py +0 -0
  268. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/api.py +0 -0
  269. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/database.py +0 -0
  270. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/deployments.py +0 -0
  271. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/ephemeral.py +0 -0
  272. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/events.py +0 -0
  273. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  274. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/logs.py +0 -0
  275. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/root.py +0 -0
  276. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/services.py +0 -0
  277. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/tasks.py +0 -0
  278. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/ui.py +0 -0
  279. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/tasks.py +0 -0
  280. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/testing.py +0 -0
  281. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/worker.py +0 -0
  282. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/profiles.py +0 -0
  283. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/profiles.toml +0 -0
  284. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/sources.py +0 -0
  285. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/states.py +0 -0
  286. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/task_engine.py +0 -0
  287. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/task_runners.py +0 -0
  288. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/task_runs.py +0 -0
  289. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/task_worker.py +0 -0
  290. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/tasks.py +0 -0
  291. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/telemetry/__init__.py +0 -0
  292. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/telemetry/run_telemetry.py +0 -0
  293. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/transactions.py +0 -0
  294. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/types/_concurrency.py +0 -0
  295. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/types/_datetime.py +0 -0
  296. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/types/entrypoint.py +0 -0
  297. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/types/names.py +0 -0
  298. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/__init__.py +0 -0
  299. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/_ast.py +0 -0
  300. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/_deprecated.py +0 -0
  301. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/_engine.py +0 -0
  302. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/_git.py +0 -0
  303. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/annotations.py +0 -0
  304. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/asyncutils.py +0 -0
  305. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/callables.py +0 -0
  306. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/collections.py +0 -0
  307. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/compat.py +0 -0
  308. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/context.py +0 -0
  309. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/dispatch.py +0 -0
  310. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/dockerutils.py +0 -0
  311. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/filesystem.py +0 -0
  312. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/generics.py +0 -0
  313. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/hashing.py +0 -0
  314. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/importtools.py +0 -0
  315. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/math.py +0 -0
  316. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/names.py +0 -0
  317. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/processutils.py +0 -0
  318. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/pydantic.py +0 -0
  319. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/render_swagger.py +0 -0
  320. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  321. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  322. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/schema_tools/validation.py +0 -0
  323. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/services.py +0 -0
  324. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/slugify.py +0 -0
  325. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/templating.py +0 -0
  326. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/text.py +0 -0
  327. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/timeout.py +0 -0
  328. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/urls.py +0 -0
  329. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/visualization.py +0 -0
  330. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/variables.py +0 -0
  331. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/workers/__init__.py +0 -0
  332. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/workers/base.py +0 -0
  333. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/workers/block.py +0 -0
  334. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/workers/cloud.py +0 -0
  335. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/workers/process.py +0 -0
  336. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/workers/server.py +0 -0
  337. {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/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.21.dev3
3
+ Version: 3.4.21.dev4
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
@@ -0,0 +1,5 @@
1
+ # Generated by versioningit
2
+ __version__ = "3.4.21.dev4"
3
+ __build_date__ = "2025-10-01 08:09:16.922739+00:00"
4
+ __git_commit__ = "80c14743c0c98d4a718fe8fcc93a12f023d88f0b"
5
+ __dirty__ = False
@@ -1,8 +1,11 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import ast
3
4
  import asyncio
4
5
  import base64
5
6
  import gzip
7
+ import importlib
8
+ import inspect
6
9
  import json
7
10
  import logging
8
11
  import multiprocessing
@@ -10,8 +13,10 @@ import multiprocessing.context
10
13
  import os
11
14
  import subprocess
12
15
  import sys
16
+ from contextlib import contextmanager
13
17
  from pathlib import Path
14
18
  import tempfile
19
+ from types import ModuleType
15
20
  from typing import Any, TypedDict
16
21
 
17
22
  import anyio
@@ -69,6 +74,256 @@ def _deserialize_bundle_object(serialized_obj: str) -> Any:
69
74
  return cloudpickle.loads(gzip.decompress(base64.b64decode(serialized_obj)))
70
75
 
71
76
 
77
+ def _is_local_module(module_name: str, module_path: str | None = None) -> bool:
78
+ """
79
+ Check if a module is a local module (not from standard library or site-packages).
80
+
81
+ Args:
82
+ module_name: The name of the module.
83
+ module_path: Optional path to the module file.
84
+
85
+ Returns:
86
+ True if the module is a local module, False otherwise.
87
+ """
88
+ # Skip modules that are known to be problematic or not needed
89
+ skip_modules = {
90
+ "__pycache__",
91
+ # Skip test modules
92
+ "unittest",
93
+ "pytest",
94
+ "test_",
95
+ "_pytest",
96
+ # Skip prefect modules - they'll be available on remote
97
+ "prefect",
98
+ }
99
+
100
+ # Check module name prefixes
101
+ for skip in skip_modules:
102
+ if module_name.startswith(skip):
103
+ return False
104
+
105
+ # Check if it's a built-in module
106
+ if module_name in sys.builtin_module_names:
107
+ return False
108
+
109
+ # Check if it's in the standard library (Python 3.10+)
110
+ if hasattr(sys, "stdlib_module_names"):
111
+ # Check both full module name and base module name
112
+ base_module = module_name.split(".")[0]
113
+ if (
114
+ module_name in sys.stdlib_module_names
115
+ or base_module in sys.stdlib_module_names
116
+ ):
117
+ return False
118
+
119
+ # If we have the module path, check if it's in site-packages or dist-packages
120
+ if module_path:
121
+ path_str = str(module_path)
122
+ # Also exclude standard library paths
123
+ if (
124
+ "site-packages" in path_str
125
+ or "dist-packages" in path_str
126
+ or "/lib/python" in path_str
127
+ or "/.venv/" in path_str
128
+ ):
129
+ return False
130
+ else:
131
+ # Try to import the module to get its path
132
+ try:
133
+ module = importlib.import_module(module_name)
134
+ if hasattr(module, "__file__") and module.__file__:
135
+ path_str = str(module.__file__)
136
+ if (
137
+ "site-packages" in path_str
138
+ or "dist-packages" in path_str
139
+ or "/lib/python" in path_str
140
+ or "/.venv/" in path_str
141
+ ):
142
+ return False
143
+ except (ImportError, AttributeError):
144
+ # If we can't import it, it's probably not a real module
145
+ return False
146
+
147
+ # Only consider it local if it exists and we can verify it
148
+ return True
149
+
150
+
151
+ def _extract_imports_from_source(source_code: str) -> set[str]:
152
+ """
153
+ Extract all import statements from Python source code.
154
+
155
+ Args:
156
+ source_code: The Python source code to analyze.
157
+
158
+ Returns:
159
+ A set of imported module names.
160
+ """
161
+ imports: set[str] = set()
162
+
163
+ try:
164
+ tree = ast.parse(source_code)
165
+ except SyntaxError:
166
+ logger.debug("Failed to parse source code for import extraction")
167
+ return imports
168
+
169
+ for node in ast.walk(tree):
170
+ if isinstance(node, ast.Import):
171
+ for alias in node.names:
172
+ imports.add(alias.name)
173
+ elif isinstance(node, ast.ImportFrom):
174
+ if node.module:
175
+ imports.add(node.module)
176
+ # Don't add individual imported items as they might be classes/functions
177
+ # Only track the module itself
178
+
179
+ return imports
180
+
181
+
182
+ def _discover_local_dependencies(
183
+ flow: Flow[Any, Any], visited: set[str] | None = None
184
+ ) -> set[str]:
185
+ """
186
+ Recursively discover local module dependencies of a flow.
187
+
188
+ Args:
189
+ flow: The flow to analyze.
190
+ visited: Set of already visited modules to avoid infinite recursion.
191
+
192
+ Returns:
193
+ A set of local module names that should be serialized by value.
194
+ """
195
+ if visited is None:
196
+ visited = set()
197
+
198
+ local_modules: set[str] = set()
199
+
200
+ # Get the module containing the flow
201
+ try:
202
+ flow_module = inspect.getmodule(flow.fn)
203
+ except (AttributeError, TypeError):
204
+ # Flow function doesn't have a module (e.g., defined in REPL)
205
+ return local_modules
206
+
207
+ if not flow_module:
208
+ return local_modules
209
+
210
+ module_name = flow_module.__name__
211
+
212
+ # Skip if we've already processed this module
213
+ if module_name in visited:
214
+ return local_modules
215
+ visited.add(module_name)
216
+
217
+ # Check if the flow's module itself is local
218
+ module_file = getattr(flow_module, "__file__", None)
219
+ if not module_file or not _is_local_module(module_name, module_file):
220
+ return local_modules
221
+
222
+ local_modules.add(module_name)
223
+
224
+ # Get the source code of the module
225
+ try:
226
+ source_code = inspect.getsource(flow_module)
227
+ except (OSError, TypeError):
228
+ # Can't get source for the flow's module
229
+ return local_modules
230
+
231
+ imports = _extract_imports_from_source(source_code)
232
+
233
+ # Check each import to see if it's local
234
+ for import_name in imports:
235
+ # Skip if already visited
236
+ if import_name in visited:
237
+ continue
238
+
239
+ # Try to resolve the import
240
+ imported_module = None
241
+ try:
242
+ # Handle relative imports by resolving them
243
+ if module_name and "." in module_name:
244
+ package = ".".join(module_name.split(".")[:-1])
245
+ try:
246
+ imported_module = importlib.import_module(import_name, package)
247
+ except ImportError:
248
+ imported_module = importlib.import_module(import_name)
249
+ else:
250
+ imported_module = importlib.import_module(import_name)
251
+ except (ImportError, AttributeError):
252
+ # Can't import or module has no __file__, skip it
253
+ continue
254
+
255
+ imported_file = getattr(imported_module, "__file__", None)
256
+ if not imported_file or not _is_local_module(import_name, imported_file):
257
+ continue
258
+
259
+ local_modules.add(import_name)
260
+ visited.add(import_name)
261
+
262
+ # Recursively check this module's dependencies
263
+ try:
264
+ imported_source = inspect.getsource(imported_module)
265
+ except (OSError, TypeError):
266
+ # Can't get source for this module, skip its dependencies
267
+ continue
268
+
269
+ nested_imports = _extract_imports_from_source(imported_source)
270
+ for nested_import in nested_imports:
271
+ if nested_import not in visited and _is_local_module(nested_import):
272
+ local_modules.add(nested_import)
273
+ visited.add(nested_import)
274
+
275
+ return local_modules
276
+
277
+
278
+ @contextmanager
279
+ def _pickle_local_modules_by_value(flow: Flow[Any, Any]):
280
+ """
281
+ Context manager that registers local modules for pickle-by-value serialization.
282
+
283
+ Args:
284
+ flow: The flow whose dependencies should be registered.
285
+ """
286
+ registered_modules: list[ModuleType] = []
287
+
288
+ try:
289
+ # Discover local dependencies
290
+ local_modules = _discover_local_dependencies(flow)
291
+ logger.debug("Local modules: %s", local_modules)
292
+
293
+ if local_modules:
294
+ logger.debug(
295
+ "Registering local modules for pickle-by-value serialization: %s",
296
+ ", ".join(local_modules),
297
+ )
298
+
299
+ # Register each local module for pickle-by-value
300
+ for module_name in local_modules:
301
+ try:
302
+ module = importlib.import_module(module_name)
303
+ cloudpickle.register_pickle_by_value(module) # pyright: ignore[reportUnknownMemberType] Missing stubs
304
+ registered_modules.append(module)
305
+ except (ImportError, AttributeError) as e:
306
+ logger.debug(
307
+ "Failed to register module %s for pickle-by-value: %s",
308
+ module_name,
309
+ e,
310
+ )
311
+
312
+ yield
313
+
314
+ finally:
315
+ # Unregister all modules we registered
316
+ for module in registered_modules:
317
+ try:
318
+ cloudpickle.unregister_pickle_by_value(module) # pyright: ignore[reportUnknownMemberType] Missing stubs
319
+ except Exception as e:
320
+ logger.debug(
321
+ "Failed to unregister module %s from pickle-by-value: %s",
322
+ getattr(module, "__name__", module),
323
+ e,
324
+ )
325
+
326
+
72
327
  def create_bundle_for_flow_run(
73
328
  flow: Flow[Any, Any],
74
329
  flow_run: FlowRun,
@@ -120,12 +375,14 @@ def create_bundle_for_flow_run(
120
375
  "\n".join(file_dependencies),
121
376
  )
122
377
 
123
- return {
124
- "function": _serialize_bundle_object(flow),
125
- "context": _serialize_bundle_object(context),
126
- "flow_run": flow_run.model_dump(mode="json"),
127
- "dependencies": dependencies,
128
- }
378
+ # Automatically register local modules for pickle-by-value serialization
379
+ with _pickle_local_modules_by_value(flow):
380
+ return {
381
+ "function": _serialize_bundle_object(flow),
382
+ "context": _serialize_bundle_object(context),
383
+ "flow_run": flow_run.model_dump(mode="json"),
384
+ "dependencies": dependencies,
385
+ }
129
386
 
130
387
 
131
388
  def extract_flow_from_bundle(bundle: SerializedBundle) -> Flow[Any, Any]:
@@ -1,4 +1,4 @@
1
- from typing import ClassVar, Dict
1
+ from typing import ClassVar
2
2
 
3
3
  from pydantic import AliasChoices, AliasPath, Field
4
4
  from pydantic_settings import SettingsConfigDict
@@ -7,7 +7,7 @@ from prefect.settings.base import (
7
7
  PrefectBaseSettings,
8
8
  build_settings_config,
9
9
  )
10
- from prefect.types import ClientRetryExtraCodes
10
+ from prefect.types import ClientRetryExtraCodes, JsonStringOrDict
11
11
 
12
12
 
13
13
  class ClientMetricsSettings(PrefectBaseSettings):
@@ -87,8 +87,7 @@ class ClientSettings(PrefectBaseSettings):
87
87
  """,
88
88
  )
89
89
 
90
- # this needs to be typing.Dict for now as dict[str, str] is not compatible with pydantic < 2.11
91
- custom_headers: Dict[str, str] = Field(
90
+ custom_headers: JsonStringOrDict = Field(
92
91
  default_factory=dict,
93
92
  description="""
94
93
  Custom HTTP headers to include with every API request to the Prefect server.
@@ -1,6 +1,6 @@
1
1
  from typing import ClassVar
2
2
 
3
- from pydantic import Field
3
+ from pydantic import AliasChoices, AliasPath, Field
4
4
  from pydantic_settings import SettingsConfigDict
5
5
 
6
6
  from prefect.settings.base import PrefectBaseSettings, build_settings_config
@@ -15,3 +15,14 @@ class ServerConcurrencySettings(PrefectBaseSettings):
15
15
  default="prefect.server.concurrency.lease_storage.memory",
16
16
  description="The module to use for storing concurrency limit leases.",
17
17
  )
18
+
19
+ initial_lease_timeout: float = Field(
20
+ default=300.0,
21
+ ge=30.0, # Minimum 30 seconds
22
+ le=3600.0, # Maximum 1 hour
23
+ description="Initial timeout for concurrency lease acquisition in seconds.",
24
+ validation_alias=AliasChoices(
25
+ AliasPath("initial_lease_timeout"),
26
+ "prefect_server_concurrency_initial_lease_timeout",
27
+ ),
28
+ )
@@ -214,12 +214,33 @@ KeyValueLabelsField = Annotated[
214
214
  ]
215
215
 
216
216
 
217
+ def _deserialize_dict_if_string(value: Any) -> dict[str, str]:
218
+ """
219
+ Useful when a value is sometimes passed as a string or natively as a dict.
220
+
221
+ Example, setting the custom headers via the CLI involves passing a string format of a dict:
222
+ ```
223
+ prefect settings set PREFECT_CLIENT_CUSTOM_HEADERS='{"X-Test-Header": "test-value", "Authorization": "Bearer token123"}'
224
+ ```
225
+ """
226
+ if isinstance(value, str):
227
+ return orjson.loads(value)
228
+ return value
229
+
230
+
231
+ JsonStringOrDict = Annotated[
232
+ dict[str, str],
233
+ BeforeValidator(_deserialize_dict_if_string),
234
+ ]
235
+
236
+
217
237
  __all__ = [
218
238
  "BANNED_CHARACTERS",
219
239
  "WITHOUT_BANNED_CHARACTERS",
220
240
  "ClientRetryExtraCodes",
221
241
  "Date",
222
242
  "DateTime",
243
+ "JsonStringOrDict",
223
244
  "LogLevel",
224
245
  "KeyValueLabelsField",
225
246
  "MAX_VARIABLE_NAME_LENGTH",
@@ -703,6 +703,13 @@ def emit_task_run_state_change_event(
703
703
  "prefect.state-type": str(validated_state.type.value),
704
704
  "prefect.orchestration": "client",
705
705
  },
706
+ related=[
707
+ {
708
+ "prefect.resource.id": f"prefect.tag.{tag}",
709
+ "prefect.resource.role": "tag",
710
+ }
711
+ for tag in sorted(task_run.tags)
712
+ ],
706
713
  follows=follows,
707
714
  )
708
715
 
@@ -1,5 +0,0 @@
1
- # Generated by versioningit
2
- __version__ = "3.4.21.dev3"
3
- __build_date__ = "2025-09-30 08:09:39.936874+00:00"
4
- __git_commit__ = "24acc22aa1f862b7869d80a8af69272175448e11"
5
- __dirty__ = False