prefect-client 3.4.7.dev2__tar.gz → 3.4.7.dev4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/.gitignore +1 -0
  2. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/PKG-INFO +1 -1
  3. prefect_client-3.4.7.dev4/src/prefect/AGENTS.md +28 -0
  4. prefect_client-3.4.7.dev4/src/prefect/_build_info.py +5 -0
  5. prefect_client-3.4.7.dev4/src/prefect/_internal/websockets.py +106 -0
  6. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/cloud.py +11 -1
  7. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/__init__.py +16 -6
  8. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/schemas/objects.py +0 -4
  9. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/clients.py +2 -76
  10. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/schemas/automations.py +1 -1
  11. prefect_client-3.4.7.dev4/src/prefect/logging/clients.py +347 -0
  12. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/serializers.py +8 -3
  13. prefect_client-3.4.7.dev4/src/prefect/server/api/logs.py +102 -0
  14. prefect_client-3.4.7.dev4/src/prefect/settings/models/server/logs.py +28 -0
  15. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/root.py +5 -0
  16. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/_ast.py +2 -2
  17. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/callables.py +1 -1
  18. prefect_client-3.4.7.dev2/src/prefect/_build_info.py +0 -5
  19. prefect_client-3.4.7.dev2/src/prefect/server/api/logs.py +0 -47
  20. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/LICENSE +0 -0
  21. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/README.md +0 -0
  22. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/pyproject.toml +0 -0
  23. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/.prefectignore +0 -0
  24. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/__init__.py +0 -0
  25. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/__main__.py +0 -0
  26. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_experimental/__init__.py +0 -0
  27. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_experimental/bundles/__init__.py +0 -0
  28. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_experimental/bundles/execute.py +0 -0
  29. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_experimental/lineage.py +0 -0
  30. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_experimental/sla/__init__.py +0 -0
  31. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_experimental/sla/client.py +0 -0
  32. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_experimental/sla/objects.py +0 -0
  33. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/__init__.py +0 -0
  34. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/_logging.py +0 -0
  35. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/compatibility/__init__.py +0 -0
  36. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  37. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/compatibility/blocks.py +0 -0
  38. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  39. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/compatibility/migration.py +0 -0
  40. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/__init__.py +0 -0
  41. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/api.py +0 -0
  42. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/calls.py +0 -0
  43. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  44. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  45. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/inspection.py +0 -0
  46. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/primitives.py +0 -0
  47. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/services.py +0 -0
  48. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/threads.py +0 -0
  49. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/waiters.py +0 -0
  50. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/integrations.py +0 -0
  51. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/pydantic/__init__.py +0 -0
  52. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/pydantic/schemas.py +0 -0
  53. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  54. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  55. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
  56. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/pytz.py +0 -0
  57. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/retries.py +0 -0
  58. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/schemas/__init__.py +0 -0
  59. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/schemas/bases.py +0 -0
  60. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/schemas/fields.py +0 -0
  61. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/schemas/serializers.py +0 -0
  62. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/schemas/validators.py +0 -0
  63. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/uuid7.py +0 -0
  64. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_result_records.py +0 -0
  65. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_vendor/croniter/__init__.py +0 -0
  66. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_vendor/croniter/croniter.py +0 -0
  67. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_versioning.py +0 -0
  68. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_waiters.py +0 -0
  69. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/agent.py +0 -0
  70. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/artifacts.py +0 -0
  71. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/assets/__init__.py +0 -0
  72. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/assets/core.py +0 -0
  73. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/assets/materialize.py +0 -0
  74. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/automations.py +0 -0
  75. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/blocks/__init__.py +0 -0
  76. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/blocks/abstract.py +0 -0
  77. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/blocks/core.py +0 -0
  78. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/blocks/fields.py +0 -0
  79. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/blocks/notifications.py +0 -0
  80. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/blocks/redis.py +0 -0
  81. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/blocks/system.py +0 -0
  82. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/blocks/webhook.py +0 -0
  83. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/cache_policies.py +0 -0
  84. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/__init__.py +0 -0
  85. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/base.py +0 -0
  86. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/collections.py +0 -0
  87. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/constants.py +0 -0
  88. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
  89. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  90. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
  91. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_automations/client.py +0 -0
  92. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
  93. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  94. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
  95. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  96. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
  97. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  98. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
  99. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
  100. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
  101. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_deployments/client.py +0 -0
  102. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
  103. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  104. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
  105. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_flows/client.py +0 -0
  106. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
  107. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_logs/client.py +0 -0
  108. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
  109. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_variables/client.py +0 -0
  110. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
  111. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
  112. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/base.py +0 -0
  113. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/routes.py +0 -0
  114. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/schemas/__init__.py +0 -0
  115. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/schemas/actions.py +0 -0
  116. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/schemas/filters.py +0 -0
  117. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/schemas/responses.py +0 -0
  118. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/schemas/schedules.py +0 -0
  119. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/schemas/sorting.py +0 -0
  120. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/subscriptions.py +0 -0
  121. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/types/__init__.py +0 -0
  122. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  123. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/utilities.py +0 -0
  124. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/__init__.py +0 -0
  125. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/_asyncio.py +0 -0
  126. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/_events.py +0 -0
  127. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/asyncio.py +0 -0
  128. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/context.py +0 -0
  129. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/services.py +0 -0
  130. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/sync.py +0 -0
  131. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/v1/__init__.py +0 -0
  132. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  133. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/v1/_events.py +0 -0
  134. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/v1/asyncio.py +0 -0
  135. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/v1/context.py +0 -0
  136. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/v1/services.py +0 -0
  137. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/v1/sync.py +0 -0
  138. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/context.py +0 -0
  139. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/__init__.py +0 -0
  140. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/base.py +0 -0
  141. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/deployments.py +0 -0
  142. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/flow_runs.py +0 -0
  143. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/runner.py +0 -0
  144. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/schedules.py +0 -0
  145. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/steps/__init__.py +0 -0
  146. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/steps/core.py +0 -0
  147. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/steps/pull.py +0 -0
  148. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/steps/utility.py +0 -0
  149. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/docker/__init__.py +0 -0
  150. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/docker/docker_image.py +0 -0
  151. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/engine.py +0 -0
  152. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/__init__.py +0 -0
  153. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/actions.py +0 -0
  154. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/cli/__init__.py +0 -0
  155. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/cli/automations.py +0 -0
  156. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/filters.py +0 -0
  157. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/related.py +0 -0
  158. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/schemas/__init__.py +0 -0
  159. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  160. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/schemas/events.py +0 -0
  161. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/schemas/labelling.py +0 -0
  162. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/utilities.py +0 -0
  163. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/worker.py +0 -0
  164. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/exceptions.py +0 -0
  165. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/filesystems.py +0 -0
  166. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/flow_engine.py +0 -0
  167. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/flow_runs.py +0 -0
  168. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/flows.py +0 -0
  169. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/futures.py +0 -0
  170. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/infrastructure/__init__.py +0 -0
  171. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/infrastructure/base.py +0 -0
  172. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  173. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  174. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  175. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  176. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  177. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  178. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/input/__init__.py +0 -0
  179. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/input/actions.py +0 -0
  180. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/input/run_input.py +0 -0
  181. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/locking/__init__.py +0 -0
  182. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/locking/filesystem.py +0 -0
  183. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/locking/memory.py +0 -0
  184. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/locking/protocol.py +0 -0
  185. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/logging/__init__.py +0 -0
  186. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/logging/configuration.py +0 -0
  187. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/logging/filters.py +0 -0
  188. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/logging/formatters.py +0 -0
  189. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/logging/handlers.py +0 -0
  190. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/logging/highlighters.py +0 -0
  191. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/logging/loggers.py +0 -0
  192. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/logging/logging.yml +0 -0
  193. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/main.py +0 -0
  194. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/plugins.py +0 -0
  195. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/py.typed +0 -0
  196. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/results.py +0 -0
  197. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runner/__init__.py +0 -0
  198. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runner/_observers.py +0 -0
  199. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runner/runner.py +0 -0
  200. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runner/server.py +0 -0
  201. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runner/storage.py +0 -0
  202. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runner/submit.py +0 -0
  203. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runner/utils.py +0 -0
  204. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runtime/__init__.py +0 -0
  205. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runtime/deployment.py +0 -0
  206. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runtime/flow_run.py +0 -0
  207. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runtime/task_run.py +0 -0
  208. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/schedules.py +0 -0
  209. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/__init__.py +0 -0
  210. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/admin.py +0 -0
  211. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/artifacts.py +0 -0
  212. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/automations.py +0 -0
  213. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/block_capabilities.py +0 -0
  214. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/block_documents.py +0 -0
  215. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/block_schemas.py +0 -0
  216. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/block_types.py +0 -0
  217. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/clients.py +0 -0
  218. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/collections.py +0 -0
  219. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  220. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/concurrency_limits.py +0 -0
  221. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
  222. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/csrf_token.py +0 -0
  223. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/dependencies.py +0 -0
  224. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/deployments.py +0 -0
  225. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/events.py +0 -0
  226. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/flow_run_states.py +0 -0
  227. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/flow_runs.py +0 -0
  228. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/flows.py +0 -0
  229. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/middleware.py +0 -0
  230. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/root.py +0 -0
  231. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/run_history.py +0 -0
  232. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/saved_searches.py +0 -0
  233. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/server.py +0 -0
  234. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  235. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/task_run_states.py +0 -0
  236. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/task_runs.py +0 -0
  237. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/task_workers.py +0 -0
  238. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/templates.py +0 -0
  239. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/ui/__init__.py +0 -0
  240. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/ui/flow_runs.py +0 -0
  241. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/ui/flows.py +0 -0
  242. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/ui/schemas.py +0 -0
  243. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/ui/task_runs.py +0 -0
  244. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/validation.py +0 -0
  245. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/variables.py +0 -0
  246. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/work_queues.py +0 -0
  247. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/workers.py +0 -0
  248. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/__init__.py +0 -0
  249. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/base.py +0 -0
  250. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/constants.py +0 -0
  251. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/context.py +0 -0
  252. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/legacy.py +0 -0
  253. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/__init__.py +0 -0
  254. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/api.py +0 -0
  255. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/cli.py +0 -0
  256. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/client.py +0 -0
  257. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/cloud.py +0 -0
  258. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/deployments.py +0 -0
  259. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/experiments.py +0 -0
  260. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/flows.py +0 -0
  261. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/internal.py +0 -0
  262. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/logging.py +0 -0
  263. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/results.py +0 -0
  264. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/root.py +0 -0
  265. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/runner.py +0 -0
  266. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/__init__.py +0 -0
  267. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/api.py +0 -0
  268. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/database.py +0 -0
  269. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/deployments.py +0 -0
  270. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/ephemeral.py +0 -0
  271. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/events.py +0 -0
  272. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  273. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/services.py +0 -0
  274. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/tasks.py +0 -0
  275. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/ui.py +0 -0
  276. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/tasks.py +0 -0
  277. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/testing.py +0 -0
  278. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/worker.py +0 -0
  279. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/profiles.py +0 -0
  280. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/profiles.toml +0 -0
  281. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/sources.py +0 -0
  282. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/states.py +0 -0
  283. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/task_engine.py +0 -0
  284. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/task_runners.py +0 -0
  285. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/task_runs.py +0 -0
  286. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/task_worker.py +0 -0
  287. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/tasks.py +0 -0
  288. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/telemetry/__init__.py +0 -0
  289. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/telemetry/bootstrap.py +0 -0
  290. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/telemetry/instrumentation.py +0 -0
  291. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/telemetry/logging.py +0 -0
  292. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/telemetry/processors.py +0 -0
  293. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/telemetry/run_telemetry.py +0 -0
  294. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/telemetry/services.py +0 -0
  295. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/transactions.py +0 -0
  296. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/types/__init__.py +0 -0
  297. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/types/_datetime.py +0 -0
  298. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/types/entrypoint.py +0 -0
  299. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/types/names.py +0 -0
  300. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/__init__.py +0 -0
  301. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/_deprecated.py +0 -0
  302. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/_engine.py +0 -0
  303. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/_git.py +0 -0
  304. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/annotations.py +0 -0
  305. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/asyncutils.py +0 -0
  306. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/collections.py +0 -0
  307. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/compat.py +0 -0
  308. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/context.py +0 -0
  309. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/dispatch.py +0 -0
  310. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/dockerutils.py +0 -0
  311. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/engine.py +0 -0
  312. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/filesystem.py +0 -0
  313. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/generics.py +0 -0
  314. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/hashing.py +0 -0
  315. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/importtools.py +0 -0
  316. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/math.py +0 -0
  317. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/names.py +0 -0
  318. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/processutils.py +0 -0
  319. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/pydantic.py +0 -0
  320. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/render_swagger.py +0 -0
  321. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  322. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  323. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/schema_tools/validation.py +0 -0
  324. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/services.py +0 -0
  325. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/slugify.py +0 -0
  326. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/templating.py +0 -0
  327. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/text.py +0 -0
  328. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/timeout.py +0 -0
  329. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/urls.py +0 -0
  330. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/visualization.py +0 -0
  331. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/variables.py +0 -0
  332. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/workers/__init__.py +0 -0
  333. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/workers/base.py +0 -0
  334. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/workers/block.py +0 -0
  335. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/workers/cloud.py +0 -0
  336. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/workers/process.py +0 -0
  337. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/workers/server.py +0 -0
  338. {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/workers/utilities.py +0 -0
@@ -89,3 +89,4 @@ src/integrations/*/**/_version.py
89
89
 
90
90
  # Pyright type analysis report
91
91
  prefect-analysis.json
92
+ CLAUDE.md
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: prefect-client
3
- Version: 3.4.7.dev2
3
+ Version: 3.4.7.dev4
4
4
  Summary: Workflow orchestration and management.
5
5
  Project-URL: Changelog, https://github.com/PrefectHQ/prefect/releases
6
6
  Project-URL: Documentation, https://docs.prefect.io
@@ -0,0 +1,28 @@
1
+ # Core Prefect SDK
2
+
3
+ The foundation for building and executing workflows with Python.
4
+
5
+ ## Key Components
6
+
7
+ - **Flows & Tasks**: Workflow definition with `@flow` and `@task` decorators
8
+ - **States**: Execution status tracking (Pending, Running, Completed, Failed)
9
+ - **Context**: Runtime information and dependency injection
10
+ - **Results**: Task output persistence and retrieval
11
+ - **Deployments**: Packaging flows for scheduled/triggered execution
12
+ - **Blocks**: Reusable configuration for external systems
13
+
14
+ ## Main Modules
15
+
16
+ - `flows.py` - Flow lifecycle and execution
17
+ - `tasks.py` - Task definition and dependency resolution
18
+ - `engine.py` - Core execution engine
19
+ - `client/` - Server/Cloud API communication
20
+ - `deployments/` - Deployment management
21
+ - `blocks/` - Infrastructure and storage blocks
22
+
23
+ ## SDK-Specific Notes
24
+
25
+ - Async-first execution model with sync support
26
+ - Immutable flow/task definitions after creation
27
+ - State transitions handle retries and caching
28
+ - Backward compatibility required for public APIs
@@ -0,0 +1,5 @@
1
+ # Generated by versioningit
2
+ __version__ = "3.4.7.dev4"
3
+ __build_date__ = "2025-06-18 08:09:28.573646+00:00"
4
+ __git_commit__ = "f2a136e5b5fb96adfde1d9aa44fdedb5b11c97a0"
5
+ __dirty__ = False
@@ -0,0 +1,106 @@
1
+ """
2
+ Internal WebSocket proxy utilities for Prefect client connections.
3
+
4
+ This module provides shared WebSocket proxy connection logic and SSL configuration
5
+ to avoid duplication between events and logs clients.
6
+ """
7
+
8
+ import os
9
+ import ssl
10
+ from typing import Any, Generator, Optional
11
+ from urllib.parse import urlparse
12
+ from urllib.request import proxy_bypass
13
+
14
+ import certifi
15
+ from python_socks.async_.asyncio import Proxy
16
+ from typing_extensions import Self
17
+ from websockets.asyncio.client import ClientConnection, connect
18
+
19
+ from prefect.settings import get_current_settings
20
+
21
+
22
+ def create_ssl_context_for_websocket(uri: str) -> Optional[ssl.SSLContext]:
23
+ """Create SSL context for WebSocket connections based on URI scheme."""
24
+ u = urlparse(uri)
25
+
26
+ if u.scheme != "wss":
27
+ return None
28
+
29
+ if get_current_settings().api.tls_insecure_skip_verify:
30
+ # Create an unverified context for insecure connections
31
+ ctx = ssl.create_default_context()
32
+ ctx.check_hostname = False
33
+ ctx.verify_mode = ssl.CERT_NONE
34
+ return ctx
35
+ else:
36
+ # Create a verified context with the certificate file
37
+ cert_file = get_current_settings().api.ssl_cert_file
38
+ if not cert_file:
39
+ cert_file = certifi.where()
40
+ return ssl.create_default_context(cafile=cert_file)
41
+
42
+
43
+ class WebsocketProxyConnect(connect):
44
+ """
45
+ WebSocket connection class with proxy and SSL support.
46
+
47
+ Extends the websockets.asyncio.client.connect class to add HTTP/HTTPS
48
+ proxy support via environment variables, proxy bypass logic, and SSL
49
+ certificate verification.
50
+ """
51
+
52
+ def __init__(self: Self, uri: str, **kwargs: Any):
53
+ # super() is intentionally deferred to the _proxy_connect method
54
+ # to allow for the socket to be established first
55
+
56
+ self.uri = uri
57
+ self._kwargs = kwargs
58
+
59
+ u = urlparse(uri)
60
+ host = u.hostname
61
+
62
+ if not host:
63
+ raise ValueError(f"Invalid URI {uri}, no hostname found")
64
+
65
+ if u.scheme == "ws":
66
+ port = u.port or 80
67
+ proxy_url = os.environ.get("HTTP_PROXY")
68
+ elif u.scheme == "wss":
69
+ port = u.port or 443
70
+ proxy_url = os.environ.get("HTTPS_PROXY")
71
+ kwargs["server_hostname"] = host
72
+ else:
73
+ raise ValueError(
74
+ "Unsupported scheme %s. Expected 'ws' or 'wss'. " % u.scheme
75
+ )
76
+
77
+ self._proxy = (
78
+ Proxy.from_url(proxy_url) if proxy_url and not proxy_bypass(host) else None
79
+ )
80
+ self._host = host
81
+ self._port = port
82
+
83
+ # Configure SSL context for HTTPS connections
84
+ ssl_context = create_ssl_context_for_websocket(uri)
85
+ if ssl_context:
86
+ self._kwargs.setdefault("ssl", ssl_context)
87
+
88
+ async def _proxy_connect(self: Self) -> ClientConnection:
89
+ if self._proxy:
90
+ sock = await self._proxy.connect(
91
+ dest_host=self._host,
92
+ dest_port=self._port,
93
+ )
94
+ self._kwargs["sock"] = sock
95
+
96
+ super().__init__(self.uri, **self._kwargs)
97
+ proto = await self.__await_impl__()
98
+ return proto
99
+
100
+ def __await__(self: Self) -> Generator[Any, None, ClientConnection]:
101
+ return self._proxy_connect().__await__()
102
+
103
+
104
+ def websocket_connect(uri: str, **kwargs: Any) -> WebsocketProxyConnect:
105
+ """Create a WebSocket connection with proxy and SSL support."""
106
+ return WebsocketProxyConnect(uri, **kwargs)
@@ -24,6 +24,16 @@ from prefect.settings import (
24
24
 
25
25
  PARSE_API_URL_REGEX = re.compile(r"accounts/(.{36})/workspaces/(.{36})")
26
26
 
27
+ # Cache for TypeAdapter instances to avoid repeated instantiation
28
+ _TYPE_ADAPTER_CACHE: dict[type, pydantic.TypeAdapter[Any]] = {}
29
+
30
+
31
+ def _get_type_adapter(type_: type) -> pydantic.TypeAdapter[Any]:
32
+ """Get or create a cached TypeAdapter for the given type."""
33
+ if type_ not in _TYPE_ADAPTER_CACHE:
34
+ _TYPE_ADAPTER_CACHE[type_] = pydantic.TypeAdapter(type_)
35
+ return _TYPE_ADAPTER_CACHE[type_]
36
+
27
37
 
28
38
  def get_cloud_client(
29
39
  host: Optional[str] = None,
@@ -112,7 +122,7 @@ class CloudClient:
112
122
  await self.read_workspaces()
113
123
 
114
124
  async def read_workspaces(self) -> list[Workspace]:
115
- workspaces = pydantic.TypeAdapter(list[Workspace]).validate_python(
125
+ workspaces = _get_type_adapter(list[Workspace]).validate_python(
116
126
  await self.get("/me/workspaces")
117
127
  )
118
128
  return workspaces
@@ -144,6 +144,16 @@ P = ParamSpec("P")
144
144
  R = TypeVar("R", infer_variance=True)
145
145
  T = TypeVar("T")
146
146
 
147
+ # Cache for TypeAdapter instances to avoid repeated instantiation
148
+ _TYPE_ADAPTER_CACHE: dict[type, pydantic.TypeAdapter[Any]] = {}
149
+
150
+
151
+ def _get_type_adapter(type_: type) -> pydantic.TypeAdapter[Any]:
152
+ """Get or create a cached TypeAdapter for the given type."""
153
+ if type_ not in _TYPE_ADAPTER_CACHE:
154
+ _TYPE_ADAPTER_CACHE[type_] = pydantic.TypeAdapter(type_)
155
+ return _TYPE_ADAPTER_CACHE[type_]
156
+
147
157
 
148
158
  @overload
149
159
  def get_client(
@@ -635,7 +645,7 @@ class PrefectClient(
635
645
  raise prefect.exceptions.ObjectNotFound(http_exc=e) from e
636
646
  else:
637
647
  raise
638
- return pydantic.TypeAdapter(list[FlowRun]).validate_python(response.json())
648
+ return _get_type_adapter(list[FlowRun]).validate_python(response.json())
639
649
 
640
650
  async def read_work_queue(
641
651
  self,
@@ -894,7 +904,7 @@ class PrefectClient(
894
904
  "offset": offset,
895
905
  }
896
906
  response = await self._client.post("/task_runs/filter", json=body)
897
- return pydantic.TypeAdapter(list[TaskRun]).validate_python(response.json())
907
+ return _get_type_adapter(list[TaskRun]).validate_python(response.json())
898
908
 
899
909
  async def delete_task_run(self, task_run_id: UUID) -> None:
900
910
  """
@@ -958,7 +968,7 @@ class PrefectClient(
958
968
  response = await self._client.get(
959
969
  "/task_run_states/", params=dict(task_run_id=str(task_run_id))
960
970
  )
961
- return pydantic.TypeAdapter(list[prefect.states.State]).validate_python(
971
+ return _get_type_adapter(list[prefect.states.State]).validate_python(
962
972
  response.json()
963
973
  )
964
974
 
@@ -1005,7 +1015,7 @@ class PrefectClient(
1005
1015
  else:
1006
1016
  response = await self._client.post("/work_queues/filter", json=json)
1007
1017
 
1008
- return pydantic.TypeAdapter(list[WorkQueue]).validate_python(response.json())
1018
+ return _get_type_adapter(list[WorkQueue]).validate_python(response.json())
1009
1019
 
1010
1020
  async def read_worker_metadata(self) -> dict[str, Any]:
1011
1021
  """Reads worker metadata stored in Prefect collection registry."""
@@ -1554,7 +1564,7 @@ class SyncPrefectClient(
1554
1564
  "offset": offset,
1555
1565
  }
1556
1566
  response = self._client.post("/task_runs/filter", json=body)
1557
- return pydantic.TypeAdapter(list[TaskRun]).validate_python(response.json())
1567
+ return _get_type_adapter(list[TaskRun]).validate_python(response.json())
1558
1568
 
1559
1569
  def set_task_run_state(
1560
1570
  self,
@@ -1598,6 +1608,6 @@ class SyncPrefectClient(
1598
1608
  response = self._client.get(
1599
1609
  "/task_run_states/", params=dict(task_run_id=str(task_run_id))
1600
1610
  )
1601
- return pydantic.TypeAdapter(list[prefect.states.State]).validate_python(
1611
+ return _get_type_adapter(list[prefect.states.State]).validate_python(
1602
1612
  response.json()
1603
1613
  )
@@ -279,10 +279,6 @@ class State(TimeSeriesBaseModel, ObjectBaseModel, Generic[R]):
279
279
  if the state is of type `FAILED` and the underlying data is an exception. When flow
280
280
  was run in a different memory space (using `run_deployment`), this will only raise
281
281
  if `fetch` is `True`.
282
- fetch: a boolean specifying whether to resolve references to persisted
283
- results into data. For synchronous users, this defaults to `True`.
284
- For asynchronous users, this defaults to `False` for backwards
285
- compatibility.
286
282
  retry_result_failure: a boolean specifying whether to retry on failures to
287
283
  load the result from result storage
288
284
 
@@ -1,7 +1,5 @@
1
1
  import abc
2
2
  import asyncio
3
- import os
4
- import ssl
5
3
  from datetime import timedelta
6
4
  from types import TracebackType
7
5
  from typing import (
@@ -9,7 +7,6 @@ from typing import (
9
7
  Any,
10
8
  ClassVar,
11
9
  Dict,
12
- Generator,
13
10
  List,
14
11
  MutableMapping,
15
12
  Optional,
@@ -17,18 +14,14 @@ from typing import (
17
14
  Type,
18
15
  cast,
19
16
  )
20
- from urllib.parse import urlparse
21
- from urllib.request import proxy_bypass
22
17
  from uuid import UUID
23
18
 
24
- import certifi
25
19
  import orjson
26
20
  from cachetools import TTLCache
27
21
  from prometheus_client import Counter
28
- from python_socks.async_.asyncio import Proxy
29
22
  from typing_extensions import Self
30
23
  from websockets import Subprotocol
31
- from websockets.asyncio.client import ClientConnection, connect
24
+ from websockets.asyncio.client import ClientConnection
32
25
  from websockets.exceptions import (
33
26
  ConnectionClosed,
34
27
  ConnectionClosedError,
@@ -36,13 +29,12 @@ from websockets.exceptions import (
36
29
  )
37
30
 
38
31
  import prefect.types._datetime
32
+ from prefect._internal.websockets import websocket_connect
39
33
  from prefect.events import Event
40
34
  from prefect.logging import get_logger
41
35
  from prefect.settings import (
42
36
  PREFECT_API_AUTH_STRING,
43
37
  PREFECT_API_KEY,
44
- PREFECT_API_SSL_CERT_FILE,
45
- PREFECT_API_TLS_INSECURE_SKIP_VERIFY,
46
38
  PREFECT_API_URL,
47
39
  PREFECT_CLOUD_API_URL,
48
40
  PREFECT_DEBUG_MODE,
@@ -94,72 +86,6 @@ def events_out_socket_from_api_url(url: str) -> str:
94
86
  return http_to_ws(url) + "/events/out"
95
87
 
96
88
 
97
- class WebsocketProxyConnect(connect):
98
- def __init__(self: Self, uri: str, **kwargs: Any):
99
- # super() is intentionally deferred to the _proxy_connect method
100
- # to allow for the socket to be established first
101
-
102
- self.uri = uri
103
- self._kwargs = kwargs
104
-
105
- u = urlparse(uri)
106
- host = u.hostname
107
-
108
- if not host:
109
- raise ValueError(f"Invalid URI {uri}, no hostname found")
110
-
111
- if u.scheme == "ws":
112
- port = u.port or 80
113
- proxy_url = os.environ.get("HTTP_PROXY")
114
- elif u.scheme == "wss":
115
- port = u.port or 443
116
- proxy_url = os.environ.get("HTTPS_PROXY")
117
- kwargs["server_hostname"] = host
118
- else:
119
- raise ValueError(
120
- "Unsupported scheme %s. Expected 'ws' or 'wss'. " % u.scheme
121
- )
122
-
123
- self._proxy = (
124
- Proxy.from_url(proxy_url) if proxy_url and not proxy_bypass(host) else None
125
- )
126
- self._host = host
127
- self._port = port
128
-
129
- if PREFECT_API_TLS_INSECURE_SKIP_VERIFY and u.scheme == "wss":
130
- # Create an unverified context for insecure connections
131
- ctx = ssl.create_default_context()
132
- ctx.check_hostname = False
133
- ctx.verify_mode = ssl.CERT_NONE
134
- self._kwargs.setdefault("ssl", ctx)
135
- elif u.scheme == "wss":
136
- cert_file = PREFECT_API_SSL_CERT_FILE.value()
137
- if not cert_file:
138
- cert_file = certifi.where()
139
- # Create a verified context with the certificate file
140
- ctx = ssl.create_default_context(cafile=cert_file)
141
- self._kwargs.setdefault("ssl", ctx)
142
-
143
- async def _proxy_connect(self: Self) -> ClientConnection:
144
- if self._proxy:
145
- sock = await self._proxy.connect(
146
- dest_host=self._host,
147
- dest_port=self._port,
148
- )
149
- self._kwargs["sock"] = sock
150
-
151
- super().__init__(self.uri, **self._kwargs)
152
- proto = await self.__await_impl__()
153
- return proto
154
-
155
- def __await__(self: Self) -> Generator[Any, None, ClientConnection]:
156
- return self._proxy_connect().__await__()
157
-
158
-
159
- def websocket_connect(uri: str, **kwargs: Any) -> WebsocketProxyConnect:
160
- return WebsocketProxyConnect(uri, **kwargs)
161
-
162
-
163
89
  def get_events_client(
164
90
  reconnection_attempts: int = 10,
165
91
  checkpoint_every: int = 700,
@@ -416,7 +416,7 @@ class AutomationCore(PrefectBaseModel, extra="ignore"): # type: ignore[call-arg
416
416
  enabled: bool = Field(
417
417
  default=True, description="Whether this automation will be evaluated"
418
418
  )
419
- tags: list[str] = Field(
419
+ tags: List[str] = Field(
420
420
  default_factory=list,
421
421
  description="A list of tags associated with this automation",
422
422
  )