prefect-client 3.3.2.dev2__tar.gz → 3.3.3__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 (324) hide show
  1. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/.gitignore +2 -1
  2. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/PKG-INFO +1 -1
  3. prefect_client-3.3.3/src/prefect/_build_info.py +5 -0
  4. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/__init__.py +5 -0
  5. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_deployments/client.py +133 -62
  6. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/routes.py +1 -0
  7. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/schemas/actions.py +39 -1
  8. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/schemas/objects.py +14 -0
  9. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/schemas/responses.py +23 -0
  10. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/context.py +2 -1
  11. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/flow_runs.py +2 -2
  12. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/ui/task_runs.py +21 -1
  13. prefect_client-3.3.2.dev2/src/prefect/_build_info.py +0 -5
  14. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/LICENSE +0 -0
  15. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/README.md +0 -0
  16. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/pyproject.toml +0 -0
  17. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/.prefectignore +0 -0
  18. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/__init__.py +0 -0
  19. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/__main__.py +0 -0
  20. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_experimental/__init__.py +0 -0
  21. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_experimental/bundles.py +0 -0
  22. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_experimental/lineage.py +0 -0
  23. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_experimental/sla/__init__.py +0 -0
  24. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_experimental/sla/client.py +0 -0
  25. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_experimental/sla/objects.py +0 -0
  26. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/__init__.py +0 -0
  27. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/_logging.py +0 -0
  28. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/compatibility/__init__.py +0 -0
  29. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  30. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  31. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/compatibility/migration.py +0 -0
  32. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/concurrency/__init__.py +0 -0
  33. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/concurrency/api.py +0 -0
  34. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/concurrency/calls.py +0 -0
  35. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  36. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  37. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/concurrency/inspection.py +0 -0
  38. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/concurrency/primitives.py +0 -0
  39. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/concurrency/services.py +0 -0
  40. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/concurrency/threads.py +0 -0
  41. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/concurrency/waiters.py +0 -0
  42. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/integrations.py +0 -0
  43. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/pydantic/__init__.py +0 -0
  44. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/pydantic/schemas.py +0 -0
  45. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  46. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  47. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
  48. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/pytz.py +0 -0
  49. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/retries.py +0 -0
  50. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/schemas/__init__.py +0 -0
  51. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/schemas/bases.py +0 -0
  52. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/schemas/fields.py +0 -0
  53. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/schemas/serializers.py +0 -0
  54. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_internal/schemas/validators.py +0 -0
  55. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_result_records.py +0 -0
  56. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_vendor/croniter/__init__.py +0 -0
  57. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_vendor/croniter/croniter.py +0 -0
  58. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/_waiters.py +0 -0
  59. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/agent.py +0 -0
  60. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/artifacts.py +0 -0
  61. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/automations.py +0 -0
  62. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/blocks/__init__.py +0 -0
  63. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/blocks/abstract.py +0 -0
  64. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/blocks/core.py +0 -0
  65. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/blocks/fields.py +0 -0
  66. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/blocks/notifications.py +0 -0
  67. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/blocks/redis.py +0 -0
  68. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/blocks/system.py +0 -0
  69. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/blocks/webhook.py +0 -0
  70. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/cache_policies.py +0 -0
  71. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/__init__.py +0 -0
  72. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/base.py +0 -0
  73. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/cloud.py +0 -0
  74. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/collections.py +0 -0
  75. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/constants.py +0 -0
  76. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
  77. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  78. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
  79. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_automations/client.py +0 -0
  80. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
  81. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  82. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
  83. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  84. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
  85. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  86. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
  87. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
  88. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
  89. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
  90. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  91. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
  92. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_flows/client.py +0 -0
  93. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
  94. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_logs/client.py +0 -0
  95. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
  96. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_variables/client.py +0 -0
  97. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
  98. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
  99. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/orchestration/base.py +0 -0
  100. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/schemas/__init__.py +0 -0
  101. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/schemas/filters.py +0 -0
  102. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/schemas/schedules.py +0 -0
  103. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/schemas/sorting.py +0 -0
  104. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/subscriptions.py +0 -0
  105. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/types/__init__.py +0 -0
  106. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  107. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/client/utilities.py +0 -0
  108. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/concurrency/__init__.py +0 -0
  109. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/concurrency/_asyncio.py +0 -0
  110. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/concurrency/_events.py +0 -0
  111. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/concurrency/asyncio.py +0 -0
  112. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/concurrency/context.py +0 -0
  113. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/concurrency/services.py +0 -0
  114. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/concurrency/sync.py +0 -0
  115. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/concurrency/v1/__init__.py +0 -0
  116. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  117. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/concurrency/v1/_events.py +0 -0
  118. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/concurrency/v1/asyncio.py +0 -0
  119. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/concurrency/v1/context.py +0 -0
  120. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/concurrency/v1/services.py +0 -0
  121. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/concurrency/v1/sync.py +0 -0
  122. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/deployments/__init__.py +0 -0
  123. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/deployments/base.py +0 -0
  124. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/deployments/deployments.py +0 -0
  125. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/deployments/flow_runs.py +0 -0
  126. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/deployments/runner.py +0 -0
  127. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/deployments/schedules.py +0 -0
  128. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/deployments/steps/__init__.py +0 -0
  129. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/deployments/steps/core.py +0 -0
  130. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/deployments/steps/pull.py +0 -0
  131. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/deployments/steps/utility.py +0 -0
  132. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/docker/__init__.py +0 -0
  133. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/docker/docker_image.py +0 -0
  134. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/engine.py +0 -0
  135. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/events/__init__.py +0 -0
  136. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/events/actions.py +0 -0
  137. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/events/cli/__init__.py +0 -0
  138. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/events/cli/automations.py +0 -0
  139. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/events/clients.py +0 -0
  140. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/events/filters.py +0 -0
  141. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/events/related.py +0 -0
  142. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/events/schemas/__init__.py +0 -0
  143. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/events/schemas/automations.py +0 -0
  144. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  145. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/events/schemas/events.py +0 -0
  146. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/events/schemas/labelling.py +0 -0
  147. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/events/utilities.py +0 -0
  148. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/events/worker.py +0 -0
  149. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/exceptions.py +0 -0
  150. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/filesystems.py +0 -0
  151. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/flow_engine.py +0 -0
  152. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/flow_runs.py +0 -0
  153. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/flows.py +0 -0
  154. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/futures.py +0 -0
  155. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/infrastructure/__init__.py +0 -0
  156. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/infrastructure/base.py +0 -0
  157. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  158. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  159. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  160. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  161. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  162. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  163. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/input/__init__.py +0 -0
  164. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/input/actions.py +0 -0
  165. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/input/run_input.py +0 -0
  166. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/locking/__init__.py +0 -0
  167. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/locking/filesystem.py +0 -0
  168. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/locking/memory.py +0 -0
  169. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/locking/protocol.py +0 -0
  170. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/logging/__init__.py +0 -0
  171. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/logging/configuration.py +0 -0
  172. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/logging/filters.py +0 -0
  173. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/logging/formatters.py +0 -0
  174. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/logging/handlers.py +0 -0
  175. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/logging/highlighters.py +0 -0
  176. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/logging/loggers.py +0 -0
  177. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/logging/logging.yml +0 -0
  178. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/main.py +0 -0
  179. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/plugins.py +0 -0
  180. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/py.typed +0 -0
  181. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/results.py +0 -0
  182. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/runner/__init__.py +0 -0
  183. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/runner/runner.py +0 -0
  184. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/runner/server.py +0 -0
  185. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/runner/storage.py +0 -0
  186. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/runner/submit.py +0 -0
  187. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/runner/utils.py +0 -0
  188. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/runtime/__init__.py +0 -0
  189. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/runtime/deployment.py +0 -0
  190. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/runtime/flow_run.py +0 -0
  191. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/runtime/task_run.py +0 -0
  192. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/schedules.py +0 -0
  193. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/serializers.py +0 -0
  194. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/__init__.py +0 -0
  195. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/admin.py +0 -0
  196. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/artifacts.py +0 -0
  197. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/automations.py +0 -0
  198. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/block_capabilities.py +0 -0
  199. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/block_documents.py +0 -0
  200. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/block_schemas.py +0 -0
  201. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/block_types.py +0 -0
  202. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/clients.py +0 -0
  203. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/collections.py +0 -0
  204. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  205. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/concurrency_limits.py +0 -0
  206. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
  207. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/csrf_token.py +0 -0
  208. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/dependencies.py +0 -0
  209. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/deployments.py +0 -0
  210. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/events.py +0 -0
  211. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/flow_run_notification_policies.py +0 -0
  212. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/flow_run_states.py +0 -0
  213. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/flows.py +0 -0
  214. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/logs.py +0 -0
  215. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/middleware.py +0 -0
  216. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/root.py +0 -0
  217. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/run_history.py +0 -0
  218. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/saved_searches.py +0 -0
  219. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/server.py +0 -0
  220. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  221. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/task_run_states.py +0 -0
  222. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/task_runs.py +0 -0
  223. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/task_workers.py +0 -0
  224. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/templates.py +0 -0
  225. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/ui/__init__.py +0 -0
  226. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/ui/flow_runs.py +0 -0
  227. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/ui/flows.py +0 -0
  228. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/ui/schemas.py +0 -0
  229. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/validation.py +0 -0
  230. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/variables.py +0 -0
  231. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/work_queues.py +0 -0
  232. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/server/api/workers.py +0 -0
  233. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/__init__.py +0 -0
  234. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/base.py +0 -0
  235. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/constants.py +0 -0
  236. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/context.py +0 -0
  237. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/legacy.py +0 -0
  238. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/__init__.py +0 -0
  239. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/api.py +0 -0
  240. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/cli.py +0 -0
  241. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/client.py +0 -0
  242. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/cloud.py +0 -0
  243. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/deployments.py +0 -0
  244. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/experiments.py +0 -0
  245. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/flows.py +0 -0
  246. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/internal.py +0 -0
  247. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/logging.py +0 -0
  248. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/results.py +0 -0
  249. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/root.py +0 -0
  250. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/runner.py +0 -0
  251. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/server/__init__.py +0 -0
  252. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/server/api.py +0 -0
  253. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/server/database.py +0 -0
  254. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/server/deployments.py +0 -0
  255. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/server/ephemeral.py +0 -0
  256. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/server/events.py +0 -0
  257. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  258. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/server/root.py +0 -0
  259. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/server/services.py +0 -0
  260. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/server/tasks.py +0 -0
  261. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/server/ui.py +0 -0
  262. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/tasks.py +0 -0
  263. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/testing.py +0 -0
  264. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/models/worker.py +0 -0
  265. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/profiles.py +0 -0
  266. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/profiles.toml +0 -0
  267. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/settings/sources.py +0 -0
  268. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/states.py +0 -0
  269. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/task_engine.py +0 -0
  270. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/task_runners.py +0 -0
  271. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/task_runs.py +0 -0
  272. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/task_worker.py +0 -0
  273. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/tasks.py +0 -0
  274. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/telemetry/__init__.py +0 -0
  275. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/telemetry/bootstrap.py +0 -0
  276. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/telemetry/instrumentation.py +0 -0
  277. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/telemetry/logging.py +0 -0
  278. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/telemetry/processors.py +0 -0
  279. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/telemetry/run_telemetry.py +0 -0
  280. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/telemetry/services.py +0 -0
  281. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/transactions.py +0 -0
  282. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/types/__init__.py +0 -0
  283. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/types/_datetime.py +0 -0
  284. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/types/entrypoint.py +0 -0
  285. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/__init__.py +0 -0
  286. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/_deprecated.py +0 -0
  287. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/_engine.py +0 -0
  288. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/_git.py +0 -0
  289. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/annotations.py +0 -0
  290. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/asyncutils.py +0 -0
  291. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/callables.py +0 -0
  292. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/collections.py +0 -0
  293. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/compat.py +0 -0
  294. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/context.py +0 -0
  295. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/dispatch.py +0 -0
  296. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/dockerutils.py +0 -0
  297. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/engine.py +0 -0
  298. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/filesystem.py +0 -0
  299. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/generics.py +0 -0
  300. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/hashing.py +0 -0
  301. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/importtools.py +0 -0
  302. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/math.py +0 -0
  303. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/names.py +0 -0
  304. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/processutils.py +0 -0
  305. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/pydantic.py +0 -0
  306. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/render_swagger.py +0 -0
  307. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  308. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  309. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/schema_tools/validation.py +0 -0
  310. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/services.py +0 -0
  311. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/slugify.py +0 -0
  312. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/templating.py +0 -0
  313. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/text.py +0 -0
  314. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/timeout.py +0 -0
  315. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/urls.py +0 -0
  316. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/utilities/visualization.py +0 -0
  317. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/variables.py +0 -0
  318. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/workers/__init__.py +0 -0
  319. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/workers/base.py +0 -0
  320. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/workers/block.py +0 -0
  321. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/workers/cloud.py +0 -0
  322. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/workers/process.py +0 -0
  323. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/workers/server.py +0 -0
  324. {prefect_client-3.3.2.dev2 → prefect_client-3.3.3}/src/prefect/workers/utilities.py +0 -0
@@ -39,6 +39,7 @@ ipython_config.py
39
39
  # Environments
40
40
  .python-version
41
41
  .env
42
+ .envrc
42
43
  .venv
43
44
  env/
44
45
  venv/
@@ -87,4 +88,4 @@ src/integrations/*/**/_version.py
87
88
  *.log
88
89
 
89
90
  # Pyright type analysis report
90
- prefect-analysis.json
91
+ prefect-analysis.json
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: prefect-client
3
- Version: 3.3.2.dev2
3
+ Version: 3.3.3
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.3"
3
+ __build_date__ = "2025-04-05 01:43:07.772891+00:00"
4
+ __git_commit__ = "4100d4ea3c8d2559e48d9860a5b241d8cd29d47e"
5
+ __dirty__ = False
@@ -1,3 +1,4 @@
1
+ from __future__ import annotations
1
2
  import asyncio
2
3
  import base64
3
4
  import datetime
@@ -1164,6 +1165,10 @@ class PrefectClient(
1164
1165
  def client_version(self) -> str:
1165
1166
  return prefect.__version__
1166
1167
 
1168
+ @property
1169
+ def loop(self) -> asyncio.AbstractEventLoop | None:
1170
+ return self._loop
1171
+
1167
1172
  async def raise_for_api_version_mismatch(self) -> None:
1168
1173
  # Cloud is always compatible as a server
1169
1174
  if self.server_type == ServerType.CLOUD:
@@ -2,6 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  from collections.abc import Iterable
4
4
  from typing import TYPE_CHECKING, Any, Union
5
+ from uuid import UUID
5
6
 
6
7
  from httpx import HTTPStatusError, RequestError
7
8
 
@@ -10,7 +11,6 @@ from prefect.exceptions import ObjectNotFound
10
11
 
11
12
  if TYPE_CHECKING:
12
13
  import datetime
13
- from uuid import UUID
14
14
 
15
15
  from prefect.client.schemas import FlowRun
16
16
  from prefect.client.schemas.actions import (
@@ -28,7 +28,9 @@ if TYPE_CHECKING:
28
28
  )
29
29
  from prefect.client.schemas.objects import (
30
30
  ConcurrencyOptions,
31
+ DeploymentBranchingOptions,
31
32
  DeploymentSchedule,
33
+ VersionInfo,
32
34
  )
33
35
  from prefect.client.schemas.responses import (
34
36
  DeploymentResponse,
@@ -45,9 +47,10 @@ if TYPE_CHECKING:
45
47
  class DeploymentClient(BaseClient):
46
48
  def create_deployment(
47
49
  self,
48
- flow_id: "UUID",
50
+ flow_id: UUID,
49
51
  name: str,
50
52
  version: str | None = None,
53
+ version_info: "VersionInfo | None" = None,
51
54
  schedules: list["DeploymentScheduleCreate"] | None = None,
52
55
  concurrency_limit: int | None = None,
53
56
  concurrency_options: "ConcurrencyOptions | None" = None,
@@ -56,16 +59,19 @@ class DeploymentClient(BaseClient):
56
59
  work_queue_name: str | None = None,
57
60
  work_pool_name: str | None = None,
58
61
  tags: list[str] | None = None,
59
- storage_document_id: "UUID | None" = None,
62
+ storage_document_id: UUID | None = None,
60
63
  path: str | None = None,
61
64
  entrypoint: str | None = None,
62
- infrastructure_document_id: "UUID | None" = None,
65
+ infrastructure_document_id: UUID | None = None,
63
66
  parameter_openapi_schema: dict[str, Any] | None = None,
64
67
  paused: bool | None = None,
65
68
  pull_steps: list[dict[str, Any]] | None = None,
66
69
  enforce_parameter_schema: bool | None = None,
67
70
  job_variables: dict[str, Any] | None = None,
68
- ) -> "UUID":
71
+ branch: str | None = None,
72
+ base: UUID | None = None,
73
+ root: UUID | None = None,
74
+ ) -> UUID:
69
75
  """
70
76
  Create a deployment.
71
77
 
@@ -89,7 +95,6 @@ class DeploymentClient(BaseClient):
89
95
  Returns:
90
96
  the ID of the deployment in the backend
91
97
  """
92
- from uuid import UUID
93
98
 
94
99
  from prefect.client.schemas.actions import DeploymentCreate
95
100
 
@@ -99,6 +104,7 @@ class DeploymentClient(BaseClient):
99
104
  flow_id=flow_id,
100
105
  name=name,
101
106
  version=version,
107
+ version_info=version_info,
102
108
  parameters=dict(parameters or {}),
103
109
  tags=list(tags or []),
104
110
  work_queue_name=work_queue_name,
@@ -115,6 +121,9 @@ class DeploymentClient(BaseClient):
115
121
  concurrency_options=concurrency_options,
116
122
  pull_steps=pull_steps,
117
123
  enforce_parameter_schema=enforce_parameter_schema,
124
+ branch=branch,
125
+ base=base,
126
+ root=root,
118
127
  )
119
128
 
120
129
  if work_pool_name is not None:
@@ -123,20 +132,29 @@ class DeploymentClient(BaseClient):
123
132
  # Exclude newer fields that are not set to avoid compatibility issues
124
133
  exclude = {
125
134
  field
126
- for field in ["work_pool_name", "work_queue_name"]
135
+ for field in [
136
+ "work_pool_name",
137
+ "work_queue_name",
138
+ ]
127
139
  if field not in deployment_create.model_fields_set
128
140
  }
129
141
 
130
- if deployment_create.paused is None:
131
- exclude.add("paused")
132
-
133
- if deployment_create.pull_steps is None:
134
- exclude.add("pull_steps")
142
+ exclude_if_none = [
143
+ "paused",
144
+ "pull_steps",
145
+ "enforce_parameter_schema",
146
+ "version_info",
147
+ "branch",
148
+ "base",
149
+ "root",
150
+ ]
135
151
 
136
- if deployment_create.enforce_parameter_schema is None:
137
- exclude.add("enforce_parameter_schema")
152
+ for field in exclude_if_none:
153
+ if getattr(deployment_create, field) is None:
154
+ exclude.add(field)
138
155
 
139
156
  json = deployment_create.model_dump(mode="json", exclude=exclude)
157
+
140
158
  response = self.request(
141
159
  "POST",
142
160
  "/deployments/",
@@ -148,7 +166,7 @@ class DeploymentClient(BaseClient):
148
166
 
149
167
  return UUID(deployment_id)
150
168
 
151
- def set_deployment_paused_state(self, deployment_id: "UUID", paused: bool) -> None:
169
+ def set_deployment_paused_state(self, deployment_id: UUID, paused: bool) -> None:
152
170
  self.request(
153
171
  "PATCH",
154
172
  "/deployments/{id}",
@@ -158,7 +176,7 @@ class DeploymentClient(BaseClient):
158
176
 
159
177
  def update_deployment(
160
178
  self,
161
- deployment_id: "UUID",
179
+ deployment_id: UUID,
162
180
  deployment: "DeploymentUpdate",
163
181
  ) -> None:
164
182
  self.request(
@@ -172,12 +190,10 @@ class DeploymentClient(BaseClient):
172
190
  ),
173
191
  )
174
192
 
175
- def _create_deployment_from_schema(self, schema: "DeploymentCreate") -> "UUID":
193
+ def _create_deployment_from_schema(self, schema: "DeploymentCreate") -> UUID:
176
194
  """
177
195
  Create a deployment from a prepared `DeploymentCreate` schema.
178
196
  """
179
- from uuid import UUID
180
-
181
197
  # TODO: We are likely to remove this method once we have considered the
182
198
  # packaging interface for deployments further.
183
199
  response = self.request(
@@ -191,7 +207,7 @@ class DeploymentClient(BaseClient):
191
207
 
192
208
  def read_deployment(
193
209
  self,
194
- deployment_id: Union["UUID", str],
210
+ deployment_id: Union[UUID, str],
195
211
  ) -> "DeploymentResponse":
196
212
  """
197
213
  Query the Prefect API for a deployment by id.
@@ -202,7 +218,6 @@ class DeploymentClient(BaseClient):
202
218
  Returns:
203
219
  a [Deployment model][prefect.client.schemas.objects.Deployment] representation of the deployment
204
220
  """
205
- from uuid import UUID
206
221
 
207
222
  from prefect.client.schemas.responses import DeploymentResponse
208
223
 
@@ -328,7 +343,7 @@ class DeploymentClient(BaseClient):
328
343
 
329
344
  def delete_deployment(
330
345
  self,
331
- deployment_id: "UUID",
346
+ deployment_id: UUID,
332
347
  ) -> None:
333
348
  """
334
349
  Delete deployment by id.
@@ -353,7 +368,7 @@ class DeploymentClient(BaseClient):
353
368
 
354
369
  def create_deployment_schedules(
355
370
  self,
356
- deployment_id: "UUID",
371
+ deployment_id: UUID,
357
372
  schedules: list[tuple["SCHEDULE_TYPES", bool]],
358
373
  ) -> list["DeploymentSchedule"]:
359
374
  """
@@ -392,7 +407,7 @@ class DeploymentClient(BaseClient):
392
407
 
393
408
  def read_deployment_schedules(
394
409
  self,
395
- deployment_id: "UUID",
410
+ deployment_id: UUID,
396
411
  ) -> list["DeploymentSchedule"]:
397
412
  """
398
413
  Query the Prefect API for a deployment's schedules.
@@ -420,8 +435,8 @@ class DeploymentClient(BaseClient):
420
435
 
421
436
  def update_deployment_schedule(
422
437
  self,
423
- deployment_id: "UUID",
424
- schedule_id: "UUID",
438
+ deployment_id: UUID,
439
+ schedule_id: UUID,
425
440
  active: bool | None = None,
426
441
  schedule: "SCHEDULE_TYPES | None" = None,
427
442
  ) -> None:
@@ -460,8 +475,8 @@ class DeploymentClient(BaseClient):
460
475
 
461
476
  def delete_deployment_schedule(
462
477
  self,
463
- deployment_id: "UUID",
464
- schedule_id: "UUID",
478
+ deployment_id: UUID,
479
+ schedule_id: UUID,
465
480
  ) -> None:
466
481
  """
467
482
  Delete a deployment schedule.
@@ -487,7 +502,7 @@ class DeploymentClient(BaseClient):
487
502
 
488
503
  def get_scheduled_flow_runs_for_deployments(
489
504
  self,
490
- deployment_ids: list["UUID"],
505
+ deployment_ids: list[UUID],
491
506
  scheduled_before: "datetime.datetime | None" = None,
492
507
  limit: int | None = None,
493
508
  ) -> list["FlowRunResponse"]:
@@ -509,7 +524,7 @@ class DeploymentClient(BaseClient):
509
524
 
510
525
  def create_flow_run_from_deployment(
511
526
  self,
512
- deployment_id: "UUID",
527
+ deployment_id: UUID,
513
528
  *,
514
529
  parameters: dict[str, Any] | None = None,
515
530
  context: dict[str, Any] | None = None,
@@ -517,7 +532,7 @@ class DeploymentClient(BaseClient):
517
532
  name: str | None = None,
518
533
  tags: Iterable[str] | None = None,
519
534
  idempotency_key: str | None = None,
520
- parent_task_run_id: "UUID | None" = None,
535
+ parent_task_run_id: UUID | None = None,
521
536
  work_queue_name: str | None = None,
522
537
  job_variables: dict[str, Any] | None = None,
523
538
  labels: "KeyValueLabelsField | None" = None,
@@ -586,13 +601,36 @@ class DeploymentClient(BaseClient):
586
601
  )
587
602
  return FlowRun.model_validate(response.json())
588
603
 
604
+ def create_deployment_branch(
605
+ self,
606
+ deployment_id: UUID,
607
+ branch: str,
608
+ options: "DeploymentBranchingOptions | None" = None,
609
+ overrides: "DeploymentUpdate | None" = None,
610
+ ) -> UUID:
611
+ from prefect.client.schemas.actions import DeploymentBranch
612
+ from prefect.client.schemas.objects import DeploymentBranchingOptions
613
+
614
+ response = self.request(
615
+ "POST",
616
+ "/deployments/{id}/branch",
617
+ path_params={"id": deployment_id},
618
+ json=DeploymentBranch(
619
+ branch=branch,
620
+ options=options or DeploymentBranchingOptions(),
621
+ overrides=overrides,
622
+ ).model_dump(mode="json", exclude_unset=True),
623
+ )
624
+ return UUID(response.json().get("id"))
625
+
589
626
 
590
627
  class DeploymentAsyncClient(BaseAsyncClient):
591
628
  async def create_deployment(
592
629
  self,
593
- flow_id: "UUID",
630
+ flow_id: UUID,
594
631
  name: str,
595
632
  version: str | None = None,
633
+ version_info: "VersionInfo | None" = None,
596
634
  schedules: list["DeploymentScheduleCreate"] | None = None,
597
635
  concurrency_limit: int | None = None,
598
636
  concurrency_options: "ConcurrencyOptions | None" = None,
@@ -601,16 +639,19 @@ class DeploymentAsyncClient(BaseAsyncClient):
601
639
  work_queue_name: str | None = None,
602
640
  work_pool_name: str | None = None,
603
641
  tags: list[str] | None = None,
604
- storage_document_id: "UUID | None" = None,
642
+ storage_document_id: UUID | None = None,
605
643
  path: str | None = None,
606
644
  entrypoint: str | None = None,
607
- infrastructure_document_id: "UUID | None" = None,
645
+ infrastructure_document_id: UUID | None = None,
608
646
  parameter_openapi_schema: dict[str, Any] | None = None,
609
647
  paused: bool | None = None,
610
648
  pull_steps: list[dict[str, Any]] | None = None,
611
649
  enforce_parameter_schema: bool | None = None,
612
650
  job_variables: dict[str, Any] | None = None,
613
- ) -> "UUID":
651
+ branch: str | None = None,
652
+ base: UUID | None = None,
653
+ root: UUID | None = None,
654
+ ) -> UUID:
614
655
  """
615
656
  Create a deployment.
616
657
 
@@ -634,7 +675,6 @@ class DeploymentAsyncClient(BaseAsyncClient):
634
675
  Returns:
635
676
  the ID of the deployment in the backend
636
677
  """
637
- from uuid import UUID
638
678
 
639
679
  from prefect.client.schemas.actions import DeploymentCreate
640
680
 
@@ -644,6 +684,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
644
684
  flow_id=flow_id,
645
685
  name=name,
646
686
  version=version,
687
+ version_info=version_info,
647
688
  parameters=dict(parameters or {}),
648
689
  tags=list(tags or []),
649
690
  work_queue_name=work_queue_name,
@@ -660,6 +701,9 @@ class DeploymentAsyncClient(BaseAsyncClient):
660
701
  concurrency_options=concurrency_options,
661
702
  pull_steps=pull_steps,
662
703
  enforce_parameter_schema=enforce_parameter_schema,
704
+ branch=branch,
705
+ base=base,
706
+ root=root,
663
707
  )
664
708
 
665
709
  if work_pool_name is not None:
@@ -668,20 +712,29 @@ class DeploymentAsyncClient(BaseAsyncClient):
668
712
  # Exclude newer fields that are not set to avoid compatibility issues
669
713
  exclude = {
670
714
  field
671
- for field in ["work_pool_name", "work_queue_name"]
715
+ for field in [
716
+ "work_pool_name",
717
+ "work_queue_name",
718
+ ]
672
719
  if field not in deployment_create.model_fields_set
673
720
  }
674
721
 
675
- if deployment_create.paused is None:
676
- exclude.add("paused")
677
-
678
- if deployment_create.pull_steps is None:
679
- exclude.add("pull_steps")
722
+ exclude_if_none = [
723
+ "paused",
724
+ "pull_steps",
725
+ "enforce_parameter_schema",
726
+ "version_info",
727
+ "branch",
728
+ "base",
729
+ "root",
730
+ ]
680
731
 
681
- if deployment_create.enforce_parameter_schema is None:
682
- exclude.add("enforce_parameter_schema")
732
+ for field in exclude_if_none:
733
+ if getattr(deployment_create, field) is None:
734
+ exclude.add(field)
683
735
 
684
736
  json = deployment_create.model_dump(mode="json", exclude=exclude)
737
+
685
738
  response = await self.request(
686
739
  "POST",
687
740
  "/deployments/",
@@ -694,7 +747,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
694
747
  return UUID(deployment_id)
695
748
 
696
749
  async def set_deployment_paused_state(
697
- self, deployment_id: "UUID", paused: bool
750
+ self, deployment_id: UUID, paused: bool
698
751
  ) -> None:
699
752
  await self.request(
700
753
  "PATCH",
@@ -705,7 +758,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
705
758
 
706
759
  async def update_deployment(
707
760
  self,
708
- deployment_id: "UUID",
761
+ deployment_id: UUID,
709
762
  deployment: "DeploymentUpdate",
710
763
  ) -> None:
711
764
  await self.request(
@@ -719,13 +772,10 @@ class DeploymentAsyncClient(BaseAsyncClient):
719
772
  ),
720
773
  )
721
774
 
722
- async def _create_deployment_from_schema(
723
- self, schema: "DeploymentCreate"
724
- ) -> "UUID":
775
+ async def _create_deployment_from_schema(self, schema: "DeploymentCreate") -> UUID:
725
776
  """
726
777
  Create a deployment from a prepared `DeploymentCreate` schema.
727
778
  """
728
- from uuid import UUID
729
779
 
730
780
  # TODO: We are likely to remove this method once we have considered the
731
781
  # packaging interface for deployments further.
@@ -740,7 +790,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
740
790
 
741
791
  async def read_deployment(
742
792
  self,
743
- deployment_id: Union["UUID", str],
793
+ deployment_id: Union[UUID, str],
744
794
  ) -> "DeploymentResponse":
745
795
  """
746
796
  Query the Prefect API for a deployment by id.
@@ -751,7 +801,6 @@ class DeploymentAsyncClient(BaseAsyncClient):
751
801
  Returns:
752
802
  a [Deployment model][prefect.client.schemas.objects.Deployment] representation of the deployment
753
803
  """
754
- from uuid import UUID
755
804
 
756
805
  from prefect.client.schemas.responses import DeploymentResponse
757
806
 
@@ -877,7 +926,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
877
926
 
878
927
  async def delete_deployment(
879
928
  self,
880
- deployment_id: "UUID",
929
+ deployment_id: UUID,
881
930
  ) -> None:
882
931
  """
883
932
  Delete deployment by id.
@@ -902,7 +951,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
902
951
 
903
952
  async def create_deployment_schedules(
904
953
  self,
905
- deployment_id: "UUID",
954
+ deployment_id: UUID,
906
955
  schedules: list[tuple["SCHEDULE_TYPES", bool]],
907
956
  ) -> list["DeploymentSchedule"]:
908
957
  """
@@ -941,7 +990,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
941
990
 
942
991
  async def read_deployment_schedules(
943
992
  self,
944
- deployment_id: "UUID",
993
+ deployment_id: UUID,
945
994
  ) -> list["DeploymentSchedule"]:
946
995
  """
947
996
  Query the Prefect API for a deployment's schedules.
@@ -969,8 +1018,8 @@ class DeploymentAsyncClient(BaseAsyncClient):
969
1018
 
970
1019
  async def update_deployment_schedule(
971
1020
  self,
972
- deployment_id: "UUID",
973
- schedule_id: "UUID",
1021
+ deployment_id: UUID,
1022
+ schedule_id: UUID,
974
1023
  active: bool | None = None,
975
1024
  schedule: "SCHEDULE_TYPES | None" = None,
976
1025
  ) -> None:
@@ -1009,8 +1058,8 @@ class DeploymentAsyncClient(BaseAsyncClient):
1009
1058
 
1010
1059
  async def delete_deployment_schedule(
1011
1060
  self,
1012
- deployment_id: "UUID",
1013
- schedule_id: "UUID",
1061
+ deployment_id: UUID,
1062
+ schedule_id: UUID,
1014
1063
  ) -> None:
1015
1064
  """
1016
1065
  Delete a deployment schedule.
@@ -1036,7 +1085,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
1036
1085
 
1037
1086
  async def get_scheduled_flow_runs_for_deployments(
1038
1087
  self,
1039
- deployment_ids: list["UUID"],
1088
+ deployment_ids: list[UUID],
1040
1089
  scheduled_before: "datetime.datetime | None" = None,
1041
1090
  limit: int | None = None,
1042
1091
  ) -> list["FlowRun"]:
@@ -1058,7 +1107,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
1058
1107
 
1059
1108
  async def create_flow_run_from_deployment(
1060
1109
  self,
1061
- deployment_id: "UUID",
1110
+ deployment_id: UUID,
1062
1111
  *,
1063
1112
  parameters: dict[str, Any] | None = None,
1064
1113
  context: dict[str, Any] | None = None,
@@ -1066,7 +1115,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
1066
1115
  name: str | None = None,
1067
1116
  tags: Iterable[str] | None = None,
1068
1117
  idempotency_key: str | None = None,
1069
- parent_task_run_id: "UUID | None" = None,
1118
+ parent_task_run_id: UUID | None = None,
1070
1119
  work_queue_name: str | None = None,
1071
1120
  job_variables: dict[str, Any] | None = None,
1072
1121
  labels: "KeyValueLabelsField | None" = None,
@@ -1134,3 +1183,25 @@ class DeploymentAsyncClient(BaseAsyncClient):
1134
1183
  json=flow_run_create.model_dump(mode="json", exclude_unset=True),
1135
1184
  )
1136
1185
  return FlowRun.model_validate(response.json())
1186
+
1187
+ async def create_deployment_branch(
1188
+ self,
1189
+ deployment_id: UUID,
1190
+ branch: str,
1191
+ options: "DeploymentBranchingOptions | None" = None,
1192
+ overrides: "DeploymentUpdate | None" = None,
1193
+ ) -> UUID:
1194
+ from prefect.client.schemas.actions import DeploymentBranch
1195
+ from prefect.client.schemas.objects import DeploymentBranchingOptions
1196
+
1197
+ response = await self.request(
1198
+ "POST",
1199
+ "/deployments/{id}/branch",
1200
+ path_params={"id": deployment_id},
1201
+ json=DeploymentBranch(
1202
+ branch=branch,
1203
+ options=options or DeploymentBranchingOptions(),
1204
+ overrides=overrides,
1205
+ ).model_dump(mode="json", exclude_unset=True),
1206
+ )
1207
+ return UUID(response.json().get("id"))
@@ -46,6 +46,7 @@ ServerRoutes = Literal[
46
46
  "/csrf-token",
47
47
  "/deployments/",
48
48
  "/deployments/{id}",
49
+ "/deployments/{id}/branch",
49
50
  "/deployments/{id}/create_flow_run",
50
51
  "/deployments/{id}/pause_deployment",
51
52
  "/deployments/{id}/resume_deployment",
@@ -253,13 +253,29 @@ class DeploymentCreate(ActionBaseModel):
253
253
  infrastructure_document_id: Optional[UUID] = Field(default=None)
254
254
  description: Optional[str] = Field(default=None)
255
255
  path: Optional[str] = Field(default=None)
256
- version: Optional[str] = Field(default=None)
257
256
  entrypoint: Optional[str] = Field(default=None)
258
257
  job_variables: dict[str, Any] = Field(
259
258
  default_factory=dict,
260
259
  description="Overrides to apply to flow run infrastructure at runtime.",
261
260
  )
262
261
 
262
+ # Versionining
263
+ version: Optional[str] = Field(default=None)
264
+ version_info: Optional[objects.VersionInfo] = Field(
265
+ default=None, description="Version information for the deployment."
266
+ )
267
+
268
+ # Branching
269
+ branch: Optional[str] = Field(
270
+ default=None, description="The branch of the deployment."
271
+ )
272
+ base: Optional[UUID] = Field(
273
+ default=None, description="The base deployment of the deployment."
274
+ )
275
+ root: Optional[UUID] = Field(
276
+ default=None, description="The root deployment of the deployment."
277
+ )
278
+
263
279
  def check_valid_configuration(self, base_job_template: dict[str, Any]) -> None:
264
280
  """Check that the combination of base_job_template defaults
265
281
  and job_variables conforms to the specified schema.
@@ -289,6 +305,9 @@ class DeploymentUpdate(ActionBaseModel):
289
305
  return remove_old_deployment_fields(values)
290
306
 
291
307
  version: Optional[str] = Field(default=None)
308
+ version_info: Optional[objects.VersionInfo] = Field(
309
+ default=None, description="Version information for the deployment."
310
+ )
292
311
  description: Optional[str] = Field(default=None)
293
312
  parameters: Optional[dict[str, Any]] = Field(
294
313
  default=None,
@@ -354,6 +373,25 @@ class DeploymentUpdate(ActionBaseModel):
354
373
  jsonschema.validate(self.job_variables, variables_schema)
355
374
 
356
375
 
376
+ class DeploymentBranch(ActionBaseModel):
377
+ branch: str = Field(..., description="Name of the branch to create")
378
+ options: objects.DeploymentBranchingOptions = Field(
379
+ default_factory=objects.DeploymentBranchingOptions,
380
+ description="Configuration options for how the deployment should be branched",
381
+ )
382
+ overrides: Optional[DeploymentUpdate] = Field(
383
+ default=None,
384
+ description="Optional values to override in the branched deployment",
385
+ )
386
+
387
+ @field_validator("branch")
388
+ @classmethod
389
+ def validate_branch_length(cls, v: str) -> str:
390
+ if len(v.strip()) < 1:
391
+ raise ValueError("Branch name cannot be empty or contain only whitespace")
392
+ return v
393
+
394
+
357
395
  class FlowRunUpdate(ActionBaseModel):
358
396
  """Data used by the Prefect REST API to update a flow run."""
359
397
 
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
  import datetime
4
4
  import warnings
5
5
  from collections.abc import Callable, Mapping
6
+ from enum import Enum
6
7
  from functools import partial
7
8
  from typing import (
8
9
  TYPE_CHECKING,
@@ -1107,6 +1108,19 @@ class VersionInfo(PrefectBaseModel, extra="allow"):
1107
1108
  version: str = Field(default=..., description="The version of the deployment.")
1108
1109
 
1109
1110
 
1111
+ class BranchingScheduleHandling(str, Enum):
1112
+ KEEP = "keep"
1113
+ REMOVE = "remove"
1114
+ INACTIVE = "inactive"
1115
+
1116
+
1117
+ class DeploymentBranchingOptions(ObjectBaseModel):
1118
+ schedule_handling: BranchingScheduleHandling = Field(
1119
+ default=BranchingScheduleHandling.REMOVE,
1120
+ description="Whether to keep, remove, or set inactive the existing schedules when branching",
1121
+ )
1122
+
1123
+
1110
1124
  class Deployment(ObjectBaseModel):
1111
1125
  """An ORM representation of deployment data."""
1112
1126