prefect-client 3.7.3.dev3__tar.gz → 3.7.3.dev5__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 (451) hide show
  1. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/PKG-INFO +1 -1
  2. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/AGENTS.md +1 -0
  3. prefect_client-3.7.3.dev5/src/prefect/_build_info.py +5 -0
  4. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/result_records.py +9 -0
  5. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/__init__.py +10 -3
  6. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/results.py +4 -0
  7. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/AGENTS.md +5 -1
  8. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/_workspace_resolver.py +83 -5
  9. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/_workspace_starter.py +4 -0
  10. prefect_client-3.7.3.dev5/src/prefect/server/api/__init__.py +86 -0
  11. prefect_client-3.7.3.dev5/src/prefect/settings/_types.py +225 -0
  12. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/context.py +9 -3
  13. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/root.py +56 -11
  14. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/runner.py +9 -0
  15. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/server/api.py +10 -0
  16. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/server/root.py +5 -0
  17. prefect_client-3.7.3.dev5/src/prefect/settings/models/server/worker_channel.py +54 -0
  18. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/states.py +5 -1
  19. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/workers/_worker_channel/_transport.py +6 -1
  20. prefect_client-3.7.3.dev3/src/prefect/_build_info.py +0 -5
  21. prefect_client-3.7.3.dev3/src/prefect/server/api/__init__.py +0 -33
  22. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/.gitignore +0 -0
  23. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/LICENSE +0 -0
  24. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/README.md +0 -0
  25. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/hatch_build.py +0 -0
  26. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/pyproject.toml +0 -0
  27. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/.prefectignore +0 -0
  28. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/__init__.py +0 -0
  29. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/__main__.py +0 -0
  30. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_experimental/__init__.py +0 -0
  31. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_experimental/_launchers.py +0 -0
  32. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_experimental/bundles/__init__.py +0 -0
  33. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_experimental/bundles/execute.py +0 -0
  34. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_experimental/plugins/__init__.py +0 -0
  35. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_experimental/plugins/apply.py +0 -0
  36. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
  37. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_experimental/plugins/manager.py +0 -0
  38. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_experimental/plugins/spec.py +0 -0
  39. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_experimental/sla/__init__.py +0 -0
  40. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_experimental/sla/client.py +0 -0
  41. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_experimental/sla/objects.py +0 -0
  42. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_flow_run_suspension.py +0 -0
  43. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/__init__.py +0 -0
  44. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/_logging.py +0 -0
  45. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/analytics/__init__.py +0 -0
  46. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/analytics/ci_detection.py +0 -0
  47. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/analytics/client.py +0 -0
  48. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/analytics/device_id.py +0 -0
  49. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/analytics/emit.py +0 -0
  50. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/analytics/enabled.py +0 -0
  51. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/analytics/events.py +0 -0
  52. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/analytics/milestones.py +0 -0
  53. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/analytics/notice.py +0 -0
  54. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/analytics/service.py +0 -0
  55. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/ast_utils.py +0 -0
  56. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/buildx.py +0 -0
  57. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/compatibility/__init__.py +0 -0
  58. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  59. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/compatibility/backports.py +0 -0
  60. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/compatibility/blocks.py +0 -0
  61. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  62. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/compatibility/deprecated_paths.py +0 -0
  63. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/compatibility/migration.py +0 -0
  64. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/compatibility/starlette.py +0 -0
  65. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/concurrency/__init__.py +0 -0
  66. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/concurrency/api.py +0 -0
  67. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/concurrency/calls.py +0 -0
  68. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  69. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  70. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/concurrency/inspection.py +0 -0
  71. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/concurrency/primitives.py +0 -0
  72. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/concurrency/services.py +0 -0
  73. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/concurrency/threads.py +0 -0
  74. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/concurrency/waiters.py +0 -0
  75. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/control_listener.py +0 -0
  76. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/deprecated.py +0 -0
  77. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/engine.py +0 -0
  78. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/git.py +0 -0
  79. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/infrastructure_exit_codes.py +0 -0
  80. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/installation.py +0 -0
  81. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/integrations.py +0 -0
  82. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/launchers.py +0 -0
  83. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/lazy.py +0 -0
  84. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/metrics.py +0 -0
  85. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/observability.py +0 -0
  86. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/observers.py +0 -0
  87. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/plugins/__init__.py +0 -0
  88. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/plugins/apply.py +0 -0
  89. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/plugins/collections.py +0 -0
  90. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/plugins/diagnostics.py +0 -0
  91. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/plugins/manager.py +0 -0
  92. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/plugins/spec.py +0 -0
  93. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/plugins/startup.py +0 -0
  94. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/pydantic/__init__.py +0 -0
  95. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/pydantic/schemas.py +0 -0
  96. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  97. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  98. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/pydantic/validated_func.py +0 -0
  99. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/pytz.py +0 -0
  100. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/retries.py +0 -0
  101. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/schema.py +0 -0
  102. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/schemas/__init__.py +0 -0
  103. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/schemas/bases.py +0 -0
  104. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/schemas/fields.py +0 -0
  105. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/schemas/serializers.py +0 -0
  106. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/schemas/validators.py +0 -0
  107. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/send_entrypoint_logs.py +0 -0
  108. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/states.py +0 -0
  109. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/testing.py +0 -0
  110. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/urls.py +0 -0
  111. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/uuid7.py +0 -0
  112. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/version_checking.py +0 -0
  113. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/versioning.py +0 -0
  114. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/waiters.py +0 -0
  115. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_internal/websockets.py +0 -0
  116. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_sdk/__init__.py +0 -0
  117. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_sdk/fetcher.py +0 -0
  118. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_sdk/generator.py +0 -0
  119. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_sdk/models.py +0 -0
  120. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_sdk/naming.py +0 -0
  121. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_sdk/renderer.py +0 -0
  122. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_sdk/schema_converter.py +0 -0
  123. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_sdk/templates/__init__.py +0 -0
  124. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_sdk/templates/sdk.py.jinja +0 -0
  125. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_sdk/types.py +0 -0
  126. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_sdk/unions.py +0 -0
  127. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_vendor/croniter/__init__.py +0 -0
  128. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/_vendor/croniter/croniter.py +0 -0
  129. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/agent.py +0 -0
  130. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/analytics/__init__.py +0 -0
  131. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/artifacts.py +0 -0
  132. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/assets/__init__.py +0 -0
  133. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/assets/core.py +0 -0
  134. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/assets/materialize.py +0 -0
  135. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/automations.py +0 -0
  136. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/blocks/AGENTS.md +0 -0
  137. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/blocks/__init__.py +0 -0
  138. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/blocks/abstract.py +0 -0
  139. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/blocks/core.py +0 -0
  140. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/blocks/fields.py +0 -0
  141. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/blocks/notifications.py +0 -0
  142. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/blocks/redis.py +0 -0
  143. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/blocks/system.py +0 -0
  144. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/blocks/webhook.py +0 -0
  145. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/bundles/__init__.py +0 -0
  146. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/bundles/_file_collector.py +0 -0
  147. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/bundles/_ignore_filter.py +0 -0
  148. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/bundles/_path_resolver.py +0 -0
  149. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/bundles/_zip_builder.py +0 -0
  150. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/bundles/_zip_extractor.py +0 -0
  151. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/bundles/execute.py +0 -0
  152. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/cache_policies.py +0 -0
  153. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/AGENTS.md +0 -0
  154. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/__init__.py +0 -0
  155. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/attribution.py +0 -0
  156. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/base.py +0 -0
  157. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/cloud.py +0 -0
  158. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/collections.py +0 -0
  159. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/constants.py +0 -0
  160. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
  161. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  162. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
  163. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_automations/client.py +0 -0
  164. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
  165. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  166. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
  167. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  168. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
  169. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  170. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
  171. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
  172. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
  173. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_deployments/client.py +0 -0
  174. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_events/__init__.py +0 -0
  175. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_events/client.py +0 -0
  176. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
  177. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  178. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
  179. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_flows/client.py +0 -0
  180. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
  181. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_logs/client.py +0 -0
  182. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
  183. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_variables/client.py +0 -0
  184. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
  185. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
  186. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/base.py +0 -0
  187. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/orchestration/routes.py +0 -0
  188. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/schemas/__init__.py +0 -0
  189. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/schemas/actions.py +0 -0
  190. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/schemas/events.py +0 -0
  191. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/schemas/filters.py +0 -0
  192. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/schemas/objects.py +0 -0
  193. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/schemas/responses.py +0 -0
  194. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/schemas/schedules.py +0 -0
  195. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/schemas/sorting.py +0 -0
  196. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/schemas/worker_channel.py +0 -0
  197. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/subscriptions.py +0 -0
  198. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/types/__init__.py +0 -0
  199. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  200. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/client/utilities.py +0 -0
  201. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/concurrency/AGENTS.md +0 -0
  202. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/concurrency/__init__.py +0 -0
  203. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/concurrency/_asyncio.py +0 -0
  204. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/concurrency/_events.py +0 -0
  205. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/concurrency/_leases.py +0 -0
  206. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/concurrency/_sync.py +0 -0
  207. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/concurrency/asyncio.py +0 -0
  208. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/concurrency/context.py +0 -0
  209. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/concurrency/services.py +0 -0
  210. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/concurrency/sync.py +0 -0
  211. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/concurrency/v1/__init__.py +0 -0
  212. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  213. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/concurrency/v1/_events.py +0 -0
  214. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/concurrency/v1/asyncio.py +0 -0
  215. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/concurrency/v1/context.py +0 -0
  216. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/concurrency/v1/services.py +0 -0
  217. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/concurrency/v1/sync.py +0 -0
  218. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/context.py +0 -0
  219. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/deployments/AGENTS.md +0 -0
  220. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/deployments/__init__.py +0 -0
  221. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/deployments/base.py +0 -0
  222. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/deployments/deployments.py +0 -0
  223. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/deployments/flow_runs.py +0 -0
  224. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/deployments/runner.py +0 -0
  225. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/deployments/schedules.py +0 -0
  226. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/deployments/steps/__init__.py +0 -0
  227. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/deployments/steps/core.py +0 -0
  228. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/deployments/steps/pull.py +0 -0
  229. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/deployments/steps/utility.py +0 -0
  230. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/docker/__init__.py +0 -0
  231. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/docker/_buildx.py +0 -0
  232. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/docker/docker_image.py +0 -0
  233. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/engine.py +0 -0
  234. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/events/AGENTS.md +0 -0
  235. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/events/__init__.py +0 -0
  236. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/events/actions.py +0 -0
  237. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/events/clients.py +0 -0
  238. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/events/filters.py +0 -0
  239. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/events/related.py +0 -0
  240. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/events/schemas/__init__.py +0 -0
  241. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/events/schemas/automations.py +0 -0
  242. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  243. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/events/schemas/events.py +0 -0
  244. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/events/schemas/labelling.py +0 -0
  245. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/events/subscribers.py +0 -0
  246. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/events/utilities.py +0 -0
  247. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/events/worker.py +0 -0
  248. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/exceptions.py +0 -0
  249. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/filesystems.py +0 -0
  250. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/flow_engine.py +0 -0
  251. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/flow_runs.py +0 -0
  252. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/flows.py +0 -0
  253. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/futures.py +0 -0
  254. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/infrastructure/__init__.py +0 -0
  255. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/infrastructure/base.py +0 -0
  256. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  257. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  258. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  259. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  260. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  261. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  262. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/input/__init__.py +0 -0
  263. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/input/actions.py +0 -0
  264. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/input/run_input.py +0 -0
  265. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/locking/__init__.py +0 -0
  266. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/locking/_filelock.py +0 -0
  267. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/locking/filesystem.py +0 -0
  268. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/locking/memory.py +0 -0
  269. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/locking/protocol.py +0 -0
  270. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/logging/AGENTS.md +0 -0
  271. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/logging/__init__.py +0 -0
  272. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/logging/clients.py +0 -0
  273. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/logging/configuration.py +0 -0
  274. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/logging/filters.py +0 -0
  275. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/logging/formatters.py +0 -0
  276. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/logging/handlers.py +0 -0
  277. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/logging/highlighters.py +0 -0
  278. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/logging/loggers.py +0 -0
  279. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/logging/logging.yml +0 -0
  280. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/main.py +0 -0
  281. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/plugins.py +0 -0
  282. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/py.typed +0 -0
  283. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/__init__.py +0 -0
  284. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/_cancel_finalizer.py +0 -0
  285. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/_cancellation_manager.py +0 -0
  286. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/_control_channel.py +0 -0
  287. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/_deployment_registry.py +0 -0
  288. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/_event_emitter.py +0 -0
  289. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/_flow_resolver.py +0 -0
  290. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/_flow_run_executor.py +0 -0
  291. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/_hook_runner.py +0 -0
  292. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/_limit_manager.py +0 -0
  293. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/_process_manager.py +0 -0
  294. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/_scheduled_run_poller.py +0 -0
  295. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/_starter_bundle.py +0 -0
  296. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/_starter_direct.py +0 -0
  297. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/_starter_engine.py +0 -0
  298. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/_state_proposer.py +0 -0
  299. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/runner.py +0 -0
  300. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/server.py +0 -0
  301. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runner/storage.py +0 -0
  302. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runtime/__init__.py +0 -0
  303. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runtime/deployment.py +0 -0
  304. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runtime/flow_run.py +0 -0
  305. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/runtime/task_run.py +0 -0
  306. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/schedules.py +0 -0
  307. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/serializers.py +0 -0
  308. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/_ui_static.py +0 -0
  309. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/admin.py +0 -0
  310. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/artifacts.py +0 -0
  311. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/automations.py +0 -0
  312. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/background_workers.py +0 -0
  313. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/block_capabilities.py +0 -0
  314. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/block_documents.py +0 -0
  315. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/block_schemas.py +0 -0
  316. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/block_types.py +0 -0
  317. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/clients.py +0 -0
  318. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/collections.py +0 -0
  319. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  320. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/concurrency_limits.py +0 -0
  321. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
  322. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/csrf_token.py +0 -0
  323. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/dependencies.py +0 -0
  324. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/deployments.py +0 -0
  325. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/events.py +0 -0
  326. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/flow_run_states.py +0 -0
  327. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/flow_runs.py +0 -0
  328. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/flows.py +0 -0
  329. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/logs.py +0 -0
  330. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/middleware.py +0 -0
  331. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/root.py +0 -0
  332. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/run_history.py +0 -0
  333. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/saved_searches.py +0 -0
  334. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/server.py +0 -0
  335. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  336. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/task_run_states.py +0 -0
  337. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/task_runs.py +0 -0
  338. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/task_workers.py +0 -0
  339. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/templates.py +0 -0
  340. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/ui/__init__.py +0 -0
  341. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/ui/flow_runs.py +0 -0
  342. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/ui/flows.py +0 -0
  343. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/ui/schemas.py +0 -0
  344. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/ui/task_runs.py +0 -0
  345. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/validation.py +0 -0
  346. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/variables.py +0 -0
  347. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/work_queues.py +0 -0
  348. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/server/api/workers.py +0 -0
  349. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/AGENTS.md +0 -0
  350. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/__init__.py +0 -0
  351. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/base.py +0 -0
  352. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/constants.py +0 -0
  353. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/legacy.py +0 -0
  354. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/__init__.py +0 -0
  355. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/_defaults.py +0 -0
  356. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/api.py +0 -0
  357. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/cli.py +0 -0
  358. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/client.py +0 -0
  359. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/cloud.py +0 -0
  360. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/deployments.py +0 -0
  361. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/events.py +0 -0
  362. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/experiments.py +0 -0
  363. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/flows.py +0 -0
  364. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/internal.py +0 -0
  365. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/logging.py +0 -0
  366. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/plugins.py +0 -0
  367. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/results.py +0 -0
  368. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/server/__init__.py +0 -0
  369. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/server/concurrency.py +0 -0
  370. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/server/database.py +0 -0
  371. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/server/deployments.py +0 -0
  372. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/server/docket.py +0 -0
  373. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/server/ephemeral.py +0 -0
  374. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/server/events.py +0 -0
  375. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  376. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/server/logs.py +0 -0
  377. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/server/services.py +0 -0
  378. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/server/tasks.py +0 -0
  379. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/server/ui.py +0 -0
  380. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/tasks.py +0 -0
  381. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/telemetry.py +0 -0
  382. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/testing.py +0 -0
  383. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/models/worker.py +0 -0
  384. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/profiles.py +0 -0
  385. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/profiles.toml +0 -0
  386. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/settings/sources.py +0 -0
  387. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/task_engine.py +0 -0
  388. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/task_runners.py +0 -0
  389. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/task_runs.py +0 -0
  390. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/task_worker.py +0 -0
  391. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/tasks.py +0 -0
  392. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/telemetry/__init__.py +0 -0
  393. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/telemetry/run_telemetry.py +0 -0
  394. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/transactions.py +0 -0
  395. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/types/__init__.py +0 -0
  396. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/types/_concurrency.py +0 -0
  397. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/types/_datetime.py +0 -0
  398. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/types/entrypoint.py +0 -0
  399. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/types/names.py +0 -0
  400. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/AGENTS.md +0 -0
  401. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/__init__.py +0 -0
  402. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/annotations.py +0 -0
  403. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/asyncutils/AGENTS.md +0 -0
  404. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/asyncutils/__init__.py +0 -0
  405. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/callables/AGENTS.md +0 -0
  406. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/callables/__init__.py +0 -0
  407. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/collections.py +0 -0
  408. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/compat.py +0 -0
  409. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/context.py +0 -0
  410. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/dispatch.py +0 -0
  411. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/dockerutils.py +0 -0
  412. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/engine/AGENTS.md +0 -0
  413. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/engine/__init__.py +0 -0
  414. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/filesystem/AGENTS.md +0 -0
  415. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/filesystem/__init__.py +0 -0
  416. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/generics.py +0 -0
  417. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/hashing.py +0 -0
  418. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/importtools.py +0 -0
  419. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/math.py +0 -0
  420. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/names.py +0 -0
  421. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/processutils/AGENTS.md +0 -0
  422. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/processutils/__init__.py +0 -0
  423. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/pydantic.py +0 -0
  424. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/render_swagger.py +0 -0
  425. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/schema_tools/AGENTS.md +0 -0
  426. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  427. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  428. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/schema_tools/validation.py +0 -0
  429. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/services.py +0 -0
  430. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/slugify.py +0 -0
  431. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/templating/AGENTS.md +0 -0
  432. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/templating/__init__.py +0 -0
  433. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/text.py +0 -0
  434. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/timeout.py +0 -0
  435. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/urls.py +0 -0
  436. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/utilities/visualization.py +0 -0
  437. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/variables.py +0 -0
  438. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/workers/AGENTS.md +0 -0
  439. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/workers/__init__.py +0 -0
  440. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/workers/_cleanup.py +0 -0
  441. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/workers/_cleanup_handlers.py +0 -0
  442. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/workers/_worker_channel/__init__.py +0 -0
  443. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/workers/_worker_channel/_protocol.py +0 -0
  444. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/workers/_worker_channel/_state.py +0 -0
  445. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/workers/_worker_channel/_sync.py +0 -0
  446. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/workers/base.py +0 -0
  447. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/workers/block.py +0 -0
  448. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/workers/cloud.py +0 -0
  449. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/workers/process.py +0 -0
  450. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/src/prefect/workers/server.py +0 -0
  451. {prefect_client-3.7.3.dev3 → prefect_client-3.7.3.dev5}/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.7.3.dev3
3
+ Version: 3.7.3.dev5
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
@@ -32,6 +32,7 @@ There is no formal public/private boundary beyond the `_` prefix convention. Mod
32
32
  - **Nested task submissions on a bounded `ThreadPoolTaskRunner` can deadlock.** When a worker task submits children and blocks on `.result()` while all `max_workers` threads are busy, the pool starves. `_warn_if_nested_submit_would_deadlock` detects this and emits a one-time warning — preserve this detection when changing pool management.
33
33
  - **Result storage resolves through three tiers, potentially making an API call.** `get_default_result_storage()` checks: (1) `PREFECT_DEFAULT_RESULT_STORAGE_BLOCK` setting, (2) server-configured default block (API call to the server's Configuration store), (3) local storage path. The API call is silently suppressed on any HTTP error. Engines use `_get_default_persist_result()` — not `should_persist_result()` — at context setup time to auto-enable persistence when a server default block is configured. Do not swap `_get_default_persist_result()` back to `should_persist_result()` in engine initialization paths; `should_persist_result()` does not consult the server default.
34
34
  - **`ResultRecordMetadata` tolerates unknown serializer types.** When loading persisted metadata, an unrecognized serializer `type` is converted to an `UnknownSerializer` placeholder rather than raising `ValidationError`. This allows inspecting result metadata when the serializer implementation is unavailable in the current environment. However, known serializer types with invalid fields still raise `ValidationError`. `UnknownSerializer.dumps()` and `UnknownSerializer.loads()` raise `RuntimeError` — the tolerance is for inspection only, not actual serialization/deserialization.
35
+ - **`ResultRecord` must be marked persisted after every storage write.** `ResultStore` calls `mark_persisted()` on every record it writes; `to_state_create` in `states.py` consults `is_persisted` as a fallback when `should_persist_result()` returns `False` (e.g., after run context teardown). Any new sync or async persist path that omits `mark_persisted()` will silently drop state metadata for already-written results.
35
36
  - **Flow-run suspension is enforced at orchestration boundaries.** Suspension is delivered via `FlowRunSuspensionRequest` and raised with `raise_if_flow_run_suspension_requested()`. When changing engines, futures, task runners, or generator execution, check before returning control to flow user code or proposing a flow state that could leave `Suspended`; keep sync/async paths aligned and avoid per-boundary API reads.
36
37
 
37
38
  ## Logging
@@ -0,0 +1,5 @@
1
+ # Generated by versioningit
2
+ __version__ = "3.7.3.dev5"
3
+ __build_date__ = "2026-05-28 09:23:34.780141+00:00"
4
+ __git_commit__ = "f7d76f21e9731cedf0462e3f9632133e1c23a439"
5
+ __dirty__ = False
@@ -16,6 +16,7 @@ from uuid import UUID
16
16
  from pydantic import (
17
17
  BaseModel,
18
18
  Field,
19
+ PrivateAttr,
19
20
  ValidationError,
20
21
  field_validator,
21
22
  model_validator,
@@ -105,6 +106,14 @@ class ResultRecord(BaseModel, Generic[R]):
105
106
 
106
107
  metadata: ResultRecordMetadata
107
108
  result: R
109
+ _persisted: bool = PrivateAttr(default=False)
110
+
111
+ @property
112
+ def is_persisted(self) -> bool:
113
+ return self._persisted
114
+
115
+ def mark_persisted(self) -> None:
116
+ self._persisted = True
108
117
 
109
118
  @property
110
119
  def expiration(self) -> DateTime | None:
@@ -137,6 +137,7 @@ from prefect.settings import (
137
137
  )
138
138
  from prefect.types._datetime import now
139
139
 
140
+ from prefect._internal.urls import strip_auth_from_url
140
141
  from prefect._internal.version_checking import (
141
142
  _api_version_check_key,
142
143
  _cache_api_version_check,
@@ -1132,7 +1133,9 @@ class PrefectClient(
1132
1133
  except Exception as e:
1133
1134
  if "Unauthorized" in str(e):
1134
1135
  raise e
1135
- raise RuntimeError(f"Failed to reach API at {self.api_url}") from e
1136
+ raise RuntimeError(
1137
+ f"Failed to reach API at {strip_auth_from_url(str(self.api_url))}"
1138
+ ) from e
1136
1139
 
1137
1140
  api_version = version.parse(api_version)
1138
1141
  client_version = version.parse(self.client_version())
@@ -1190,7 +1193,9 @@ class PrefectClient(
1190
1193
  f"{PREFECT_API_DATABASE_CONNECTION_URL.value()}"
1191
1194
  )
1192
1195
  else:
1193
- self.logger.debug(f"Connecting to API at {self.api_url}")
1196
+ self.logger.debug(
1197
+ f"Connecting to API at {strip_auth_from_url(str(self.api_url))}"
1198
+ )
1194
1199
 
1195
1200
  # Enter the httpx client's context
1196
1201
  await self._exit_stack.enter_async_context(self._client)
@@ -1519,7 +1524,9 @@ class SyncPrefectClient(
1519
1524
  except Exception as e:
1520
1525
  if "Unauthorized" in str(e):
1521
1526
  raise e
1522
- raise RuntimeError(f"Failed to reach API at {self.api_url}") from e
1527
+ raise RuntimeError(
1528
+ f"Failed to reach API at {strip_auth_from_url(str(self.api_url))}"
1529
+ ) from e
1523
1530
 
1524
1531
  api_version = version.parse(api_version)
1525
1532
  client_version = version.parse(self.client_version())
@@ -867,6 +867,7 @@ class ResultStore(BaseModel):
867
867
 
868
868
  if self.cache_result_in_memory:
869
869
  self.cache[resolved_key_path] = result_record
870
+ result_record.mark_persisted()
870
871
  return result_record
871
872
 
872
873
  def _read(self, key: str, holder: str) -> "ResultRecord[Any]":
@@ -936,6 +937,7 @@ class ResultStore(BaseModel):
936
937
 
937
938
  if self.cache_result_in_memory:
938
939
  self.cache[resolved_key_path] = result_record
940
+ result_record.mark_persisted()
939
941
  return result_record
940
942
 
941
943
  def read(
@@ -1122,6 +1124,7 @@ class ResultStore(BaseModel):
1122
1124
  (result_record.metadata.storage_key,),
1123
1125
  {"content": result_record.serialize()},
1124
1126
  )
1127
+ result_record.mark_persisted()
1125
1128
  if self.cache_result_in_memory:
1126
1129
  self.cache[key] = result_record
1127
1130
 
@@ -1185,6 +1188,7 @@ class ResultStore(BaseModel):
1185
1188
  (result_record.metadata.storage_key,),
1186
1189
  {"content": result_record.serialize()},
1187
1190
  )
1191
+ result_record.mark_persisted()
1188
1192
  if self.cache_result_in_memory:
1189
1193
  self.cache[key] = result_record
1190
1194
 
@@ -138,7 +138,11 @@ These validations exist to prevent git argument injection. Do not bypass them wh
138
138
 
139
139
  **Env/sys.path isolation:** `_prepared_workspace_context` mutates `os.environ` and `sys.path` in the caller process but does NOT change `os.getcwd()`. The parent working directory is preserved.
140
140
 
141
- **Automatic `uv` command selection:** When no explicit command is passed, `WorkspaceResolvingEngineCommandStarter` auto-selects `uv run --project <project_root> -m prefect.flow_engine` but only when all three conditions hold: `pyproject.toml` exists at `project_root`, the `project.dependencies` list includes `prefect`, and `uv` is found via the workspace's `PATH` env var (not the system PATH). If any condition fails, the command falls back to `None`. Explicit commands always take precedence.
141
+ **Local path in-place execution:** When no pull steps are configured and the entrypoint file exists at `deployment.path` but not in the workspace root, `prepare_workspace` sets `working_directory` to the local path not under `workspace_root`. The workspace directory is still created but is not the execution root. This is the "image-baked" pattern: code lives at a fixed local path (e.g., inside a container), not in object storage.
142
+
143
+ **Pull-step directory fallback:** When pull steps run but none produces a `directory` output or changes CWD, `_ensure_entrypoint_in_workspace` copies storage into the workspace root as a fallback. This handles setup-only pull steps (e.g., `run_shell_script` for environment prep) that do not control the working directory themselves.
144
+
145
+ **Automatic dependency installation:** By default, `WorkspaceResolvingEngineCommandStarter` does not install dependencies before starting a flow run. When no explicit command is passed and `PREFECT_RUNNER_AUTO_INSTALL_DEPENDENCIES` is true, it auto-selects `uv run --no-default-groups --project <project_root> -m prefect.flow_engine` — but only when all three conditions hold: `pyproject.toml` exists at `project_root`, the `project.dependencies` list includes `prefect`, and `uv` is found via the workspace's `PATH` env var (not the system PATH). If the setting is false or any condition fails, the command falls back to `None`. Explicit commands always take precedence.
142
146
 
143
147
  ## Reference
144
148
 
@@ -174,6 +174,61 @@ def _workspace_destination_for_deployment_path(
174
174
  return (workspace_root / relative_destination).resolve()
175
175
 
176
176
 
177
+ def _resolve_local_runtime_directory(
178
+ path: str | None, source_cwd: Path, storage_base_path: Path | None
179
+ ) -> Path:
180
+ resolved_path = _resolve_local_deployment_path(path, source_cwd, storage_base_path)
181
+ return Path(resolved_path).resolve() if resolved_path is not None else source_cwd
182
+
183
+
184
+ def _entrypoint_file_path(entrypoint: str, working_directory: Path) -> Path | None:
185
+ entrypoint = _resolve_runtime_entrypoint(entrypoint)
186
+ if ":" not in entrypoint:
187
+ return None
188
+
189
+ path, _object_name = entrypoint.rsplit(":", 1)
190
+ if not path.endswith(".py"):
191
+ return None
192
+
193
+ entrypoint_path = Path(path).expanduser()
194
+ if not entrypoint_path.is_absolute():
195
+ entrypoint_path = working_directory / entrypoint_path
196
+ return entrypoint_path.resolve()
197
+
198
+
199
+ def _has_entrypoint_file(entrypoint: str, working_directory: Path) -> bool:
200
+ entrypoint_path = _entrypoint_file_path(entrypoint, working_directory)
201
+ return entrypoint_path is not None and entrypoint_path.is_file()
202
+
203
+
204
+ async def _ensure_entrypoint_in_workspace(
205
+ client: "PrefectClient",
206
+ deployment: "DeploymentResponse",
207
+ workspace_root: Path,
208
+ source_cwd: Path,
209
+ storage_base_path: Path | None,
210
+ ) -> Path:
211
+ if _has_entrypoint_file(deployment.entrypoint, workspace_root):
212
+ return workspace_root
213
+
214
+ local_runtime_directory = _resolve_local_runtime_directory(
215
+ deployment.path, source_cwd, storage_base_path
216
+ )
217
+ if not deployment.storage_document_id and not _has_entrypoint_file(
218
+ deployment.entrypoint, local_runtime_directory
219
+ ):
220
+ return workspace_root
221
+
222
+ await _pull_storage_into_workspace(
223
+ client,
224
+ deployment,
225
+ workspace_root,
226
+ source_cwd,
227
+ storage_base_path,
228
+ )
229
+ return workspace_root
230
+
231
+
177
232
  @contextlib.contextmanager
178
233
  def _redirect_stdout_to_stderr() -> Any:
179
234
  stdout = sys.stdout
@@ -218,9 +273,12 @@ async def _pull_storage_into_workspace(
218
273
  else None
219
274
  )
220
275
  else:
221
- from_path = _resolve_local_deployment_path(
276
+ resolved_local_path = _resolve_local_deployment_path(
222
277
  deployment.path, source_cwd, storage_base_path
223
278
  )
279
+ from_path = (
280
+ resolved_local_path if resolved_local_path is not None else str(source_cwd)
281
+ )
224
282
  storage_block = LocalFileSystem(basepath=from_path)
225
283
 
226
284
  LOGGER.info("Downloading flow code from storage at %r", from_path)
@@ -253,11 +311,17 @@ async def prepare_workspace(
253
311
  source_cwd,
254
312
  storage_base_path,
255
313
  )
256
- os.chdir(working_directory)
257
- working_directory = Path.cwd().resolve()
314
+ local_runtime_directory = _resolve_local_runtime_directory(
315
+ deployment.path, source_cwd, storage_base_path
316
+ )
317
+ if not _has_entrypoint_file(
318
+ deployment.entrypoint, working_directory
319
+ ) and _has_entrypoint_file(deployment.entrypoint, local_runtime_directory):
320
+ working_directory = local_runtime_directory
258
321
  else:
322
+ working_directory = resolved_workspace_root
323
+ step_selected_working_directory = False
259
324
  os.chdir(resolved_workspace_root)
260
- working_directory = Path.cwd().resolve()
261
325
  LOGGER.info("Running %s deployment pull step(s)", len(deployment.pull_steps))
262
326
 
263
327
  def _track_step_workspace(
@@ -266,17 +330,19 @@ async def prepare_workspace(
266
330
  step_start_cwd: Path | None,
267
331
  step_end_cwd: Path | None,
268
332
  ) -> None:
269
- nonlocal working_directory
333
+ nonlocal step_selected_working_directory, working_directory
270
334
 
271
335
  if isinstance(step_output, dict) and step_output.get("directory"):
272
336
  resolved_directory = _resolve_directory_output(
273
337
  step_output, step_end_cwd
274
338
  )
275
339
  if resolved_directory is not None:
340
+ step_selected_working_directory = True
276
341
  working_directory = resolved_directory
277
342
  return
278
343
 
279
344
  if step_end_cwd is not None and step_end_cwd != step_start_cwd:
345
+ step_selected_working_directory = True
280
346
  working_directory = step_end_cwd
281
347
 
282
348
  with _observe_step_completion(_track_step_workspace):
@@ -288,6 +354,18 @@ async def prepare_workspace(
288
354
  logger=LOGGER,
289
355
  )
290
356
 
357
+ if not step_selected_working_directory:
358
+ working_directory = await _ensure_entrypoint_in_workspace(
359
+ client,
360
+ deployment,
361
+ resolved_workspace_root,
362
+ source_cwd,
363
+ storage_base_path,
364
+ )
365
+
366
+ os.chdir(working_directory)
367
+ working_directory = Path.cwd().resolve()
368
+
291
369
  project_root = _find_project_root(working_directory, resolved_workspace_root)
292
370
  return PreparedWorkspace(
293
371
  workspace_root=resolved_workspace_root,
@@ -167,6 +167,9 @@ def _pyproject_declares_prefect_dependency(pyproject: Path) -> bool:
167
167
 
168
168
 
169
169
  def _uv_run_command(workspace: PreparedWorkspace) -> str | None:
170
+ if not get_current_settings().runner.auto_install_dependencies:
171
+ return None
172
+
170
173
  project_root = workspace.project_root
171
174
  if project_root is None:
172
175
  return None
@@ -188,6 +191,7 @@ def _uv_run_command(workspace: PreparedWorkspace) -> str | None:
188
191
  [
189
192
  uv_executable,
190
193
  "run",
194
+ "--no-default-groups",
191
195
  "--project",
192
196
  str(project_root),
193
197
  "-m",
@@ -0,0 +1,86 @@
1
+ from __future__ import annotations
2
+
3
+ import importlib
4
+ from typing import TYPE_CHECKING
5
+
6
+ if TYPE_CHECKING:
7
+ from prefect.server.api import (
8
+ admin,
9
+ artifacts,
10
+ automations,
11
+ block_capabilities,
12
+ block_documents,
13
+ block_schemas,
14
+ block_types,
15
+ collections,
16
+ concurrency_limits,
17
+ concurrency_limits_v2,
18
+ csrf_token,
19
+ dependencies,
20
+ deployments,
21
+ events,
22
+ flow_run_states,
23
+ flow_runs,
24
+ flows,
25
+ logs,
26
+ middleware,
27
+ root,
28
+ run_history,
29
+ saved_searches,
30
+ server,
31
+ task_run_states,
32
+ task_runs,
33
+ task_workers,
34
+ templates,
35
+ ui,
36
+ variables,
37
+ work_queues,
38
+ workers,
39
+ )
40
+
41
+ __all__ = [
42
+ "admin",
43
+ "artifacts",
44
+ "automations",
45
+ "block_capabilities",
46
+ "block_documents",
47
+ "block_schemas",
48
+ "block_types",
49
+ "collections",
50
+ "concurrency_limits",
51
+ "concurrency_limits_v2",
52
+ "csrf_token",
53
+ "dependencies",
54
+ "deployments",
55
+ "events",
56
+ "flow_run_states",
57
+ "flow_runs",
58
+ "flows",
59
+ "logs",
60
+ "middleware",
61
+ "root",
62
+ "run_history",
63
+ "saved_searches",
64
+ "server",
65
+ "task_run_states",
66
+ "task_runs",
67
+ "task_workers",
68
+ "templates",
69
+ "ui",
70
+ "variables",
71
+ "work_queues",
72
+ "workers",
73
+ ]
74
+
75
+
76
+ def __getattr__(name: str) -> object:
77
+ module_name = f"{__name__}.{name}"
78
+ try:
79
+ module = importlib.import_module(module_name)
80
+ except ModuleNotFoundError as exc:
81
+ if exc.name != module_name:
82
+ raise
83
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}") from None
84
+
85
+ globals()[name] = module
86
+ return module
@@ -0,0 +1,225 @@
1
+ # This file is generated by `scripts/generate_settings_types.py`.
2
+ # Update the generation script to update this file.
3
+ from typing import Literal, TypeAlias
4
+
5
+ SettingAccessor: TypeAlias = Literal[
6
+ "api.auth_string",
7
+ "api.enable_http2",
8
+ "api.key",
9
+ "api.request_timeout",
10
+ "api.ssl_cert_file",
11
+ "api.tls_insecure_skip_verify",
12
+ "api.url",
13
+ "cli.colors",
14
+ "cli.prompt",
15
+ "cli.wrap_lines",
16
+ "client.csrf_support_enabled",
17
+ "client.custom_headers",
18
+ "client.max_retries",
19
+ "client.metrics.enabled",
20
+ "client.metrics.port",
21
+ "client.retry_extra_codes",
22
+ "client.retry_jitter_factor",
23
+ "client.server_version_check_enabled",
24
+ "cloud.api_url",
25
+ "cloud.enable_orchestration_telemetry",
26
+ "cloud.max_log_size",
27
+ "cloud.ui_url",
28
+ "debug_mode",
29
+ "deployments.default_docker_build_namespace",
30
+ "deployments.default_work_pool_name",
31
+ "events.worker_max_queue_size",
32
+ "experiments.warn",
33
+ "flows.default_retries",
34
+ "flows.default_retry_delay_seconds",
35
+ "flows.heartbeat_frequency",
36
+ "home",
37
+ "internal.logging_level",
38
+ "logging.colors",
39
+ "logging.config_path",
40
+ "logging.extra_loggers",
41
+ "logging.level",
42
+ "logging.log_prints",
43
+ "logging.markup",
44
+ "logging.to_api.batch_interval",
45
+ "logging.to_api.batch_size",
46
+ "logging.to_api.enabled",
47
+ "logging.to_api.max_log_size",
48
+ "logging.to_api.when_missing_flow",
49
+ "plugins.allow",
50
+ "plugins.deny",
51
+ "plugins.enabled",
52
+ "plugins.safe_mode",
53
+ "plugins.setup_timeout_seconds",
54
+ "plugins.strict",
55
+ "profiles_path",
56
+ "results.default_serializer",
57
+ "results.default_storage_block",
58
+ "results.local_storage_path",
59
+ "results.persist_by_default",
60
+ "runner.crash_on_cancellation_failure",
61
+ "runner.poll_frequency",
62
+ "runner.process_limit",
63
+ "runner.server.enable",
64
+ "runner.server.host",
65
+ "runner.server.log_level",
66
+ "runner.server.missed_polls_tolerance",
67
+ "runner.server.port",
68
+ "server.analytics_enabled",
69
+ "server.api.auth_string",
70
+ "server.api.base_path",
71
+ "server.api.cors_allowed_headers",
72
+ "server.api.cors_allowed_methods",
73
+ "server.api.cors_allowed_origins",
74
+ "server.api.csrf_protection_enabled",
75
+ "server.api.csrf_token_expiration",
76
+ "server.api.default_limit",
77
+ "server.api.host",
78
+ "server.api.keepalive_timeout",
79
+ "server.api.max_parameter_size",
80
+ "server.api.port",
81
+ "server.api.websocket_ping_interval",
82
+ "server.api.websocket_ping_timeout",
83
+ "server.concurrency.initial_deployment_lease_duration",
84
+ "server.concurrency.lease_storage",
85
+ "server.concurrency.maximum_concurrency_slot_wait_seconds",
86
+ "server.database.connection_timeout",
87
+ "server.database.connection_url",
88
+ "server.database.driver",
89
+ "server.database.echo",
90
+ "server.database.host",
91
+ "server.database.migrate_on_start",
92
+ "server.database.name",
93
+ "server.database.password",
94
+ "server.database.port",
95
+ "server.database.sqlalchemy.connect_args.application_name",
96
+ "server.database.sqlalchemy.connect_args.prepared_statement_cache_size",
97
+ "server.database.sqlalchemy.connect_args.search_path",
98
+ "server.database.sqlalchemy.connect_args.statement_cache_size",
99
+ "server.database.sqlalchemy.connect_args.tls.ca_file",
100
+ "server.database.sqlalchemy.connect_args.tls.cert_file",
101
+ "server.database.sqlalchemy.connect_args.tls.check_hostname",
102
+ "server.database.sqlalchemy.connect_args.tls.enabled",
103
+ "server.database.sqlalchemy.connect_args.tls.key_file",
104
+ "server.database.sqlalchemy.max_overflow",
105
+ "server.database.sqlalchemy.pool_recycle",
106
+ "server.database.sqlalchemy.pool_size",
107
+ "server.database.sqlalchemy.pool_timeout",
108
+ "server.database.timeout",
109
+ "server.database.user",
110
+ "server.deployment_schedule_max_scheduled_runs",
111
+ "server.deployments.concurrency_slot_wait_seconds",
112
+ "server.docket.name",
113
+ "server.docket.url",
114
+ "server.ephemeral.enabled",
115
+ "server.ephemeral.startup_timeout_seconds",
116
+ "server.events.causal_ordering",
117
+ "server.events.expired_bucket_buffer",
118
+ "server.events.maximum_event_name_length",
119
+ "server.events.maximum_labels_per_resource",
120
+ "server.events.maximum_related_resources",
121
+ "server.events.maximum_size_bytes",
122
+ "server.events.maximum_websocket_backfill",
123
+ "server.events.messaging_broker",
124
+ "server.events.messaging_cache",
125
+ "server.events.proactive_granularity",
126
+ "server.events.related_resource_cache_ttl",
127
+ "server.events.retention_period",
128
+ "server.events.stream_out_enabled",
129
+ "server.events.websocket_backfill_page_size",
130
+ "server.flow_run_graph.max_artifacts",
131
+ "server.flow_run_graph.max_nodes",
132
+ "server.log_retryable_errors",
133
+ "server.logging_level",
134
+ "server.logs.stream_out_enabled",
135
+ "server.logs.stream_publishing_enabled",
136
+ "server.memo_store_path",
137
+ "server.memoize_block_auto_registration",
138
+ "server.metrics_enabled",
139
+ "server.register_blocks_on_start",
140
+ "server.services.cancellation_cleanup.enabled",
141
+ "server.services.cancellation_cleanup.loop_seconds",
142
+ "server.services.db_vacuum.batch_size",
143
+ "server.services.db_vacuum.enabled",
144
+ "server.services.db_vacuum.event_retention_overrides",
145
+ "server.services.db_vacuum.loop_seconds",
146
+ "server.services.db_vacuum.retention_period",
147
+ "server.services.event_logger.enabled",
148
+ "server.services.event_persister.batch_size",
149
+ "server.services.event_persister.enabled",
150
+ "server.services.event_persister.flush_interval",
151
+ "server.services.event_persister.max_flush_retries",
152
+ "server.services.event_persister.queue_max_size",
153
+ "server.services.event_persister.read_batch_size",
154
+ "server.services.foreman.deployment_last_polled_timeout_seconds",
155
+ "server.services.foreman.enabled",
156
+ "server.services.foreman.fallback_heartbeat_interval_seconds",
157
+ "server.services.foreman.inactivity_heartbeat_multiple",
158
+ "server.services.foreman.loop_seconds",
159
+ "server.services.foreman.work_queue_last_polled_timeout_seconds",
160
+ "server.services.late_runs.after_seconds",
161
+ "server.services.late_runs.enabled",
162
+ "server.services.late_runs.loop_seconds",
163
+ "server.services.pause_expirations.enabled",
164
+ "server.services.pause_expirations.loop_seconds",
165
+ "server.services.repossessor.enabled",
166
+ "server.services.repossessor.loop_seconds",
167
+ "server.services.scheduler.deployment_batch_size",
168
+ "server.services.scheduler.enabled",
169
+ "server.services.scheduler.insert_batch_size",
170
+ "server.services.scheduler.loop_seconds",
171
+ "server.services.scheduler.max_runs",
172
+ "server.services.scheduler.max_scheduled_time",
173
+ "server.services.scheduler.min_runs",
174
+ "server.services.scheduler.min_scheduled_time",
175
+ "server.services.scheduler.recent_deployments_loop_seconds",
176
+ "server.services.task_run_recorder.batch_size",
177
+ "server.services.task_run_recorder.enabled",
178
+ "server.services.task_run_recorder.flush_interval",
179
+ "server.services.task_run_recorder.read_batch_size",
180
+ "server.services.triggers.enabled",
181
+ "server.services.triggers.pg_notify_heartbeat_interval_seconds",
182
+ "server.services.triggers.pg_notify_reconnect_interval_seconds",
183
+ "server.services.triggers.read_batch_size",
184
+ "server.tasks.max_cache_key_length",
185
+ "server.tasks.scheduling.max_retry_queue_size",
186
+ "server.tasks.scheduling.max_scheduled_queue_size",
187
+ "server.tasks.scheduling.pending_task_timeout",
188
+ "server.tasks.tag_concurrency_slot_wait_seconds",
189
+ "server.ui.api_url",
190
+ "server.ui.enabled",
191
+ "server.ui.serve_base",
192
+ "server.ui.show_promotional_content",
193
+ "server.ui.static_directory",
194
+ "server.ui.v2_enabled",
195
+ "server.worker_channel.cleanup_completed_idempotency_retention_seconds",
196
+ "server.worker_channel.cleanup_lease_seconds",
197
+ "server.worker_channel.cleanup_max_delivery_attempts",
198
+ "server.worker_channel.cleanup_queue_storage",
199
+ "silence_api_url_misconfiguration",
200
+ "tasks.default_no_cache",
201
+ "tasks.default_persist_result",
202
+ "tasks.default_retries",
203
+ "tasks.default_retry_delay_seconds",
204
+ "tasks.disable_caching",
205
+ "tasks.refresh_cache",
206
+ "tasks.runner.process_pool_max_workers",
207
+ "tasks.runner.thread_pool_max_workers",
208
+ "tasks.scheduling.default_storage_block",
209
+ "tasks.scheduling.delete_failed_submissions",
210
+ "telemetry.enable_resource_metrics",
211
+ "telemetry.resource_metrics_interval_seconds",
212
+ "testing.test_mode",
213
+ "testing.test_setting",
214
+ "testing.unit_test_loop_debug",
215
+ "testing.unit_test_mode",
216
+ "ui_url",
217
+ "worker.cancellation_poll_seconds",
218
+ "worker.debug_mode",
219
+ "worker.enable_cancellation",
220
+ "worker.heartbeat_seconds",
221
+ "worker.prefetch_seconds",
222
+ "worker.query_seconds",
223
+ "worker.webserver.host",
224
+ "worker.webserver.port",
225
+ ]
@@ -4,8 +4,11 @@ from typing import TYPE_CHECKING, Any, Generator, Iterable, Mapping, Optional
4
4
  from prefect.settings.models.root import Settings
5
5
 
6
6
  if TYPE_CHECKING:
7
+ from prefect.settings._types import SettingAccessor
7
8
  from prefect.settings.legacy import Setting
8
9
 
10
+ SettingKey = Setting | SettingAccessor
11
+
9
12
 
10
13
  def get_current_settings() -> Settings:
11
14
  """
@@ -23,9 +26,9 @@ def get_current_settings() -> Settings:
23
26
 
24
27
  @contextmanager
25
28
  def temporary_settings(
26
- updates: Optional[Mapping["Setting", Any]] = None,
27
- set_defaults: Optional[Mapping["Setting", Any]] = None,
28
- restore_defaults: Optional[Iterable["Setting"]] = None,
29
+ updates: Optional[Mapping["SettingKey", Any]] = None,
30
+ set_defaults: Optional[Mapping["SettingKey", Any]] = None,
31
+ restore_defaults: Optional[Iterable["SettingKey"]] = None,
29
32
  ) -> Generator[Settings, None, None]:
30
33
  """
31
34
  Temporarily override the current settings by entering a new profile.
@@ -40,6 +43,9 @@ def temporary_settings(
40
43
  with temporary_settings(updates={PREFECT_API_URL: "foo"}):
41
44
  assert PREFECT_API_URL.value() == "foo"
42
45
 
46
+ with temporary_settings(updates={"api.url": "bar"}):
47
+ assert get_current_settings().api.url == "bar"
48
+
43
49
  with temporary_settings(set_defaults={PREFECT_API_URL: "bar"}):
44
50
  assert PREFECT_API_URL.value() == "foo"
45
51