prefect-client 3.7.9.dev5__tar.gz → 3.7.9.dev7__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 (452) hide show
  1. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/PKG-INFO +3 -3
  2. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/pyproject.toml +2 -2
  3. prefect_client-3.7.9.dev7/src/prefect/_build_info.py +5 -0
  4. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/bundles/_file_collector.py +2 -2
  5. prefect_client-3.7.9.dev7/src/prefect/logging/filters.py +105 -0
  6. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/_workspace_starter.py +18 -10
  7. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/deployments.py +1 -1
  8. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/flow_runs.py +1 -1
  9. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/flows.py +1 -1
  10. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/task_runs.py +1 -1
  11. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/sources.py +12 -4
  12. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/task_runners.py +48 -9
  13. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/filesystem/__init__.py +1 -1
  14. prefect_client-3.7.9.dev5/src/prefect/_build_info.py +0 -5
  15. prefect_client-3.7.9.dev5/src/prefect/logging/filters.py +0 -41
  16. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/.gitignore +0 -0
  17. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/LICENSE +0 -0
  18. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/README.md +0 -0
  19. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/hatch_build.py +0 -0
  20. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/.prefectignore +0 -0
  21. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/AGENTS.md +0 -0
  22. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/__init__.py +0 -0
  23. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/__main__.py +0 -0
  24. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_experimental/__init__.py +0 -0
  25. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_experimental/_launchers.py +0 -0
  26. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_experimental/bundles/__init__.py +0 -0
  27. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_experimental/bundles/execute.py +0 -0
  28. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_experimental/plugins/__init__.py +0 -0
  29. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_experimental/plugins/apply.py +0 -0
  30. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
  31. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_experimental/plugins/manager.py +0 -0
  32. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_experimental/plugins/spec.py +0 -0
  33. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_experimental/sla/__init__.py +0 -0
  34. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_experimental/sla/client.py +0 -0
  35. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_experimental/sla/objects.py +0 -0
  36. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_flow_run_suspension.py +0 -0
  37. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/__init__.py +0 -0
  38. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/_logging.py +0 -0
  39. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/analytics/__init__.py +0 -0
  40. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/analytics/ci_detection.py +0 -0
  41. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/analytics/client.py +0 -0
  42. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/analytics/device_id.py +0 -0
  43. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/analytics/emit.py +0 -0
  44. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/analytics/enabled.py +0 -0
  45. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/analytics/events.py +0 -0
  46. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/analytics/milestones.py +0 -0
  47. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/analytics/notice.py +0 -0
  48. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/analytics/service.py +0 -0
  49. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/ast_utils.py +0 -0
  50. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/buildx.py +0 -0
  51. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/compatibility/__init__.py +0 -0
  52. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  53. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/compatibility/backports.py +0 -0
  54. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/compatibility/blocks.py +0 -0
  55. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  56. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/compatibility/deprecated_paths.py +0 -0
  57. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/compatibility/migration.py +0 -0
  58. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/compatibility/starlette.py +0 -0
  59. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/concurrency/__init__.py +0 -0
  60. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/concurrency/api.py +0 -0
  61. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/concurrency/calls.py +0 -0
  62. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  63. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  64. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/concurrency/inspection.py +0 -0
  65. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/concurrency/primitives.py +0 -0
  66. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/concurrency/services.py +0 -0
  67. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/concurrency/threads.py +0 -0
  68. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/concurrency/waiters.py +0 -0
  69. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/control_listener.py +0 -0
  70. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/deprecated.py +0 -0
  71. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/engine.py +0 -0
  72. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/git.py +0 -0
  73. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/infrastructure_exit_codes.py +0 -0
  74. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/installation.py +0 -0
  75. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/integrations.py +0 -0
  76. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/launchers.py +0 -0
  77. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/lazy.py +0 -0
  78. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/metrics.py +0 -0
  79. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/observability.py +0 -0
  80. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/observers.py +0 -0
  81. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/plugins/__init__.py +0 -0
  82. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/plugins/apply.py +0 -0
  83. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/plugins/collections.py +0 -0
  84. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/plugins/diagnostics.py +0 -0
  85. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/plugins/manager.py +0 -0
  86. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/plugins/spec.py +0 -0
  87. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/plugins/startup.py +0 -0
  88. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/pydantic/__init__.py +0 -0
  89. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/pydantic/schemas.py +0 -0
  90. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  91. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  92. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/pydantic/validated_func.py +0 -0
  93. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/pytz.py +0 -0
  94. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/result_records.py +0 -0
  95. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/retries.py +0 -0
  96. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/schema.py +0 -0
  97. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/schemas/__init__.py +0 -0
  98. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/schemas/_registry.py +0 -0
  99. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/schemas/bases.py +0 -0
  100. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/schemas/fields.py +0 -0
  101. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/schemas/serializers.py +0 -0
  102. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/schemas/validators.py +0 -0
  103. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/send_entrypoint_logs.py +0 -0
  104. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/states.py +0 -0
  105. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/testing.py +0 -0
  106. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/urls.py +0 -0
  107. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/uuid7.py +0 -0
  108. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/version_checking.py +0 -0
  109. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/versioning.py +0 -0
  110. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/waiters.py +0 -0
  111. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_internal/websockets.py +0 -0
  112. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_sdk/__init__.py +0 -0
  113. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_sdk/fetcher.py +0 -0
  114. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_sdk/generator.py +0 -0
  115. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_sdk/models.py +0 -0
  116. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_sdk/naming.py +0 -0
  117. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_sdk/renderer.py +0 -0
  118. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_sdk/schema_converter.py +0 -0
  119. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_sdk/templates/__init__.py +0 -0
  120. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_sdk/templates/sdk.py.jinja +0 -0
  121. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_sdk/types.py +0 -0
  122. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_sdk/unions.py +0 -0
  123. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_vendor/croniter/__init__.py +0 -0
  124. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/_vendor/croniter/croniter.py +0 -0
  125. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/agent.py +0 -0
  126. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/analytics/__init__.py +0 -0
  127. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/artifacts.py +0 -0
  128. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/assets/__init__.py +0 -0
  129. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/assets/core.py +0 -0
  130. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/assets/materialize.py +0 -0
  131. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/automations.py +0 -0
  132. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/blocks/AGENTS.md +0 -0
  133. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/blocks/__init__.py +0 -0
  134. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/blocks/abstract.py +0 -0
  135. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/blocks/core.py +0 -0
  136. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/blocks/fields.py +0 -0
  137. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/blocks/notifications.py +0 -0
  138. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/blocks/redis.py +0 -0
  139. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/blocks/system.py +0 -0
  140. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/blocks/webhook.py +0 -0
  141. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/bundles/__init__.py +0 -0
  142. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/bundles/_ignore_filter.py +0 -0
  143. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/bundles/_path_resolver.py +0 -0
  144. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/bundles/_zip_builder.py +0 -0
  145. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/bundles/_zip_extractor.py +0 -0
  146. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/bundles/execute.py +0 -0
  147. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/cache_policies.py +0 -0
  148. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/AGENTS.md +0 -0
  149. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/__init__.py +0 -0
  150. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/attribution.py +0 -0
  151. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/base.py +0 -0
  152. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/cloud.py +0 -0
  153. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/collections.py +0 -0
  154. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/constants.py +0 -0
  155. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/__init__.py +0 -0
  156. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
  157. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  158. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
  159. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_automations/client.py +0 -0
  160. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
  161. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  162. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
  163. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  164. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
  165. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  166. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
  167. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
  168. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
  169. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_deployments/client.py +0 -0
  170. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_events/__init__.py +0 -0
  171. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_events/client.py +0 -0
  172. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
  173. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  174. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
  175. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_flows/client.py +0 -0
  176. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
  177. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_logs/client.py +0 -0
  178. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
  179. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_variables/client.py +0 -0
  180. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
  181. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
  182. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/base.py +0 -0
  183. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/orchestration/routes.py +0 -0
  184. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/schemas/__init__.py +0 -0
  185. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/schemas/actions.py +0 -0
  186. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/schemas/events.py +0 -0
  187. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/schemas/filters.py +0 -0
  188. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/schemas/objects.py +0 -0
  189. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/schemas/responses.py +0 -0
  190. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/schemas/schedules.py +0 -0
  191. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/schemas/sorting.py +0 -0
  192. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/schemas/worker_channel.py +0 -0
  193. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/subscriptions.py +0 -0
  194. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/types/__init__.py +0 -0
  195. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  196. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/client/utilities.py +0 -0
  197. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/concurrency/AGENTS.md +0 -0
  198. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/concurrency/__init__.py +0 -0
  199. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/concurrency/_asyncio.py +0 -0
  200. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/concurrency/_events.py +0 -0
  201. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/concurrency/_leases.py +0 -0
  202. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/concurrency/_sync.py +0 -0
  203. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/concurrency/asyncio.py +0 -0
  204. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/concurrency/context.py +0 -0
  205. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/concurrency/services.py +0 -0
  206. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/concurrency/sync.py +0 -0
  207. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/concurrency/v1/__init__.py +0 -0
  208. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  209. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/concurrency/v1/_events.py +0 -0
  210. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/concurrency/v1/asyncio.py +0 -0
  211. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/concurrency/v1/context.py +0 -0
  212. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/concurrency/v1/services.py +0 -0
  213. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/concurrency/v1/sync.py +0 -0
  214. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/context.py +0 -0
  215. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/deployments/AGENTS.md +0 -0
  216. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/deployments/__init__.py +0 -0
  217. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/deployments/base.py +0 -0
  218. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/deployments/deployments.py +0 -0
  219. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/deployments/flow_runs.py +0 -0
  220. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/deployments/runner.py +0 -0
  221. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/deployments/schedules.py +0 -0
  222. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/deployments/steps/__init__.py +0 -0
  223. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/deployments/steps/core.py +0 -0
  224. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/deployments/steps/pull.py +0 -0
  225. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/deployments/steps/utility.py +0 -0
  226. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/docker/__init__.py +0 -0
  227. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/docker/_buildx.py +0 -0
  228. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/docker/docker_image.py +0 -0
  229. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/engine.py +0 -0
  230. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/events/AGENTS.md +0 -0
  231. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/events/__init__.py +0 -0
  232. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/events/actions.py +0 -0
  233. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/events/clients.py +0 -0
  234. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/events/filters.py +0 -0
  235. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/events/related.py +0 -0
  236. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/events/schemas/__init__.py +0 -0
  237. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/events/schemas/automations.py +0 -0
  238. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  239. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/events/schemas/events.py +0 -0
  240. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/events/schemas/labelling.py +0 -0
  241. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/events/subscribers.py +0 -0
  242. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/events/utilities.py +0 -0
  243. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/events/worker.py +0 -0
  244. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/exceptions.py +0 -0
  245. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/filesystems.py +0 -0
  246. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/flow_engine.py +0 -0
  247. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/flow_runs.py +0 -0
  248. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/flows.py +0 -0
  249. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/futures.py +0 -0
  250. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/infrastructure/__init__.py +0 -0
  251. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/infrastructure/base.py +0 -0
  252. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  253. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  254. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  255. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  256. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  257. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  258. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/input/__init__.py +0 -0
  259. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/input/actions.py +0 -0
  260. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/input/run_input.py +0 -0
  261. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/locking/__init__.py +0 -0
  262. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/locking/_filelock.py +0 -0
  263. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/locking/filesystem.py +0 -0
  264. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/locking/memory.py +0 -0
  265. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/locking/protocol.py +0 -0
  266. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/logging/AGENTS.md +0 -0
  267. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/logging/__init__.py +0 -0
  268. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/logging/clients.py +0 -0
  269. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/logging/configuration.py +0 -0
  270. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/logging/formatters.py +0 -0
  271. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/logging/handlers.py +0 -0
  272. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/logging/highlighters.py +0 -0
  273. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/logging/loggers.py +0 -0
  274. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/logging/logging.yml +0 -0
  275. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/main.py +0 -0
  276. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/plugins.py +0 -0
  277. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/py.typed +0 -0
  278. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/results.py +0 -0
  279. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/AGENTS.md +0 -0
  280. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/__init__.py +0 -0
  281. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/_cancel_finalizer.py +0 -0
  282. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/_cancellation_manager.py +0 -0
  283. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/_control_channel.py +0 -0
  284. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/_deployment_registry.py +0 -0
  285. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/_event_emitter.py +0 -0
  286. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/_flow_resolver.py +0 -0
  287. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/_flow_run_executor.py +0 -0
  288. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/_hook_runner.py +0 -0
  289. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/_limit_manager.py +0 -0
  290. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/_process_manager.py +0 -0
  291. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/_scheduled_run_poller.py +0 -0
  292. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/_starter_bundle.py +0 -0
  293. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/_starter_direct.py +0 -0
  294. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/_starter_engine.py +0 -0
  295. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/_state_proposer.py +0 -0
  296. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/_workspace_resolver.py +0 -0
  297. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/runner.py +0 -0
  298. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/server.py +0 -0
  299. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runner/storage.py +0 -0
  300. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runtime/__init__.py +0 -0
  301. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runtime/deployment.py +0 -0
  302. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runtime/flow_run.py +0 -0
  303. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/runtime/task_run.py +0 -0
  304. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/schedules.py +0 -0
  305. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/serializers.py +0 -0
  306. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/__init__.py +0 -0
  307. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/_ui_static.py +0 -0
  308. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/admin.py +0 -0
  309. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/artifacts.py +0 -0
  310. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/automations.py +0 -0
  311. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/background_workers.py +0 -0
  312. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/block_capabilities.py +0 -0
  313. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/block_documents.py +0 -0
  314. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/block_schemas.py +0 -0
  315. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/block_types.py +0 -0
  316. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/clients.py +0 -0
  317. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/collections.py +0 -0
  318. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  319. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/concurrency_limits.py +0 -0
  320. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
  321. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/csrf_token.py +0 -0
  322. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/dependencies.py +0 -0
  323. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/events.py +0 -0
  324. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/flow_run_states.py +0 -0
  325. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/logs.py +0 -0
  326. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/middleware.py +0 -0
  327. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/root.py +0 -0
  328. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/run_history.py +0 -0
  329. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/saved_searches.py +0 -0
  330. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/server.py +0 -0
  331. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  332. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/task_run_states.py +0 -0
  333. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/task_workers.py +0 -0
  334. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/templates.py +0 -0
  335. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/ui/__init__.py +0 -0
  336. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/ui/flow_runs.py +0 -0
  337. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/ui/flows.py +0 -0
  338. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/ui/schemas.py +0 -0
  339. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/ui/task_runs.py +0 -0
  340. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/validation.py +0 -0
  341. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/variables.py +0 -0
  342. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/work_queues.py +0 -0
  343. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/server/api/workers.py +0 -0
  344. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/AGENTS.md +0 -0
  345. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/__init__.py +0 -0
  346. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/_types.py +0 -0
  347. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/base.py +0 -0
  348. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/constants.py +0 -0
  349. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/context.py +0 -0
  350. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/legacy.py +0 -0
  351. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/__init__.py +0 -0
  352. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/_defaults.py +0 -0
  353. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/api.py +0 -0
  354. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/cli.py +0 -0
  355. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/client.py +0 -0
  356. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/cloud.py +0 -0
  357. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/deployments.py +0 -0
  358. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/events.py +0 -0
  359. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/experiments.py +0 -0
  360. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/flows.py +0 -0
  361. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/internal.py +0 -0
  362. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/logging.py +0 -0
  363. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/plugins.py +0 -0
  364. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/results.py +0 -0
  365. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/root.py +0 -0
  366. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/runner.py +0 -0
  367. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/server/__init__.py +0 -0
  368. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/server/api.py +0 -0
  369. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/server/concurrency.py +0 -0
  370. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/server/database.py +0 -0
  371. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/server/deployments.py +0 -0
  372. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/server/docket.py +0 -0
  373. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/server/ephemeral.py +0 -0
  374. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/server/events.py +0 -0
  375. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  376. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/server/logs.py +0 -0
  377. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/server/root.py +0 -0
  378. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/server/services.py +0 -0
  379. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/server/tasks.py +0 -0
  380. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/server/ui.py +0 -0
  381. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/server/worker_channel.py +0 -0
  382. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/tasks.py +0 -0
  383. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/telemetry.py +0 -0
  384. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/testing.py +0 -0
  385. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/models/worker.py +0 -0
  386. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/profiles.py +0 -0
  387. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/settings/profiles.toml +0 -0
  388. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/states.py +0 -0
  389. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/task_engine.py +0 -0
  390. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/task_runs.py +0 -0
  391. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/task_worker.py +0 -0
  392. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/tasks.py +0 -0
  393. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/telemetry/__init__.py +0 -0
  394. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/telemetry/run_telemetry.py +0 -0
  395. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/transactions.py +0 -0
  396. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/types/__init__.py +0 -0
  397. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/types/_concurrency.py +0 -0
  398. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/types/_datetime.py +0 -0
  399. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/types/entrypoint.py +0 -0
  400. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/types/names.py +0 -0
  401. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/AGENTS.md +0 -0
  402. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/__init__.py +0 -0
  403. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/annotations.py +0 -0
  404. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/asyncutils/AGENTS.md +0 -0
  405. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/asyncutils/__init__.py +0 -0
  406. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/callables/AGENTS.md +0 -0
  407. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/callables/__init__.py +0 -0
  408. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/collections.py +0 -0
  409. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/compat.py +0 -0
  410. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/context.py +0 -0
  411. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/dispatch.py +0 -0
  412. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/dockerutils.py +0 -0
  413. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/engine/AGENTS.md +0 -0
  414. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/engine/__init__.py +0 -0
  415. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/filesystem/AGENTS.md +0 -0
  416. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/generics.py +0 -0
  417. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/hashing.py +0 -0
  418. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/importtools.py +0 -0
  419. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/math.py +0 -0
  420. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/names.py +0 -0
  421. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/processutils/AGENTS.md +0 -0
  422. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/processutils/__init__.py +0 -0
  423. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/pydantic.py +0 -0
  424. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/render_swagger.py +0 -0
  425. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/schema_tools/AGENTS.md +0 -0
  426. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  427. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  428. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/schema_tools/validation.py +0 -0
  429. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/services.py +0 -0
  430. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/slugify.py +0 -0
  431. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/templating/AGENTS.md +0 -0
  432. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/templating/__init__.py +0 -0
  433. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/text.py +0 -0
  434. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/timeout.py +0 -0
  435. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/urls.py +0 -0
  436. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/utilities/visualization.py +0 -0
  437. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/variables.py +0 -0
  438. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/workers/AGENTS.md +0 -0
  439. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/workers/__init__.py +0 -0
  440. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/workers/_cleanup.py +0 -0
  441. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/workers/_cleanup_handlers.py +0 -0
  442. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/workers/_worker_channel/__init__.py +0 -0
  443. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/workers/_worker_channel/_protocol.py +0 -0
  444. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/workers/_worker_channel/_state.py +0 -0
  445. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/workers/_worker_channel/_sync.py +0 -0
  446. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/workers/_worker_channel/_transport.py +0 -0
  447. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/workers/base.py +0 -0
  448. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/workers/block.py +0 -0
  449. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/workers/cloud.py +0 -0
  450. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/workers/process.py +0 -0
  451. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/src/prefect/workers/server.py +0 -0
  452. {prefect_client-3.7.9.dev5 → prefect_client-3.7.9.dev7}/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.9.dev5
3
+ Version: 3.7.9.dev7
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
@@ -22,7 +22,7 @@ Classifier: Programming Language :: Python :: 3.14
22
22
  Classifier: Topic :: Software Development :: Libraries
23
23
  Requires-Python: <3.15,>=3.10
24
24
  Requires-Dist: amplitude-analytics<2.0.0,>=1.2.1
25
- Requires-Dist: anyio<5.0.0,>=4.4.0
25
+ Requires-Dist: anyio!=4.14.2,<5.0.0,>=4.4.0
26
26
  Requires-Dist: asgi-lifespan<3.0,>=1.0
27
27
  Requires-Dist: cachetools<8.0,>=5.3
28
28
  Requires-Dist: cloudpickle<4.0,>=2.0
@@ -41,7 +41,7 @@ Requires-Dist: jsonschema<5.0.0,>=4.18.0
41
41
  Requires-Dist: opentelemetry-api<2.0.0,>=1.27.0
42
42
  Requires-Dist: orjson<4.0,>=3.7
43
43
  Requires-Dist: packaging<26.3,>=21.3
44
- Requires-Dist: pathspec>=0.8.0
44
+ Requires-Dist: pathspec>=0.10.1
45
45
  Requires-Dist: pendulum<4,>=3.1.0; python_version < '3.13'
46
46
  Requires-Dist: prometheus-client>=0.20.0
47
47
  Requires-Dist: pydantic!=2.11.0,!=2.11.1,!=2.11.2,!=2.11.3,!=2.11.4,<3.0.0,>=2.10.1
@@ -26,7 +26,7 @@ classifiers = [
26
26
  dependencies = [
27
27
  # Client dependencies
28
28
  "amplitude-analytics>=1.2.1,<2.0.0",
29
- "anyio>=4.4.0,<5.0.0",
29
+ "anyio>=4.4.0,<5.0.0,!=4.14.2",
30
30
  "asgi-lifespan>=1.0,<3.0",
31
31
  "cachetools>=5.3,<8.0",
32
32
  "cloudpickle>=2.0,<4.0",
@@ -45,7 +45,7 @@ dependencies = [
45
45
  "opentelemetry-api>=1.27.0,<2.0.0",
46
46
  "orjson>=3.7,<4.0",
47
47
  "packaging>=21.3,<26.3",
48
- "pathspec>=0.8.0",
48
+ "pathspec>=0.10.1",
49
49
  "pendulum>=3.1.0,<4; python_version<'3.13'",
50
50
  "prometheus-client>=0.20.0",
51
51
  "pydantic>=2.10.1,<3.0.0,!=2.11.0,!=2.11.1,!=2.11.2,!=2.11.3,!=2.11.4",
@@ -0,0 +1,5 @@
1
+ # Generated by versioningit
2
+ __version__ = "3.7.9.dev7"
3
+ __build_date__ = "2026-07-23 08:57:53.374271+00:00"
4
+ __git_commit__ = "d13f1a728248b608aaa609e6c27f667f47ea4704"
5
+ __dirty__ = False
@@ -232,7 +232,7 @@ class FileCollector:
232
232
  inner_pattern = pattern[1:]
233
233
 
234
234
  # Compile the pattern using gitignore-style matching
235
- spec = pathspec.PathSpec.from_lines("gitwildmatch", [inner_pattern])
235
+ spec = pathspec.GitIgnoreSpec.from_lines([inner_pattern])
236
236
 
237
237
  # Find files in current collection that match the negation
238
238
  excluded: list[Path] = []
@@ -342,7 +342,7 @@ class FileCollector:
342
342
  List of collected file paths matching the pattern.
343
343
  """
344
344
  # Compile the pattern using gitignore-style matching
345
- spec = pathspec.PathSpec.from_lines("gitwildmatch", [pattern])
345
+ spec = pathspec.GitIgnoreSpec.from_lines([pattern])
346
346
 
347
347
  collected: list[Path] = []
348
348
  try:
@@ -0,0 +1,105 @@
1
+ import logging
2
+ from collections.abc import Mapping
3
+ from typing import Any
4
+
5
+ from prefect.utilities.names import obfuscate
6
+
7
+
8
+ class _RedactedString(str):
9
+ """
10
+ A `str` subclass that stores a separate `repr` value.
11
+
12
+ This allows logging's `%r` and `%a` conversions to use a redacted
13
+ representation while `%s` and JSON serialization use the redacted
14
+ `str` value.
15
+ """
16
+
17
+ __slots__ = ("_repr",)
18
+
19
+ def __new__(cls, str_value: str, repr_value: str) -> "_RedactedString":
20
+ instance = super().__new__(cls, str_value)
21
+ instance._repr = repr_value
22
+ return instance
23
+
24
+ def __repr__(self) -> str:
25
+ return self._repr
26
+
27
+ def __reduce__(self) -> tuple[type, tuple[str, str]]:
28
+ return (type(self), (str(self), self._repr))
29
+
30
+
31
+ def redact_substr(obj: Any, substr: str) -> Any:
32
+ """
33
+ Redact a string from a potentially nested object.
34
+
35
+ Standard collections (list, tuple, set, dict, and other `Mapping`
36
+ instances) are traversed recursively and have their string values redacted
37
+ while preserving shape. Non-container objects are redacted by replacing
38
+ their `str` and `repr` values with obfuscated versions, avoiding the
39
+ need to reconstruct arbitrary user objects (e.g. dataclasses with
40
+ `init=False` fields or Pydantic models).
41
+
42
+ Args:
43
+ obj: The object to redact the string from
44
+ substr: The string to redact.
45
+
46
+ Returns:
47
+ Any: The object with the API key redacted.
48
+ """
49
+ if isinstance(obj, str):
50
+ return obj.replace(substr, obfuscate(substr))
51
+
52
+ if isinstance(obj, (list, tuple, set)):
53
+ seq = obj
54
+ items = [redact_substr(item, substr) for item in seq]
55
+ if all(item is orig for item, orig in zip(items, seq)):
56
+ return obj
57
+ # Preserve namedtuple types.
58
+ if hasattr(type(seq), "_make"):
59
+ return type(seq)._make(items)
60
+ return type(seq)(items)
61
+
62
+ if isinstance(obj, Mapping):
63
+ mapping = obj
64
+ items = [
65
+ (redact_substr(key, substr), redact_substr(value, substr))
66
+ for key, value in mapping.items()
67
+ ]
68
+ if all(
69
+ k1 is k2 and v1 is v2 for (k1, v1), (k2, v2) in zip(items, mapping.items())
70
+ ):
71
+ return obj
72
+ # Return a plain dict so that arbitrary Mapping types (e.g. ChainMap)
73
+ # can still be formatted by logging's `%` operator and serialized as
74
+ # JSON without reconstructing the original mapping type.
75
+ return dict(items)
76
+
77
+ # For opaque objects, redact their rendered string representations. This
78
+ # handles exceptions, dataclasses, Pydantic models, and other lazy logging
79
+ # arguments whose `__str__` or `__repr__` may contain the secret.
80
+ str_value = str(obj)
81
+ repr_value = repr(obj)
82
+ redacted_str = str_value.replace(substr, obfuscate(substr))
83
+ redacted_repr = repr_value.replace(substr, obfuscate(substr))
84
+ if redacted_str is not str_value or redacted_repr is not repr_value:
85
+ return _RedactedString(redacted_str, redacted_repr)
86
+
87
+ return obj
88
+
89
+
90
+ class ObfuscateApiKeyFilter(logging.Filter):
91
+ """
92
+ A logging filter that obfuscates any string that matches the obfuscate_string function.
93
+ """
94
+
95
+ def filter(self, record: logging.LogRecord) -> bool:
96
+ # Need to import here to avoid circular imports
97
+ from prefect.settings import PREFECT_API_KEY
98
+
99
+ api_key = PREFECT_API_KEY.value()
100
+ if api_key:
101
+ record.msg = redact_substr(record.msg, api_key)
102
+ if record.args is not None:
103
+ record.args = redact_substr(record.args, api_key)
104
+
105
+ return True
@@ -126,7 +126,7 @@ def _stdlib_prefixes() -> tuple[str, ...]:
126
126
 
127
127
  @functools.lru_cache(maxsize=1)
128
128
  def _site_packages_dirs() -> tuple[str, ...]:
129
- """Resolved site-packages directories that should always be kept."""
129
+ """Resolved site-packages directories that should not be promoted to PYTHONPATH."""
130
130
  dirs: set[str] = set()
131
131
  paths = sysconfig.get_paths()
132
132
  for key in ("purelib", "platlib"):
@@ -147,12 +147,14 @@ def _site_packages_dirs() -> tuple[str, ...]:
147
147
  return tuple(sorted(dirs))
148
148
 
149
149
 
150
- def _is_stdlib_path(entry: str) -> bool:
151
- """True when *entry* is a stdlib, lib-dynload, or stdlib zip path.
150
+ def _is_interpreter_path(entry: str) -> bool:
151
+ """True when *entry* is managed by the interpreter rather than the workspace.
152
152
 
153
- Site-packages directories that live under the stdlib tree are kept.
154
- Only interpreter stdlib zip archives next to stdlib directories are filtered;
155
- user archives like `/app/python_deps.zip` are preserved.
153
+ The interpreter already adds stdlib, lib-dynload, and site-packages directories
154
+ in the correct order. Adding any of them to PYTHONPATH changes that ordering and
155
+ can let a site-packages backport shadow a standard-library module. Only
156
+ interpreter stdlib zip archives next to stdlib directories are filtered; user
157
+ archives like `/app/python_deps.zip` are preserved.
156
158
  """
157
159
  if not entry:
158
160
  return False
@@ -160,9 +162,11 @@ def _is_stdlib_path(entry: str) -> bool:
160
162
  resolved_path = Path(entry).resolve()
161
163
  resolved = str(resolved_path)
162
164
 
163
- for sp in _site_packages_dirs():
164
- if resolved == sp or resolved.startswith(sp + os.sep):
165
- return False
165
+ site_packages_dirs = _site_packages_dirs()
166
+ if resolved in site_packages_dirs:
167
+ return True
168
+ if any(resolved.startswith(sp + os.sep) for sp in site_packages_dirs):
169
+ return False
166
170
 
167
171
  for root in _stdlib_prefixes():
168
172
  if resolved == root or resolved.startswith(root + os.sep):
@@ -187,7 +191,11 @@ def workspace_environment(workspace: PreparedWorkspace) -> dict[str, str]:
187
191
  candidate_entries.extend(existing_pythonpath.split(os.pathsep))
188
192
 
189
193
  for entry in candidate_entries:
190
- if entry and entry not in pythonpath_entries and not _is_stdlib_path(entry):
194
+ if (
195
+ entry
196
+ and entry not in pythonpath_entries
197
+ and not _is_interpreter_path(entry)
198
+ ):
191
199
  pythonpath_entries.append(entry)
192
200
 
193
201
  environment["PYTHONPATH"] = os.pathsep.join(pythonpath_entries)
@@ -609,7 +609,7 @@ async def paginate_deployments(
609
609
  results=results,
610
610
  count=count,
611
611
  limit=limit,
612
- pages=(count + limit - 1) // limit,
612
+ pages=(count + limit - 1) // limit if limit > 0 else 0,
613
613
  page=page,
614
614
  )
615
615
 
@@ -1044,7 +1044,7 @@ async def paginate_flow_runs(
1044
1044
  results=results,
1045
1045
  count=count,
1046
1046
  limit=limit,
1047
- pages=(count + limit - 1) // limit,
1047
+ pages=(count + limit - 1) // limit if limit > 0 else 0,
1048
1048
  page=page,
1049
1049
  ).model_dump(mode="json")
1050
1050
 
@@ -255,6 +255,6 @@ async def paginate_flows(
255
255
  results=results,
256
256
  count=count,
257
257
  limit=limit,
258
- pages=(count + limit - 1) // limit,
258
+ pages=(count + limit - 1) // limit if limit > 0 else 0,
259
259
  page=page,
260
260
  )
@@ -264,7 +264,7 @@ async def paginate_task_runs(
264
264
  results=runs,
265
265
  count=total_count,
266
266
  limit=limit,
267
- pages=(total_count + limit - 1) // limit,
267
+ pages=(total_count + limit - 1) // limit if limit > 0 else 0,
268
268
  page=page,
269
269
  )
270
270
  )
@@ -1,5 +1,6 @@
1
1
  import os
2
2
  import sys
3
+ import threading
3
4
  import warnings
4
5
  from pathlib import Path
5
6
  from typing import Any, Dict, List, Mapping, Optional, Sequence, Tuple, Type, get_origin
@@ -26,16 +27,23 @@ from prefect.settings.constants import DEFAULT_PREFECT_HOME, DEFAULT_PROFILES_PA
26
27
  from prefect.utilities.collections import get_from_dict
27
28
 
28
29
  _file_cache: TTLCache[str, dict[str, Any]] = TTLCache(maxsize=100, ttl=60)
30
+ _file_cache_lock = threading.Lock()
29
31
 
30
32
 
31
33
  def _read_toml_file(path: Path) -> dict[str, Any]:
32
- """use ttl cache to cache toml files"""
34
+ """use ttl cache to cache toml files
35
+
36
+ `TTLCache` is not thread-safe, so all access is guarded by a lock to avoid
37
+ corrupting its internal state under concurrent settings loads.
38
+ """
33
39
  modified_time = path.stat().st_mtime
34
40
  cache_key = f"toml_file:{path}:{modified_time}"
35
- if value := _file_cache.get(cache_key):
36
- return value
41
+ with _file_cache_lock:
42
+ if value := _file_cache.get(cache_key):
43
+ return value
37
44
  data = tomllib.loads(path.read_text(encoding="utf-8")) # type: ignore
38
- _file_cache[cache_key] = data
45
+ with _file_cache_lock:
46
+ _file_cache[cache_key] = data
39
47
  return data
40
48
 
41
49
 
@@ -572,22 +572,31 @@ def _enqueue_process_pool_log(message_queue: Any, log_payload: dict[str, Any]) -
572
572
  message_queue.put((_PROCESS_POOL_MESSAGE_TYPE_LOG, log_payload))
573
573
 
574
574
 
575
- def _initialize_process_pool_worker(message_queue: Any | None = None) -> None:
575
+ def _initialize_process_pool_worker(
576
+ message_queue: Any | None = None,
577
+ initializer: Callable[..., None] | None = None,
578
+ initargs: tuple[Any, ...] = (),
579
+ ) -> None:
576
580
  """
577
581
  Configure process-pool workers to forward emitted events and API logs back to
578
582
  the parent process.
583
+
584
+ If a user `initializer` is provided, it runs after Prefect's own setup so that
585
+ it can rely on event/log forwarding already being in place.
579
586
  """
580
587
  if message_queue is None:
581
588
  EventsWorker.set_client_override(None)
582
589
  set_api_log_sink(None)
583
- return
590
+ else:
591
+ EventsWorker.set_client_override(
592
+ ProcessPoolForwardingEventsClient,
593
+ event_queue=message_queue,
594
+ item_type=_PROCESS_POOL_MESSAGE_TYPE_EVENT,
595
+ )
596
+ set_api_log_sink(partial(_enqueue_process_pool_log, message_queue))
584
597
 
585
- EventsWorker.set_client_override(
586
- ProcessPoolForwardingEventsClient,
587
- event_queue=message_queue,
588
- item_type=_PROCESS_POOL_MESSAGE_TYPE_EVENT,
589
- )
590
- set_api_log_sink(partial(_enqueue_process_pool_log, message_queue))
598
+ if initializer is not None:
599
+ initializer(*initargs)
591
600
 
592
601
 
593
602
  def _run_task_in_subprocess(
@@ -748,6 +757,10 @@ class ProcessPoolTaskRunner(TaskRunner[PrefectConcurrentFuture[Any]]):
748
757
  Attributes:
749
758
  max_workers: The maximum number of processes to use for executing tasks.
750
759
  Defaults to `multiprocessing.cpu_count()` if `PREFECT_TASKS_RUNNER_PROCESS_POOL_MAX_WORKERS` is not set.
760
+ initializer: An optional picklable callable run once in each worker
761
+ subprocess before it executes any tasks, mirroring
762
+ `ProcessPoolExecutor`'s `initializer`.
763
+ initargs: A tuple of arguments passed to `initializer`.
751
764
 
752
765
  Examples:
753
766
  Use a process pool task runner with a flow:
@@ -803,6 +816,21 @@ class ProcessPoolTaskRunner(TaskRunner[PrefectConcurrentFuture[Any]]):
803
816
  ...
804
817
  ```
805
818
 
819
+ Run custom setup in each worker subprocess:
820
+
821
+ ```python
822
+ import sys
823
+ from prefect.task_runners import ProcessPoolTaskRunner
824
+
825
+ def add_to_path(*paths):
826
+ sys.path[:0] = paths
827
+
828
+ runner = ProcessPoolTaskRunner(
829
+ initializer=add_to_path,
830
+ initargs=("/opt/my_app/libs",),
831
+ )
832
+ ```
833
+
806
834
  Note:
807
835
  Process pool task runners provide process isolation but have overhead for
808
836
  inter-process communication. They are most beneficial for CPU-bound tasks
@@ -823,6 +851,8 @@ class ProcessPoolTaskRunner(TaskRunner[PrefectConcurrentFuture[Any]]):
823
851
  subprocess_message_processor_factories: (
824
852
  Iterable[_SubprocessMessageProcessorFactory] | None
825
853
  ) = None,
854
+ initializer: Callable[..., None] | None = None,
855
+ initargs: tuple[Any, ...] = (),
826
856
  ):
827
857
  super().__init__()
828
858
  current_settings = get_current_settings()
@@ -833,6 +863,8 @@ class ProcessPoolTaskRunner(TaskRunner[PrefectConcurrentFuture[Any]]):
833
863
  or current_settings.tasks.runner.process_pool_max_workers
834
864
  or multiprocessing.cpu_count()
835
865
  )
866
+ self._initializer = initializer
867
+ self._initargs = tuple(initargs)
836
868
  self._cancel_events: dict[uuid.UUID, multiprocessing.Event] = {}
837
869
  self._subprocess_message_queue: Any | None = None
838
870
  self._message_forwarding_thread: threading.Thread | None = None
@@ -844,6 +876,9 @@ class ProcessPoolTaskRunner(TaskRunner[PrefectConcurrentFuture[Any]]):
844
876
 
845
877
  def duplicate(self) -> Self:
846
878
  duplicate_runner = type(self)(max_workers=self._max_workers)
879
+ # Set post-construction so subclasses that narrow __init__ still duplicate.
880
+ duplicate_runner._initializer = getattr(self, "_initializer", None)
881
+ duplicate_runner._initargs = getattr(self, "_initargs", ())
847
882
  duplicate_runner.subprocess_message_processor_factories = (
848
883
  self.subprocess_message_processor_factories
849
884
  )
@@ -1265,7 +1300,11 @@ class ProcessPoolTaskRunner(TaskRunner[PrefectConcurrentFuture[Any]]):
1265
1300
  max_workers=self._max_workers,
1266
1301
  mp_context=mp_context,
1267
1302
  initializer=_initialize_process_pool_worker,
1268
- initargs=(self._subprocess_message_queue,),
1303
+ initargs=(
1304
+ self._subprocess_message_queue,
1305
+ getattr(self, "_initializer", None),
1306
+ getattr(self, "_initargs", ()),
1307
+ ),
1269
1308
  )
1270
1309
  # Create a thread pool for resolving futures before submitting to process pool
1271
1310
  self._resolver_executor = ThreadPoolExecutor(max_workers=self._max_workers)
@@ -45,7 +45,7 @@ def filter_files(
45
45
 
46
46
  The specification matches that of [.gitignore files](https://git-scm.com/docs/gitignore).
47
47
  """
48
- spec = pathspec.PathSpec.from_lines("gitwildmatch", ignore_patterns or [])
48
+ spec = pathspec.GitIgnoreSpec.from_lines(ignore_patterns or [])
49
49
  ignored_files = {p.path for p in spec.match_tree_entries(root)}
50
50
  if include_dirs:
51
51
  all_files = {p.path for p in pathspec.util.iter_tree_entries(root)}
@@ -1,5 +0,0 @@
1
- # Generated by versioningit
2
- __version__ = "3.7.9.dev5"
3
- __build_date__ = "2026-07-21 08:58:32.807456+00:00"
4
- __git_commit__ = "e8d311f1f3f3b947f585f520f9dcfd9e96720dce"
5
- __dirty__ = False
@@ -1,41 +0,0 @@
1
- import logging
2
- from typing import Any
3
-
4
- from prefect.utilities.collections import visit_collection
5
- from prefect.utilities.names import obfuscate
6
-
7
-
8
- def redact_substr(obj: Any, substr: str) -> Any:
9
- """
10
- Redact a string from a potentially nested object.
11
-
12
- Args:
13
- obj: The object to redact the string from
14
- substr: The string to redact.
15
-
16
- Returns:
17
- Any: The object with the API key redacted.
18
- """
19
-
20
- def redact_item(item: Any) -> Any:
21
- if isinstance(item, str):
22
- return item.replace(substr, obfuscate(substr))
23
- return item
24
-
25
- redacted_obj = visit_collection(obj, visit_fn=redact_item, return_data=True)
26
- return redacted_obj
27
-
28
-
29
- class ObfuscateApiKeyFilter(logging.Filter):
30
- """
31
- A logging filter that obfuscates any string that matches the obfuscate_string function.
32
- """
33
-
34
- def filter(self, record: logging.LogRecord) -> bool:
35
- # Need to import here to avoid circular imports
36
- from prefect.settings import PREFECT_API_KEY
37
-
38
- if PREFECT_API_KEY:
39
- record.msg = redact_substr(record.msg, PREFECT_API_KEY.value())
40
-
41
- return True