prefect-client 3.3.8.dev2__tar.gz → 3.3.8.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 (327) hide show
  1. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/PKG-INFO +1 -1
  2. prefect_client-3.3.8.dev4/src/prefect/_build_info.py +5 -0
  3. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/schemas/validators.py +0 -19
  4. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/blocks/core.py +5 -5
  5. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/__init__.py +0 -149
  6. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/routes.py +0 -3
  7. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/schemas/actions.py +1 -47
  8. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/schemas/filters.py +0 -20
  9. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/schemas/objects.py +1 -52
  10. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/deployments/steps/pull.py +6 -0
  11. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/futures.py +1 -14
  12. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/runner/storage.py +110 -20
  13. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/__init__.py +0 -1
  14. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/server.py +0 -1
  15. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/server/services.py +0 -24
  16. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/task_engine.py +35 -17
  17. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/task_runners.py +6 -0
  18. prefect_client-3.3.8.dev2/src/prefect/_build_info.py +0 -5
  19. prefect_client-3.3.8.dev2/src/prefect/server/api/flow_run_notification_policies.py +0 -122
  20. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/.gitignore +0 -0
  21. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/LICENSE +0 -0
  22. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/README.md +0 -0
  23. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/pyproject.toml +0 -0
  24. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/.prefectignore +0 -0
  25. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/__init__.py +0 -0
  26. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/__main__.py +0 -0
  27. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_experimental/__init__.py +0 -0
  28. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_experimental/bundles/__init__.py +0 -0
  29. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_experimental/bundles/execute.py +0 -0
  30. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_experimental/lineage.py +0 -0
  31. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_experimental/sla/__init__.py +0 -0
  32. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_experimental/sla/client.py +0 -0
  33. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_experimental/sla/objects.py +0 -0
  34. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/__init__.py +0 -0
  35. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/_logging.py +0 -0
  36. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/compatibility/__init__.py +0 -0
  37. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  38. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  39. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/compatibility/migration.py +0 -0
  40. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/concurrency/__init__.py +0 -0
  41. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/concurrency/api.py +0 -0
  42. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/concurrency/calls.py +0 -0
  43. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  44. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  45. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/concurrency/inspection.py +0 -0
  46. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/concurrency/primitives.py +0 -0
  47. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/concurrency/services.py +0 -0
  48. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/concurrency/threads.py +0 -0
  49. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/concurrency/waiters.py +0 -0
  50. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/integrations.py +0 -0
  51. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/pydantic/__init__.py +0 -0
  52. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/pydantic/schemas.py +0 -0
  53. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  54. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  55. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
  56. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/pytz.py +0 -0
  57. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/retries.py +0 -0
  58. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/schemas/__init__.py +0 -0
  59. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/schemas/bases.py +0 -0
  60. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/schemas/fields.py +0 -0
  61. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_internal/schemas/serializers.py +0 -0
  62. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_result_records.py +0 -0
  63. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_vendor/croniter/__init__.py +0 -0
  64. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_vendor/croniter/croniter.py +0 -0
  65. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_versioning.py +0 -0
  66. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/_waiters.py +0 -0
  67. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/agent.py +0 -0
  68. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/artifacts.py +0 -0
  69. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/automations.py +0 -0
  70. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/blocks/__init__.py +0 -0
  71. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/blocks/abstract.py +0 -0
  72. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/blocks/fields.py +0 -0
  73. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/blocks/notifications.py +0 -0
  74. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/blocks/redis.py +0 -0
  75. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/blocks/system.py +0 -0
  76. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/blocks/webhook.py +0 -0
  77. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/cache_policies.py +0 -0
  78. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/__init__.py +0 -0
  79. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/base.py +0 -0
  80. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/cloud.py +0 -0
  81. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/collections.py +0 -0
  82. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/constants.py +0 -0
  83. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
  84. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  85. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
  86. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_automations/client.py +0 -0
  87. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
  88. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  89. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
  90. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  91. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
  92. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  93. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
  94. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
  95. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
  96. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_deployments/client.py +0 -0
  97. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
  98. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  99. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
  100. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_flows/client.py +0 -0
  101. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
  102. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_logs/client.py +0 -0
  103. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
  104. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_variables/client.py +0 -0
  105. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
  106. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
  107. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/orchestration/base.py +0 -0
  108. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/schemas/__init__.py +0 -0
  109. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/schemas/responses.py +0 -0
  110. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/schemas/schedules.py +0 -0
  111. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/schemas/sorting.py +0 -0
  112. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/subscriptions.py +0 -0
  113. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/types/__init__.py +0 -0
  114. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  115. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/client/utilities.py +0 -0
  116. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/concurrency/__init__.py +0 -0
  117. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/concurrency/_asyncio.py +0 -0
  118. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/concurrency/_events.py +0 -0
  119. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/concurrency/asyncio.py +0 -0
  120. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/concurrency/context.py +0 -0
  121. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/concurrency/services.py +0 -0
  122. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/concurrency/sync.py +0 -0
  123. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/concurrency/v1/__init__.py +0 -0
  124. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  125. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/concurrency/v1/_events.py +0 -0
  126. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/concurrency/v1/asyncio.py +0 -0
  127. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/concurrency/v1/context.py +0 -0
  128. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/concurrency/v1/services.py +0 -0
  129. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/concurrency/v1/sync.py +0 -0
  130. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/context.py +0 -0
  131. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/deployments/__init__.py +0 -0
  132. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/deployments/base.py +0 -0
  133. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/deployments/deployments.py +0 -0
  134. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/deployments/flow_runs.py +0 -0
  135. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/deployments/runner.py +0 -0
  136. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/deployments/schedules.py +0 -0
  137. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/deployments/steps/__init__.py +0 -0
  138. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/deployments/steps/core.py +0 -0
  139. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/deployments/steps/utility.py +0 -0
  140. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/docker/__init__.py +0 -0
  141. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/docker/docker_image.py +0 -0
  142. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/engine.py +0 -0
  143. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/events/__init__.py +0 -0
  144. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/events/actions.py +0 -0
  145. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/events/cli/__init__.py +0 -0
  146. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/events/cli/automations.py +0 -0
  147. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/events/clients.py +0 -0
  148. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/events/filters.py +0 -0
  149. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/events/related.py +0 -0
  150. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/events/schemas/__init__.py +0 -0
  151. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/events/schemas/automations.py +0 -0
  152. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  153. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/events/schemas/events.py +0 -0
  154. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/events/schemas/labelling.py +0 -0
  155. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/events/utilities.py +0 -0
  156. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/events/worker.py +0 -0
  157. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/exceptions.py +0 -0
  158. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/filesystems.py +0 -0
  159. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/flow_engine.py +0 -0
  160. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/flow_runs.py +0 -0
  161. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/flows.py +0 -0
  162. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/infrastructure/__init__.py +0 -0
  163. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/infrastructure/base.py +0 -0
  164. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  165. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  166. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  167. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  168. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  169. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  170. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/input/__init__.py +0 -0
  171. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/input/actions.py +0 -0
  172. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/input/run_input.py +0 -0
  173. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/locking/__init__.py +0 -0
  174. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/locking/filesystem.py +0 -0
  175. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/locking/memory.py +0 -0
  176. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/locking/protocol.py +0 -0
  177. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/logging/__init__.py +0 -0
  178. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/logging/configuration.py +0 -0
  179. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/logging/filters.py +0 -0
  180. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/logging/formatters.py +0 -0
  181. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/logging/handlers.py +0 -0
  182. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/logging/highlighters.py +0 -0
  183. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/logging/loggers.py +0 -0
  184. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/logging/logging.yml +0 -0
  185. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/main.py +0 -0
  186. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/plugins.py +0 -0
  187. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/py.typed +0 -0
  188. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/results.py +0 -0
  189. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/runner/__init__.py +0 -0
  190. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/runner/runner.py +0 -0
  191. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/runner/server.py +0 -0
  192. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/runner/submit.py +0 -0
  193. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/runner/utils.py +0 -0
  194. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/runtime/__init__.py +0 -0
  195. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/runtime/deployment.py +0 -0
  196. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/runtime/flow_run.py +0 -0
  197. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/runtime/task_run.py +0 -0
  198. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/schedules.py +0 -0
  199. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/serializers.py +0 -0
  200. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/admin.py +0 -0
  201. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/artifacts.py +0 -0
  202. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/automations.py +0 -0
  203. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/block_capabilities.py +0 -0
  204. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/block_documents.py +0 -0
  205. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/block_schemas.py +0 -0
  206. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/block_types.py +0 -0
  207. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/clients.py +0 -0
  208. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/collections.py +0 -0
  209. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  210. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/concurrency_limits.py +0 -0
  211. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
  212. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/csrf_token.py +0 -0
  213. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/dependencies.py +0 -0
  214. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/deployments.py +0 -0
  215. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/events.py +0 -0
  216. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/flow_run_states.py +0 -0
  217. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/flow_runs.py +0 -0
  218. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/flows.py +0 -0
  219. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/logs.py +0 -0
  220. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/middleware.py +0 -0
  221. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/root.py +0 -0
  222. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/run_history.py +0 -0
  223. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/saved_searches.py +0 -0
  224. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  225. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/task_run_states.py +0 -0
  226. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/task_runs.py +0 -0
  227. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/task_workers.py +0 -0
  228. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/templates.py +0 -0
  229. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/ui/__init__.py +0 -0
  230. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/ui/flow_runs.py +0 -0
  231. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/ui/flows.py +0 -0
  232. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/ui/schemas.py +0 -0
  233. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/ui/task_runs.py +0 -0
  234. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/validation.py +0 -0
  235. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/variables.py +0 -0
  236. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/work_queues.py +0 -0
  237. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/server/api/workers.py +0 -0
  238. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/__init__.py +0 -0
  239. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/base.py +0 -0
  240. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/constants.py +0 -0
  241. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/context.py +0 -0
  242. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/legacy.py +0 -0
  243. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/__init__.py +0 -0
  244. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/api.py +0 -0
  245. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/cli.py +0 -0
  246. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/client.py +0 -0
  247. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/cloud.py +0 -0
  248. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/deployments.py +0 -0
  249. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/experiments.py +0 -0
  250. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/flows.py +0 -0
  251. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/internal.py +0 -0
  252. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/logging.py +0 -0
  253. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/results.py +0 -0
  254. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/root.py +0 -0
  255. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/runner.py +0 -0
  256. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/server/__init__.py +0 -0
  257. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/server/api.py +0 -0
  258. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/server/database.py +0 -0
  259. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/server/deployments.py +0 -0
  260. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/server/ephemeral.py +0 -0
  261. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/server/events.py +0 -0
  262. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  263. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/server/root.py +0 -0
  264. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/server/tasks.py +0 -0
  265. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/server/ui.py +0 -0
  266. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/tasks.py +0 -0
  267. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/testing.py +0 -0
  268. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/models/worker.py +0 -0
  269. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/profiles.py +0 -0
  270. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/profiles.toml +0 -0
  271. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/settings/sources.py +0 -0
  272. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/states.py +0 -0
  273. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/task_runs.py +0 -0
  274. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/task_worker.py +0 -0
  275. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/tasks.py +0 -0
  276. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/telemetry/__init__.py +0 -0
  277. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/telemetry/bootstrap.py +0 -0
  278. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/telemetry/instrumentation.py +0 -0
  279. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/telemetry/logging.py +0 -0
  280. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/telemetry/processors.py +0 -0
  281. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/telemetry/run_telemetry.py +0 -0
  282. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/telemetry/services.py +0 -0
  283. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/transactions.py +0 -0
  284. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/types/__init__.py +0 -0
  285. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/types/_datetime.py +0 -0
  286. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/types/entrypoint.py +0 -0
  287. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/__init__.py +0 -0
  288. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/_ast.py +0 -0
  289. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/_deprecated.py +0 -0
  290. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/_engine.py +0 -0
  291. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/_git.py +0 -0
  292. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/annotations.py +0 -0
  293. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/asyncutils.py +0 -0
  294. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/callables.py +0 -0
  295. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/collections.py +0 -0
  296. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/compat.py +0 -0
  297. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/context.py +0 -0
  298. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/dispatch.py +0 -0
  299. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/dockerutils.py +0 -0
  300. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/engine.py +0 -0
  301. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/filesystem.py +0 -0
  302. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/generics.py +0 -0
  303. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/hashing.py +0 -0
  304. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/importtools.py +0 -0
  305. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/math.py +0 -0
  306. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/names.py +0 -0
  307. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/processutils.py +0 -0
  308. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/pydantic.py +0 -0
  309. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/render_swagger.py +0 -0
  310. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  311. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  312. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/schema_tools/validation.py +0 -0
  313. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/services.py +0 -0
  314. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/slugify.py +0 -0
  315. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/templating.py +0 -0
  316. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/text.py +0 -0
  317. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/timeout.py +0 -0
  318. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/urls.py +0 -0
  319. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/utilities/visualization.py +0 -0
  320. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/variables.py +0 -0
  321. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/workers/__init__.py +0 -0
  322. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/workers/base.py +0 -0
  323. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/workers/block.py +0 -0
  324. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/workers/cloud.py +0 -0
  325. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/workers/process.py +0 -0
  326. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.dev4}/src/prefect/workers/server.py +0 -0
  327. {prefect_client-3.3.8.dev2 → prefect_client-3.3.8.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.3.8.dev2
3
+ Version: 3.3.8.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.3.8.dev4"
3
+ __build_date__ = "2025-05-02 08:08:48.097027+00:00"
4
+ __git_commit__ = "5d6e0c61baba4513aa9744c942297d645fc4db2c"
5
+ __dirty__ = False
@@ -485,25 +485,6 @@ def validate_not_negative(v: Optional[float]) -> Optional[float]:
485
485
  return v
486
486
 
487
487
 
488
- @overload
489
- def validate_message_template_variables(v: str) -> str: ...
490
-
491
-
492
- @overload
493
- def validate_message_template_variables(v: None) -> None: ...
494
-
495
-
496
- def validate_message_template_variables(v: Optional[str]) -> Optional[str]:
497
- from prefect.client.schemas.objects import FLOW_RUN_NOTIFICATION_TEMPLATE_KWARGS
498
-
499
- if v is not None:
500
- try:
501
- v.format(**{k: "test" for k in FLOW_RUN_NOTIFICATION_TEMPLATE_KWARGS})
502
- except KeyError as exc:
503
- raise ValueError(f"Invalid template variable provided: '{exc.args[0]}'")
504
- return v
505
-
506
-
507
488
  def validate_default_queue_id_not_none(v: Optional[UUID]) -> UUID:
508
489
  if v is None:
509
490
  raise ValueError(
@@ -374,15 +374,15 @@ class Block(BaseModel, ABC):
374
374
  for field_name in type(self).model_fields
375
375
  }
376
376
  )
377
- if extra_fields := {
377
+ extra_fields = {
378
378
  "block_type_slug": self.get_block_type_slug(),
379
379
  "_block_document_id": self._block_document_id,
380
380
  "_block_document_name": self._block_document_name,
381
381
  "_is_anonymous": self._is_anonymous,
382
- }:
383
- jsonable_self |= {
384
- key: value for key, value in extra_fields.items() if value is not None
385
- }
382
+ }
383
+ jsonable_self |= {
384
+ key: value for key, value in extra_fields.items() if value is not None
385
+ }
386
386
  return jsonable_self
387
387
 
388
388
  @classmethod
@@ -87,8 +87,6 @@ import prefect.states
87
87
  from prefect.client.constants import SERVER_API_VERSION
88
88
  from prefect.client.schemas import FlowRun, OrchestrationResult, TaskRun
89
89
  from prefect.client.schemas.actions import (
90
- FlowRunNotificationPolicyCreate,
91
- FlowRunNotificationPolicyUpdate,
92
90
  TaskRunCreate,
93
91
  TaskRunUpdate,
94
92
  WorkQueueCreate,
@@ -98,14 +96,12 @@ from prefect.client.schemas.filters import (
98
96
  DeploymentFilter,
99
97
  FlowFilter,
100
98
  FlowRunFilter,
101
- FlowRunNotificationPolicyFilter,
102
99
  TaskRunFilter,
103
100
  WorkQueueFilter,
104
101
  WorkQueueFilterName,
105
102
  )
106
103
  from prefect.client.schemas.objects import (
107
104
  Constant,
108
- FlowRunNotificationPolicy,
109
105
  Parameter,
110
106
  TaskRunPolicy,
111
107
  TaskRunResult,
@@ -962,151 +958,6 @@ class PrefectClient(
962
958
  response.json()
963
959
  )
964
960
 
965
- async def create_flow_run_notification_policy(
966
- self,
967
- block_document_id: UUID,
968
- is_active: bool = True,
969
- tags: Optional[list[str]] = None,
970
- state_names: Optional[list[str]] = None,
971
- message_template: Optional[str] = None,
972
- ) -> UUID:
973
- """
974
- Create a notification policy for flow runs
975
-
976
- Args:
977
- block_document_id: The block document UUID
978
- is_active: Whether the notification policy is active
979
- tags: List of flow tags
980
- state_names: List of state names
981
- message_template: Notification message template
982
- """
983
- if tags is None:
984
- tags = []
985
- if state_names is None:
986
- state_names = []
987
-
988
- policy = FlowRunNotificationPolicyCreate(
989
- block_document_id=block_document_id,
990
- is_active=is_active,
991
- tags=tags,
992
- state_names=state_names,
993
- message_template=message_template,
994
- )
995
- response = await self._client.post(
996
- "/flow_run_notification_policies/",
997
- json=policy.model_dump(mode="json"),
998
- )
999
-
1000
- policy_id = response.json().get("id")
1001
- if not policy_id:
1002
- raise httpx.RequestError(f"Malformed response: {response}")
1003
-
1004
- return UUID(policy_id)
1005
-
1006
- async def delete_flow_run_notification_policy(
1007
- self,
1008
- id: UUID,
1009
- ) -> None:
1010
- """
1011
- Delete a flow run notification policy by id.
1012
-
1013
- Args:
1014
- id: UUID of the flow run notification policy to delete.
1015
- Raises:
1016
- prefect.exceptions.ObjectNotFound: If request returns 404
1017
- httpx.RequestError: If requests fails
1018
- """
1019
- try:
1020
- await self._client.delete(f"/flow_run_notification_policies/{id}")
1021
- except httpx.HTTPStatusError as e:
1022
- if e.response.status_code == status.HTTP_404_NOT_FOUND:
1023
- raise prefect.exceptions.ObjectNotFound(http_exc=e) from e
1024
- else:
1025
- raise
1026
-
1027
- async def update_flow_run_notification_policy(
1028
- self,
1029
- id: UUID,
1030
- block_document_id: Optional[UUID] = None,
1031
- is_active: Optional[bool] = None,
1032
- tags: Optional[list[str]] = None,
1033
- state_names: Optional[list[str]] = None,
1034
- message_template: Optional[str] = None,
1035
- ) -> None:
1036
- """
1037
- Update a notification policy for flow runs
1038
-
1039
- Args:
1040
- id: UUID of the notification policy
1041
- block_document_id: The block document UUID
1042
- is_active: Whether the notification policy is active
1043
- tags: List of flow tags
1044
- state_names: List of state names
1045
- message_template: Notification message template
1046
- Raises:
1047
- prefect.exceptions.ObjectNotFound: If request returns 404
1048
- httpx.RequestError: If requests fails
1049
- """
1050
- params: dict[str, Any] = {}
1051
- if block_document_id is not None:
1052
- params["block_document_id"] = block_document_id
1053
- if is_active is not None:
1054
- params["is_active"] = is_active
1055
- if tags is not None:
1056
- params["tags"] = tags
1057
- if state_names is not None:
1058
- params["state_names"] = state_names
1059
- if message_template is not None:
1060
- params["message_template"] = message_template
1061
-
1062
- policy = FlowRunNotificationPolicyUpdate(**params)
1063
-
1064
- try:
1065
- await self._client.patch(
1066
- f"/flow_run_notification_policies/{id}",
1067
- json=policy.model_dump(mode="json", exclude_unset=True),
1068
- )
1069
- except httpx.HTTPStatusError as e:
1070
- if e.response.status_code == status.HTTP_404_NOT_FOUND:
1071
- raise prefect.exceptions.ObjectNotFound(http_exc=e) from e
1072
- else:
1073
- raise
1074
-
1075
- async def read_flow_run_notification_policies(
1076
- self,
1077
- flow_run_notification_policy_filter: FlowRunNotificationPolicyFilter,
1078
- limit: Optional[int] = None,
1079
- offset: int = 0,
1080
- ) -> list[FlowRunNotificationPolicy]:
1081
- """
1082
- Query the Prefect API for flow run notification policies. Only policies matching all criteria will
1083
- be returned.
1084
-
1085
- Args:
1086
- flow_run_notification_policy_filter: filter criteria for notification policies
1087
- limit: a limit for the notification policies query
1088
- offset: an offset for the notification policies query
1089
-
1090
- Returns:
1091
- a list of FlowRunNotificationPolicy model representations
1092
- of the notification policies
1093
- """
1094
- body: dict[str, Any] = {
1095
- "flow_run_notification_policy_filter": (
1096
- flow_run_notification_policy_filter.model_dump(mode="json")
1097
- if flow_run_notification_policy_filter
1098
- else None
1099
- ),
1100
- "limit": limit,
1101
- "offset": offset,
1102
- }
1103
- response = await self._client.post(
1104
- "/flow_run_notification_policies/filter", json=body
1105
- )
1106
- return pydantic.TypeAdapter(list[FlowRunNotificationPolicy]).validate_python(
1107
- response.json()
1108
- )
1109
-
1110
961
  async def read_work_queues(
1111
962
  self,
1112
963
  work_pool_name: Optional[str] = None,
@@ -63,9 +63,6 @@ ServerRoutes = Literal[
63
63
  "/events/count-by/{countable}",
64
64
  "/events/filter",
65
65
  "/events/filter/next",
66
- "/flow_run_notification_policies/",
67
- "/flow_run_notification_policies/{id}",
68
- "/flow_run_notification_policies/filter",
69
66
  "/flow_run_states/",
70
67
  "/flow_run_states/{id}",
71
68
  "/flow_runs/",
@@ -15,7 +15,6 @@ from prefect._internal.schemas.validators import (
15
15
  validate_artifact_key,
16
16
  validate_block_document_name,
17
17
  validate_block_type_slug,
18
- validate_message_template_variables,
19
18
  validate_name_present_on_nonanonymous_blocks,
20
19
  validate_schedule_max_scheduled_runs,
21
20
  validate_variable_name,
@@ -46,7 +45,7 @@ from prefect.types import (
46
45
  PositiveInteger,
47
46
  StrictVariableValue,
48
47
  )
49
- from prefect.utilities.collections import listrepr, visit_collection
48
+ from prefect.utilities.collections import visit_collection
50
49
  from prefect.utilities.pydantic import get_class_fields_only
51
50
 
52
51
  if TYPE_CHECKING:
@@ -812,51 +811,6 @@ class WorkQueueUpdate(ActionBaseModel):
812
811
  )
813
812
 
814
813
 
815
- class FlowRunNotificationPolicyCreate(ActionBaseModel):
816
- """Data used by the Prefect REST API to create a flow run notification policy."""
817
-
818
- is_active: bool = Field(
819
- default=True, description="Whether the policy is currently active"
820
- )
821
- state_names: list[str] = Field(
822
- default=..., description="The flow run states that trigger notifications"
823
- )
824
- tags: list[str] = Field(
825
- default=...,
826
- description="The flow run tags that trigger notifications (set [] to disable)",
827
- )
828
- block_document_id: UUID = Field(
829
- default=..., description="The block document ID used for sending notifications"
830
- )
831
- message_template: Optional[str] = Field(
832
- default=None,
833
- description=(
834
- "A templatable notification message. Use {braces} to add variables."
835
- " Valid variables include:"
836
- f" {listrepr(sorted(objects.FLOW_RUN_NOTIFICATION_TEMPLATE_KWARGS), sep=', ')}"
837
- ),
838
- examples=[
839
- "Flow run {flow_run_name} with id {flow_run_id} entered state"
840
- " {flow_run_state_name}."
841
- ],
842
- )
843
-
844
- @field_validator("message_template")
845
- @classmethod
846
- def validate_message_template_variables(cls, v: Optional[str]) -> Optional[str]:
847
- return validate_message_template_variables(v)
848
-
849
-
850
- class FlowRunNotificationPolicyUpdate(ActionBaseModel):
851
- """Data used by the Prefect REST API to update a flow run notification policy."""
852
-
853
- is_active: Optional[bool] = Field(default=None)
854
- state_names: Optional[list[str]] = Field(default=None)
855
- tags: Optional[list[str]] = Field(default=None)
856
- block_document_id: Optional[UUID] = Field(default=None)
857
- message_template: Optional[str] = Field(default=None)
858
-
859
-
860
814
  class ArtifactCreate(ActionBaseModel):
861
815
  """Data used by the Prefect REST API to create an artifact."""
862
816
 
@@ -799,26 +799,6 @@ class BlockDocumentFilter(PrefectBaseModel, OperatorMixin):
799
799
  )
800
800
 
801
801
 
802
- class FlowRunNotificationPolicyFilterIsActive(PrefectBaseModel):
803
- """Filter by `FlowRunNotificationPolicy.is_active`."""
804
-
805
- eq_: Optional[bool] = Field(
806
- default=None,
807
- description=(
808
- "Filter notification policies for only those that are or are not active."
809
- ),
810
- )
811
-
812
-
813
- class FlowRunNotificationPolicyFilter(PrefectBaseModel):
814
- """Filter FlowRunNotificationPolicies."""
815
-
816
- is_active: Optional[FlowRunNotificationPolicyFilterIsActive] = Field(
817
- default=FlowRunNotificationPolicyFilterIsActive(eq_=False),
818
- description="Filter criteria for `FlowRunNotificationPolicy.is_active`. ",
819
- )
820
-
821
-
822
802
  class WorkQueueFilterId(PrefectBaseModel):
823
803
  """Filter by `WorkQueue.id`."""
824
804
 
@@ -45,7 +45,6 @@ from prefect._internal.schemas.validators import (
45
45
  validate_block_document_name,
46
46
  validate_default_queue_id_not_none,
47
47
  validate_max_metadata_length,
48
- validate_message_template_variables,
49
48
  validate_name_present_on_nonanonymous_blocks,
50
49
  validate_not_negative,
51
50
  validate_parent_and_ref_diff,
@@ -63,7 +62,7 @@ from prefect.types import (
63
62
  )
64
63
  from prefect.types._datetime import DateTime, now
65
64
  from prefect.utilities.asyncutils import run_coro_as_sync
66
- from prefect.utilities.collections import AutoEnum, listrepr, visit_collection
65
+ from prefect.utilities.collections import AutoEnum, visit_collection
67
66
  from prefect.utilities.names import generate_slug
68
67
  from prefect.utilities.pydantic import handle_secret_render
69
68
 
@@ -72,19 +71,6 @@ R = TypeVar("R", default=Any)
72
71
 
73
72
  DEFAULT_BLOCK_SCHEMA_VERSION: Literal["non-versioned"] = "non-versioned"
74
73
  DEFAULT_AGENT_WORK_POOL_NAME: Literal["default-agent-pool"] = "default-agent-pool"
75
- FLOW_RUN_NOTIFICATION_TEMPLATE_KWARGS: list[str] = [
76
- "flow_run_notification_policy_id",
77
- "flow_id",
78
- "flow_name",
79
- "flow_run_url",
80
- "flow_run_id",
81
- "flow_run_name",
82
- "flow_run_parameters",
83
- "flow_run_state_type",
84
- "flow_run_state_name",
85
- "flow_run_state_timestamp",
86
- "flow_run_state_message",
87
- ]
88
74
 
89
75
 
90
76
  class StateType(AutoEnum):
@@ -1446,41 +1432,6 @@ class WorkQueueStatusDetail(PrefectBaseModel):
1446
1432
  )
1447
1433
 
1448
1434
 
1449
- class FlowRunNotificationPolicy(ObjectBaseModel):
1450
- """An ORM representation of a flow run notification."""
1451
-
1452
- is_active: bool = Field(
1453
- default=True, description="Whether the policy is currently active"
1454
- )
1455
- state_names: list[str] = Field(
1456
- default=..., description="The flow run states that trigger notifications"
1457
- )
1458
- tags: list[str] = Field(
1459
- default=...,
1460
- description="The flow run tags that trigger notifications (set [] to disable)",
1461
- )
1462
- block_document_id: UUID = Field(
1463
- default=..., description="The block document ID used for sending notifications"
1464
- )
1465
- message_template: Optional[str] = Field(
1466
- default=None,
1467
- description=(
1468
- "A templatable notification message. Use {braces} to add variables."
1469
- " Valid variables include:"
1470
- f" {listrepr(sorted(FLOW_RUN_NOTIFICATION_TEMPLATE_KWARGS), sep=', ')}"
1471
- ),
1472
- examples=[
1473
- "Flow run {flow_run_name} with id {flow_run_id} entered state"
1474
- " {flow_run_state_name}."
1475
- ],
1476
- )
1477
-
1478
- @field_validator("message_template")
1479
- @classmethod
1480
- def validate_message_template_variables(cls, v: Optional[str]) -> Optional[str]:
1481
- return validate_message_template_variables(v)
1482
-
1483
-
1484
1435
  class Agent(ObjectBaseModel):
1485
1436
  """An ORM representation of an agent"""
1486
1437
 
@@ -1502,8 +1453,6 @@ class Agent(ObjectBaseModel):
1502
1453
  class WorkPoolStorageConfiguration(PrefectBaseModel):
1503
1454
  """A work pool storage configuration"""
1504
1455
 
1505
- model_config: ClassVar[ConfigDict] = ConfigDict(extra="forbid")
1506
-
1507
1456
  bundle_upload_step: Optional[dict[str, Any]] = Field(
1508
1457
  default=None, description="The bundle upload step for the work pool."
1509
1458
  )
@@ -50,6 +50,7 @@ async def _pull_git_repository_with_retries(repo: GitRepository):
50
50
  async def agit_clone(
51
51
  repository: str,
52
52
  branch: Optional[str] = None,
53
+ commit_sha: Optional[str] = None,
53
54
  include_submodules: bool = False,
54
55
  access_token: Optional[str] = None,
55
56
  credentials: Optional["Block"] = None,
@@ -61,6 +62,7 @@ async def agit_clone(
61
62
  Args:
62
63
  repository: the URL of the repository to clone
63
64
  branch: the branch to clone; if not provided, the default branch will be used
65
+ commit_sha: the commit SHA to clone; if not provided, the default branch will be used
64
66
  include_submodules (bool): whether to include git submodules when cloning the repository
65
67
  access_token: an access token to use for cloning the repository; if not provided
66
68
  the repository will be cloned using the default git credentials
@@ -84,6 +86,7 @@ async def agit_clone(
84
86
  url=repository,
85
87
  credentials=_credentials,
86
88
  branch=branch,
89
+ commit_sha=commit_sha,
87
90
  include_submodules=include_submodules,
88
91
  directories=directories,
89
92
  )
@@ -97,6 +100,7 @@ async def agit_clone(
97
100
  def git_clone(
98
101
  repository: str,
99
102
  branch: Optional[str] = None,
103
+ commit_sha: Optional[str] = None,
100
104
  include_submodules: bool = False,
101
105
  access_token: Optional[str] = None,
102
106
  credentials: Optional["Block"] = None,
@@ -108,6 +112,7 @@ def git_clone(
108
112
  Args:
109
113
  repository: the URL of the repository to clone
110
114
  branch: the branch to clone; if not provided, the default branch will be used
115
+ commit_sha: the commit SHA to clone; if not provided, the default branch will be used
111
116
  include_submodules (bool): whether to include git submodules when cloning the repository
112
117
  access_token: an access token to use for cloning the repository; if not provided
113
118
  the repository will be cloned using the default git credentials
@@ -191,6 +196,7 @@ def git_clone(
191
196
  url=repository,
192
197
  credentials=_credentials,
193
198
  branch=branch,
199
+ commit_sha=commit_sha,
194
200
  include_submodules=include_submodules,
195
201
  directories=directories,
196
202
  )
@@ -14,7 +14,7 @@ from typing_extensions import NamedTuple, Self, TypeVar
14
14
  from prefect._waiters import FlowRunWaiter
15
15
  from prefect.client.orchestration import get_client
16
16
  from prefect.exceptions import ObjectNotFound
17
- from prefect.logging.loggers import get_logger, get_run_logger
17
+ from prefect.logging.loggers import get_logger
18
18
  from prefect.states import Pending, State
19
19
  from prefect.task_runs import TaskRunWaiter
20
20
  from prefect.utilities.annotations import quote
@@ -224,19 +224,6 @@ class PrefectConcurrentFuture(PrefectWrappedFuture[R, concurrent.futures.Future[
224
224
  )
225
225
  return _result
226
226
 
227
- def __del__(self) -> None:
228
- if self._final_state or self._wrapped_future.done():
229
- return
230
- try:
231
- local_logger = get_run_logger()
232
- except Exception:
233
- local_logger = logger
234
- local_logger.warning(
235
- "A future was garbage collected before it resolved."
236
- " Please call `.wait()` or `.result()` on futures to ensure they resolve."
237
- "\nSee https://docs.prefect.io/latest/develop/task-runners for more details.",
238
- )
239
-
240
227
 
241
228
  class PrefectDistributedFuture(PrefectTaskRunFuture[R]):
242
229
  """