prefect-client 3.4.5.dev4__tar.gz → 3.4.5.dev5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/PKG-INFO +1 -1
  2. prefect_client-3.4.5.dev5/src/prefect/_build_info.py +5 -0
  3. prefect_client-3.4.5.dev5/src/prefect/assets/__init__.py +4 -0
  4. prefect_client-3.4.5.dev5/src/prefect/assets/core.py +71 -0
  5. prefect_client-3.4.5.dev5/src/prefect/assets/materialize.py +42 -0
  6. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/context.py +226 -2
  7. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/deployments/runner.py +2 -2
  8. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/runner/server.py +2 -2
  9. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/runner/submit.py +2 -2
  10. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/events.py +1 -1
  11. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/task_workers.py +1 -1
  12. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/task_engine.py +73 -25
  13. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/tasks.py +100 -3
  14. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/types/__init__.py +2 -0
  15. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/types/names.py +23 -0
  16. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/engine.py +15 -3
  17. prefect_client-3.4.5.dev4/src/prefect/_build_info.py +0 -5
  18. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/.gitignore +0 -0
  19. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/LICENSE +0 -0
  20. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/README.md +0 -0
  21. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/pyproject.toml +0 -0
  22. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/.prefectignore +0 -0
  23. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/__init__.py +0 -0
  24. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/__main__.py +0 -0
  25. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_experimental/__init__.py +0 -0
  26. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_experimental/bundles/__init__.py +0 -0
  27. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_experimental/bundles/execute.py +0 -0
  28. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_experimental/lineage.py +0 -0
  29. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_experimental/sla/__init__.py +0 -0
  30. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_experimental/sla/client.py +0 -0
  31. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_experimental/sla/objects.py +0 -0
  32. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/__init__.py +0 -0
  33. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/_logging.py +0 -0
  34. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/compatibility/__init__.py +0 -0
  35. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  36. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/compatibility/blocks.py +0 -0
  37. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  38. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/compatibility/migration.py +0 -0
  39. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/concurrency/__init__.py +0 -0
  40. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/concurrency/api.py +0 -0
  41. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/concurrency/calls.py +0 -0
  42. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  43. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  44. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/concurrency/inspection.py +0 -0
  45. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/concurrency/primitives.py +0 -0
  46. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/concurrency/services.py +0 -0
  47. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/concurrency/threads.py +0 -0
  48. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/concurrency/waiters.py +0 -0
  49. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/integrations.py +0 -0
  50. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/pydantic/__init__.py +0 -0
  51. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/pydantic/schemas.py +0 -0
  52. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  53. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  54. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
  55. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/pytz.py +0 -0
  56. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/retries.py +0 -0
  57. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/schemas/__init__.py +0 -0
  58. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/schemas/bases.py +0 -0
  59. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/schemas/fields.py +0 -0
  60. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/schemas/serializers.py +0 -0
  61. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/schemas/validators.py +0 -0
  62. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_internal/uuid7.py +0 -0
  63. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_result_records.py +0 -0
  64. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_vendor/croniter/__init__.py +0 -0
  65. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_vendor/croniter/croniter.py +0 -0
  66. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_versioning.py +0 -0
  67. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/_waiters.py +0 -0
  68. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/agent.py +0 -0
  69. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/artifacts.py +0 -0
  70. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/automations.py +0 -0
  71. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/blocks/__init__.py +0 -0
  72. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/blocks/abstract.py +0 -0
  73. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/blocks/core.py +0 -0
  74. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/blocks/fields.py +0 -0
  75. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/blocks/notifications.py +0 -0
  76. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/blocks/redis.py +0 -0
  77. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/blocks/system.py +0 -0
  78. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/blocks/webhook.py +0 -0
  79. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/cache_policies.py +0 -0
  80. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/__init__.py +0 -0
  81. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/base.py +0 -0
  82. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/cloud.py +0 -0
  83. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/collections.py +0 -0
  84. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/constants.py +0 -0
  85. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/__init__.py +0 -0
  86. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
  87. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  88. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
  89. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_automations/client.py +0 -0
  90. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
  91. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  92. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
  93. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  94. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
  95. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  96. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
  97. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
  98. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
  99. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_deployments/client.py +0 -0
  100. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
  101. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  102. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
  103. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_flows/client.py +0 -0
  104. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
  105. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_logs/client.py +0 -0
  106. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
  107. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_variables/client.py +0 -0
  108. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
  109. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
  110. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/base.py +0 -0
  111. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/orchestration/routes.py +0 -0
  112. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/schemas/__init__.py +0 -0
  113. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/schemas/actions.py +0 -0
  114. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/schemas/filters.py +0 -0
  115. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/schemas/objects.py +0 -0
  116. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/schemas/responses.py +0 -0
  117. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/schemas/schedules.py +0 -0
  118. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/schemas/sorting.py +0 -0
  119. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/subscriptions.py +0 -0
  120. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/types/__init__.py +0 -0
  121. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  122. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/client/utilities.py +0 -0
  123. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/concurrency/__init__.py +0 -0
  124. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/concurrency/_asyncio.py +0 -0
  125. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/concurrency/_events.py +0 -0
  126. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/concurrency/asyncio.py +0 -0
  127. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/concurrency/context.py +0 -0
  128. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/concurrency/services.py +0 -0
  129. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/concurrency/sync.py +0 -0
  130. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/concurrency/v1/__init__.py +0 -0
  131. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  132. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/concurrency/v1/_events.py +0 -0
  133. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/concurrency/v1/asyncio.py +0 -0
  134. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/concurrency/v1/context.py +0 -0
  135. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/concurrency/v1/services.py +0 -0
  136. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/concurrency/v1/sync.py +0 -0
  137. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/deployments/__init__.py +0 -0
  138. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/deployments/base.py +0 -0
  139. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/deployments/deployments.py +0 -0
  140. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/deployments/flow_runs.py +0 -0
  141. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/deployments/schedules.py +0 -0
  142. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/deployments/steps/__init__.py +0 -0
  143. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/deployments/steps/core.py +0 -0
  144. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/deployments/steps/pull.py +0 -0
  145. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/deployments/steps/utility.py +0 -0
  146. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/docker/__init__.py +0 -0
  147. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/docker/docker_image.py +0 -0
  148. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/engine.py +0 -0
  149. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/events/__init__.py +0 -0
  150. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/events/actions.py +0 -0
  151. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/events/cli/__init__.py +0 -0
  152. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/events/cli/automations.py +0 -0
  153. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/events/clients.py +0 -0
  154. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/events/filters.py +0 -0
  155. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/events/related.py +0 -0
  156. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/events/schemas/__init__.py +0 -0
  157. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/events/schemas/automations.py +0 -0
  158. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  159. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/events/schemas/events.py +0 -0
  160. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/events/schemas/labelling.py +0 -0
  161. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/events/utilities.py +0 -0
  162. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/events/worker.py +0 -0
  163. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/exceptions.py +0 -0
  164. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/filesystems.py +0 -0
  165. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/flow_engine.py +0 -0
  166. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/flow_runs.py +0 -0
  167. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/flows.py +0 -0
  168. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/futures.py +0 -0
  169. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/infrastructure/__init__.py +0 -0
  170. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/infrastructure/base.py +0 -0
  171. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  172. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  173. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  174. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  175. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  176. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  177. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/input/__init__.py +0 -0
  178. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/input/actions.py +0 -0
  179. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/input/run_input.py +0 -0
  180. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/locking/__init__.py +0 -0
  181. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/locking/filesystem.py +0 -0
  182. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/locking/memory.py +0 -0
  183. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/locking/protocol.py +0 -0
  184. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/logging/__init__.py +0 -0
  185. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/logging/configuration.py +0 -0
  186. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/logging/filters.py +0 -0
  187. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/logging/formatters.py +0 -0
  188. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/logging/handlers.py +0 -0
  189. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/logging/highlighters.py +0 -0
  190. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/logging/loggers.py +0 -0
  191. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/logging/logging.yml +0 -0
  192. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/main.py +0 -0
  193. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/plugins.py +0 -0
  194. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/py.typed +0 -0
  195. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/results.py +0 -0
  196. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/runner/__init__.py +0 -0
  197. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/runner/_observers.py +0 -0
  198. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/runner/runner.py +0 -0
  199. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/runner/storage.py +0 -0
  200. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/runner/utils.py +0 -0
  201. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/runtime/__init__.py +0 -0
  202. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/runtime/deployment.py +0 -0
  203. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/runtime/flow_run.py +0 -0
  204. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/runtime/task_run.py +0 -0
  205. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/schedules.py +0 -0
  206. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/serializers.py +0 -0
  207. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/__init__.py +0 -0
  208. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/admin.py +0 -0
  209. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/artifacts.py +0 -0
  210. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/automations.py +0 -0
  211. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/block_capabilities.py +0 -0
  212. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/block_documents.py +0 -0
  213. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/block_schemas.py +0 -0
  214. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/block_types.py +0 -0
  215. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/clients.py +0 -0
  216. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/collections.py +0 -0
  217. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  218. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/concurrency_limits.py +0 -0
  219. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
  220. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/csrf_token.py +0 -0
  221. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/dependencies.py +0 -0
  222. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/deployments.py +0 -0
  223. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/flow_run_states.py +0 -0
  224. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/flow_runs.py +0 -0
  225. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/flows.py +0 -0
  226. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/logs.py +0 -0
  227. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/middleware.py +0 -0
  228. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/root.py +0 -0
  229. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/run_history.py +0 -0
  230. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/saved_searches.py +0 -0
  231. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/server.py +0 -0
  232. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  233. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/task_run_states.py +0 -0
  234. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/task_runs.py +0 -0
  235. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/templates.py +0 -0
  236. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/ui/__init__.py +0 -0
  237. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/ui/flow_runs.py +0 -0
  238. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/ui/flows.py +0 -0
  239. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/ui/schemas.py +0 -0
  240. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/ui/task_runs.py +0 -0
  241. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/validation.py +0 -0
  242. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/variables.py +0 -0
  243. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/work_queues.py +0 -0
  244. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/server/api/workers.py +0 -0
  245. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/__init__.py +0 -0
  246. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/base.py +0 -0
  247. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/constants.py +0 -0
  248. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/context.py +0 -0
  249. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/legacy.py +0 -0
  250. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/__init__.py +0 -0
  251. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/api.py +0 -0
  252. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/cli.py +0 -0
  253. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/client.py +0 -0
  254. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/cloud.py +0 -0
  255. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/deployments.py +0 -0
  256. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/experiments.py +0 -0
  257. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/flows.py +0 -0
  258. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/internal.py +0 -0
  259. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/logging.py +0 -0
  260. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/results.py +0 -0
  261. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/root.py +0 -0
  262. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/runner.py +0 -0
  263. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/server/__init__.py +0 -0
  264. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/server/api.py +0 -0
  265. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/server/database.py +0 -0
  266. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/server/deployments.py +0 -0
  267. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/server/ephemeral.py +0 -0
  268. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/server/events.py +0 -0
  269. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  270. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/server/root.py +0 -0
  271. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/server/services.py +0 -0
  272. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/server/tasks.py +0 -0
  273. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/server/ui.py +0 -0
  274. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/tasks.py +0 -0
  275. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/testing.py +0 -0
  276. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/models/worker.py +0 -0
  277. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/profiles.py +0 -0
  278. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/profiles.toml +0 -0
  279. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/settings/sources.py +0 -0
  280. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/states.py +0 -0
  281. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/task_runners.py +0 -0
  282. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/task_runs.py +0 -0
  283. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/task_worker.py +0 -0
  284. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/telemetry/__init__.py +0 -0
  285. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/telemetry/bootstrap.py +0 -0
  286. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/telemetry/instrumentation.py +0 -0
  287. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/telemetry/logging.py +0 -0
  288. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/telemetry/processors.py +0 -0
  289. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/telemetry/run_telemetry.py +0 -0
  290. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/telemetry/services.py +0 -0
  291. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/transactions.py +0 -0
  292. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/types/_datetime.py +0 -0
  293. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/types/entrypoint.py +0 -0
  294. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/__init__.py +0 -0
  295. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/_ast.py +0 -0
  296. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/_deprecated.py +0 -0
  297. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/_engine.py +0 -0
  298. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/_git.py +0 -0
  299. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/annotations.py +0 -0
  300. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/asyncutils.py +0 -0
  301. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/callables.py +0 -0
  302. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/collections.py +0 -0
  303. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/compat.py +0 -0
  304. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/context.py +0 -0
  305. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/dispatch.py +0 -0
  306. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/dockerutils.py +0 -0
  307. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/filesystem.py +0 -0
  308. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/generics.py +0 -0
  309. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/hashing.py +0 -0
  310. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/importtools.py +0 -0
  311. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/math.py +0 -0
  312. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/names.py +0 -0
  313. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/processutils.py +0 -0
  314. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/pydantic.py +0 -0
  315. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/render_swagger.py +0 -0
  316. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  317. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  318. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/schema_tools/validation.py +0 -0
  319. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/services.py +0 -0
  320. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/slugify.py +0 -0
  321. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/templating.py +0 -0
  322. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/text.py +0 -0
  323. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/timeout.py +0 -0
  324. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/urls.py +0 -0
  325. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/utilities/visualization.py +0 -0
  326. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/variables.py +0 -0
  327. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/workers/__init__.py +0 -0
  328. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/workers/base.py +0 -0
  329. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/workers/block.py +0 -0
  330. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/workers/cloud.py +0 -0
  331. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/workers/process.py +0 -0
  332. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/workers/server.py +0 -0
  333. {prefect_client-3.4.5.dev4 → prefect_client-3.4.5.dev5}/src/prefect/workers/utilities.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: prefect-client
3
- Version: 3.4.5.dev4
3
+ Version: 3.4.5.dev5
4
4
  Summary: Workflow orchestration and management.
5
5
  Project-URL: Changelog, https://github.com/PrefectHQ/prefect/releases
6
6
  Project-URL: Documentation, https://docs.prefect.io
@@ -0,0 +1,5 @@
1
+ # Generated by versioningit
2
+ __version__ = "3.4.5.dev5"
3
+ __build_date__ = "2025-06-06 08:09:21.189765+00:00"
4
+ __git_commit__ = "6fd843adf3aa002e8907b0ba1b96be0af8259b2d"
5
+ __dirty__ = False
@@ -0,0 +1,4 @@
1
+ from prefect.assets.core import Asset, AssetProperties, add_asset_metadata
2
+ from prefect.assets.materialize import materialize
3
+
4
+ __all__ = ["Asset", "AssetProperties", "materialize", "add_asset_metadata"]
@@ -0,0 +1,71 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Any, ClassVar, Optional
4
+
5
+ from pydantic import ConfigDict, Field
6
+
7
+ from prefect._internal.schemas.bases import PrefectBaseModel
8
+ from prefect.types import URILike
9
+
10
+
11
+ class AssetProperties(PrefectBaseModel):
12
+ """
13
+ Metadata properties to configure on an Asset
14
+ """
15
+
16
+ model_config: ClassVar[ConfigDict] = ConfigDict(frozen=True)
17
+
18
+ name: Optional[str] = Field(
19
+ default=None, description="Human readable name of the Asset."
20
+ )
21
+ url: Optional[str] = Field(
22
+ default=None, description="Visitable url to view the Asset."
23
+ )
24
+ description: Optional[str] = Field(
25
+ default=None, description="Description of the Asset."
26
+ )
27
+ owners: Optional[list[str]] = Field(
28
+ default=None, description="Owners of the Asset."
29
+ )
30
+
31
+
32
+ class Asset(PrefectBaseModel):
33
+ """
34
+ Assets are objects that represent materialized data,
35
+ providing a way to track lineage and dependencies.
36
+ """
37
+
38
+ model_config: ClassVar[ConfigDict] = ConfigDict(frozen=True)
39
+
40
+ key: URILike
41
+ properties: Optional[AssetProperties] = Field(
42
+ default=None,
43
+ description="Properties of the asset. "
44
+ "Setting this will overwrite properties of a known asset.",
45
+ )
46
+
47
+ def __repr__(self) -> str:
48
+ return f"Asset(key={self.key!r})"
49
+
50
+ def add_metadata(self, metadata: dict[str, Any]) -> None:
51
+ from prefect.context import AssetContext
52
+
53
+ asset_ctx = AssetContext.get()
54
+ if not asset_ctx:
55
+ raise RuntimeError(
56
+ "Unable add Asset metadata when not inside of an AssetContext"
57
+ )
58
+
59
+ asset_ctx.add_asset_metadata(self.key, metadata)
60
+
61
+
62
+ def add_asset_metadata(asset_key: str, metadata: dict[str, Any]) -> None:
63
+ from prefect.context import AssetContext
64
+
65
+ asset_ctx = AssetContext.get()
66
+ if not asset_ctx:
67
+ raise RuntimeError(
68
+ "Unable to call `add_asset_metadata` when not inside of an AssetContext"
69
+ )
70
+
71
+ asset_ctx.add_asset_metadata(asset_key, metadata)
@@ -0,0 +1,42 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING, Callable, TypeVar, Union
4
+
5
+ from typing_extensions import ParamSpec, Unpack
6
+
7
+ from .core import Asset
8
+
9
+ T = TypeVar("T")
10
+ P = ParamSpec("P")
11
+ R = TypeVar("R")
12
+
13
+ if TYPE_CHECKING:
14
+ from prefect.tasks import MaterializingTask, TaskOptions
15
+
16
+
17
+ def materialize(
18
+ *assets: Union[str, Asset],
19
+ by: str | None = None,
20
+ **task_kwargs: Unpack[TaskOptions],
21
+ ) -> Callable[[Callable[P, R]], MaterializingTask[P, R]]:
22
+ """
23
+ Decorator for materializing assets.
24
+
25
+ Args:
26
+ *assets: Assets to materialize
27
+ by: An optional tool that is ultimately responsible for materializing the asset e.g. "dbt" or "spark"
28
+ **task_kwargs: Additional task configuration
29
+ """
30
+ if not assets:
31
+ raise TypeError(
32
+ "materialize requires at least one asset argument, e.g. `@materialize(asset)`"
33
+ )
34
+
35
+ from prefect.tasks import MaterializingTask
36
+
37
+ def decorator(fn: Callable[P, R]) -> MaterializingTask[P, R]:
38
+ return MaterializingTask(
39
+ fn=fn, assets=assets, materialized_by=by, **task_kwargs
40
+ )
41
+
42
+ return decorator
@@ -7,13 +7,23 @@ For more user-accessible information about the current run, see [`prefect.runtim
7
7
  """
8
8
 
9
9
  import asyncio
10
+ import json
10
11
  import os
11
12
  import sys
12
13
  import warnings
13
14
  from collections.abc import AsyncGenerator, Generator, Mapping
14
15
  from contextlib import ExitStack, asynccontextmanager, contextmanager
15
16
  from contextvars import ContextVar, Token
16
- from typing import TYPE_CHECKING, Any, Callable, ClassVar, Optional, TypeVar, Union
17
+ from typing import (
18
+ TYPE_CHECKING,
19
+ Any,
20
+ Callable,
21
+ ClassVar,
22
+ Optional,
23
+ TypeVar,
24
+ Union,
25
+ )
26
+ from uuid import UUID
17
27
 
18
28
  from pydantic import BaseModel, ConfigDict, Field, PrivateAttr
19
29
  from typing_extensions import Self
@@ -21,6 +31,7 @@ from typing_extensions import Self
21
31
  import prefect.settings
22
32
  import prefect.types._datetime
23
33
  from prefect._internal.compatibility.migration import getattr_migration
34
+ from prefect.assets import Asset
24
35
  from prefect.client.orchestration import PrefectClient, SyncPrefectClient, get_client
25
36
  from prefect.client.schemas import FlowRun, TaskRun
26
37
  from prefect.events.worker import EventsWorker
@@ -48,9 +59,15 @@ if TYPE_CHECKING:
48
59
  from prefect.tasks import Task
49
60
 
50
61
 
51
- def serialize_context() -> dict[str, Any]:
62
+ def serialize_context(
63
+ asset_ctx_kwargs: Union[dict[str, Any], None] = None,
64
+ ) -> dict[str, Any]:
52
65
  """
53
66
  Serialize the current context for use in a remote execution environment.
67
+
68
+ Optionally provide asset_ctx_kwargs to create new AssetContext, that will be used
69
+ in the remote execution environment. This is useful for TaskRunners, who rely on creating the
70
+ task run in the remote environment.
54
71
  """
55
72
  flow_run_context = EngineContext.get()
56
73
  task_run_context = TaskRunContext.get()
@@ -62,6 +79,11 @@ def serialize_context() -> dict[str, Any]:
62
79
  "task_run_context": task_run_context.serialize() if task_run_context else {},
63
80
  "tags_context": tags_context.serialize() if tags_context else {},
64
81
  "settings_context": settings_context.serialize() if settings_context else {},
82
+ "asset_context": AssetContext.from_task_and_inputs(
83
+ **asset_ctx_kwargs
84
+ ).serialize()
85
+ if asset_ctx_kwargs
86
+ else {},
65
87
  }
66
88
 
67
89
 
@@ -112,6 +134,9 @@ def hydrated_context(
112
134
  # Set up tags context
113
135
  if tags_context := serialized_context.get("tags_context"):
114
136
  stack.enter_context(tags(*tags_context["current_tags"]))
137
+ # Set up asset context
138
+ if asset_context := serialized_context.get("asset_context"):
139
+ stack.enter_context(AssetContext(**asset_context))
115
140
  yield
116
141
 
117
142
 
@@ -373,6 +398,10 @@ class EngineContext(RunContext):
373
398
  # Holds the ID of the object returned by the task run and task run state
374
399
  task_run_results: dict[int, State] = Field(default_factory=dict)
375
400
 
401
+ # Tracking information needed to track asset linage between
402
+ # tasks and materialization
403
+ task_run_assets: dict[UUID, list[Asset]] = Field(default_factory=dict)
404
+
376
405
  # Events worker to emit events
377
406
  events: Optional[EventsWorker] = None
378
407
 
@@ -443,6 +472,201 @@ class TaskRunContext(RunContext):
443
472
  )
444
473
 
445
474
 
475
+ class AssetContext(ContextModel):
476
+ """
477
+ The asset context for a materializing task run. Contains all asset-related information needed
478
+ for asset event emission and downstream asset dependency propagation.
479
+
480
+ Attributes:
481
+ direct_asset_dependencies: Assets that this task directly depends on (from task.asset_deps)
482
+ downstream_assets: Assets that this task will create/materialize (from MaterializingTask.assets)
483
+ upstream_assets: Assets from upstream task dependencies
484
+ materialized_by: Tool that materialized the assets (from MaterializingTask.materialized_by)
485
+ task_run_id: ID of the associated task run
486
+ materialization_metadata: Metadata for materialized assets
487
+ """
488
+
489
+ direct_asset_dependencies: list[Asset] = Field(default_factory=list)
490
+ downstream_assets: list[Asset] = Field(default_factory=list)
491
+ upstream_assets: list[Asset] = Field(default_factory=list)
492
+ materialized_by: Optional[str] = None
493
+ task_run_id: Optional[UUID] = None
494
+ materialization_metadata: dict[str, dict[str, Any]] = Field(default_factory=dict)
495
+
496
+ __var__: ClassVar[ContextVar[Self]] = ContextVar("asset_context")
497
+
498
+ @classmethod
499
+ def from_task_and_inputs(
500
+ cls,
501
+ task: "Task[Any, Any]",
502
+ task_run_id: UUID,
503
+ task_inputs: Optional[dict[str, set[Any]]] = None,
504
+ ) -> "AssetContext":
505
+ """
506
+ Create an AssetContext from a task and its resolved inputs.
507
+
508
+ Args:
509
+ task: The task instance
510
+ task_run_id: The task run ID
511
+ task_inputs: The resolved task inputs (TaskRunResult objects)
512
+
513
+ Returns:
514
+ Configured AssetContext
515
+ """
516
+ from prefect.client.schemas import TaskRunResult
517
+ from prefect.tasks import MaterializingTask
518
+
519
+ upstream_assets: list[Asset] = []
520
+
521
+ # Get upstream assets from engine context instead of TaskRunResult.assets
522
+ flow_ctx = FlowRunContext.get()
523
+ if task_inputs and flow_ctx:
524
+ for inputs in task_inputs.values():
525
+ for task_input in inputs:
526
+ if isinstance(task_input, TaskRunResult):
527
+ # Look up assets in the engine context
528
+ task_assets = flow_ctx.task_run_assets.get(task_input.id)
529
+ if task_assets:
530
+ upstream_assets.extend(task_assets)
531
+
532
+ ctx = cls(
533
+ direct_asset_dependencies=task.asset_deps[:] if task.asset_deps else [],
534
+ downstream_assets=task.assets[:]
535
+ if isinstance(task, MaterializingTask) and task.assets
536
+ else [],
537
+ upstream_assets=upstream_assets,
538
+ materialized_by=task.materialized_by
539
+ if isinstance(task, MaterializingTask)
540
+ else None,
541
+ task_run_id=task_run_id,
542
+ )
543
+ ctx.update_tracked_assets()
544
+
545
+ return ctx
546
+
547
+ def add_asset_metadata(self, asset_key: str, metadata: dict[str, Any]) -> None:
548
+ """
549
+ Add metadata for a materialized asset.
550
+
551
+ Args:
552
+ asset_key: The asset key
553
+ metadata: Metadata dictionary to add
554
+ """
555
+
556
+ existing = self.materialization_metadata.get(asset_key, {})
557
+ self.materialization_metadata[asset_key] = existing | metadata
558
+
559
+ @staticmethod
560
+ def asset_as_resource(asset: Asset) -> dict[str, str]:
561
+ """Convert Asset to event resource format."""
562
+ resource = {"prefect.resource.id": asset.key}
563
+
564
+ if asset.properties:
565
+ properties_dict = asset.properties.model_dump(exclude_unset=True)
566
+
567
+ if "name" in properties_dict:
568
+ resource["prefect.resource.name"] = properties_dict["name"]
569
+
570
+ if "description" in properties_dict:
571
+ resource["prefect.asset.description"] = properties_dict["description"]
572
+
573
+ if "url" in properties_dict:
574
+ resource["prefect.asset.url"] = properties_dict["url"]
575
+
576
+ if "owners" in properties_dict:
577
+ resource["prefect.asset.owners"] = json.dumps(properties_dict["owners"])
578
+
579
+ return resource
580
+
581
+ @staticmethod
582
+ def asset_as_related(asset: Asset) -> dict[str, str]:
583
+ """Convert Asset to event related format."""
584
+ return {
585
+ "prefect.resource.id": asset.key,
586
+ "prefect.resource.role": "asset",
587
+ }
588
+
589
+ @staticmethod
590
+ def related_materialized_by(by: str) -> dict[str, str]:
591
+ """Create a related resource for the tool that performed the materialization"""
592
+ return {
593
+ "prefect.resource.id": by,
594
+ "prefect.resource.role": "asset-materialized-by",
595
+ }
596
+
597
+ def emit_events(self, state: State) -> None:
598
+ """
599
+ Emit asset reference and materialization events based on task completion.
600
+ """
601
+
602
+ from prefect.events import emit_event
603
+
604
+ if state.name == "Cached":
605
+ return
606
+ if state.is_failed():
607
+ event_status = "failed"
608
+ elif state.is_completed():
609
+ event_status = "succeeded"
610
+ else:
611
+ return
612
+
613
+ asset_deps_related: list[Asset] = []
614
+
615
+ # Emit reference events for direct asset dependencies
616
+ for asset in self.direct_asset_dependencies:
617
+ emit_event(
618
+ event=f"prefect.asset.reference.{event_status}",
619
+ resource=self.asset_as_resource(asset),
620
+ related=[],
621
+ )
622
+ asset_deps_related.append(self.asset_as_related(asset))
623
+
624
+ # Emit materialization events for downstream assets
625
+ if self.downstream_assets:
626
+ upstream_related = [self.asset_as_related(a) for a in self.upstream_assets]
627
+ all_related = upstream_related + asset_deps_related
628
+
629
+ if self.materialized_by:
630
+ all_related.append(self.related_materialized_by(self.materialized_by))
631
+
632
+ for asset in self.downstream_assets:
633
+ emit_event(
634
+ event=f"prefect.asset.materialization.{event_status}",
635
+ resource=self.asset_as_resource(asset),
636
+ related=all_related,
637
+ payload=self.materialization_metadata.get(asset.key),
638
+ )
639
+
640
+ def update_tracked_assets(self) -> None:
641
+ """
642
+ Update the flow run context with assets that should be propagated downstream.
643
+ """
644
+ if not (flow_run_context := FlowRunContext.get()):
645
+ return
646
+
647
+ if not self.task_run_id:
648
+ return
649
+
650
+ if self.downstream_assets:
651
+ # MaterializingTask: propagate the downstream assets (what we create)
652
+ assets_for_downstream = self.downstream_assets[:]
653
+ else:
654
+ # Regular task: propagate upstream assets + direct dependencies
655
+ assets_for_downstream = (
656
+ list(self.upstream_assets) + self.direct_asset_dependencies
657
+ )
658
+
659
+ flow_run_context.task_run_assets[self.task_run_id] = assets_for_downstream
660
+
661
+ def serialize(self: Self, include_secrets: bool = True) -> dict[str, Any]:
662
+ """Serialize the AssetContext for distributed execution."""
663
+ return self.model_dump(
664
+ exclude_unset=True,
665
+ serialize_as_any=True,
666
+ context={"include_secrets": include_secrets},
667
+ )
668
+
669
+
446
670
  class TagsContext(ContextModel):
447
671
  """
448
672
  The context for `prefect.tags` management.
@@ -1222,14 +1222,14 @@ async def deploy(
1222
1222
  " or specify a remote storage location for the flow with `.from_source`."
1223
1223
  " If you are attempting to deploy a flow to a local process work pool,"
1224
1224
  " consider using `flow.serve` instead. See the documentation for more"
1225
- " information: https://docs.prefect.io/latest/deploy/run-flows-in-local-processes"
1225
+ " information: https://docs.prefect.io/latest/how-to-guides/deployments/run-flows-in-local-processes"
1226
1226
  )
1227
1227
  elif work_pool.type == "process" and not ignore_warnings:
1228
1228
  console.print(
1229
1229
  "Looks like you're deploying to a process work pool. If you're creating a"
1230
1230
  " deployment for local development, calling `.serve` on your flow is a great"
1231
1231
  " way to get started. See the documentation for more information:"
1232
- " https://docs.prefect.io/latest/deploy/run-flows-in-local-processes "
1232
+ " https://docs.prefect.io/latest/how-to-guides/deployments/run-flows-in-local-processes "
1233
1233
  " Set `ignore_warnings=True` to suppress this message.",
1234
1234
  style="yellow",
1235
1235
  )
@@ -257,7 +257,7 @@ def _build_generic_endpoint_for_flows(
257
257
  @deprecated_callable(
258
258
  start_date=datetime(2025, 4, 1),
259
259
  end_date=datetime(2025, 10, 1),
260
- help="Use background tasks (https://docs.prefect.io/v3/develop/deferred-tasks) or `run_deployment` and `.serve` instead of submitting runs to the Runner webserver.",
260
+ help="Use background tasks (https://docs.prefect.io/v3/concepts/tasks#background-tasks) or `run_deployment` and `.serve` instead of submitting runs to the Runner webserver.",
261
261
  )
262
262
  async def build_server(runner: "Runner") -> FastAPI:
263
263
  """
@@ -306,7 +306,7 @@ async def build_server(runner: "Runner") -> FastAPI:
306
306
  @deprecated_callable(
307
307
  start_date=datetime(2025, 4, 1),
308
308
  end_date=datetime(2025, 10, 1),
309
- help="Use background tasks (https://docs.prefect.io/v3/develop/deferred-tasks) or `run_deployment` and `.serve` instead of submitting runs to the Runner webserver.",
309
+ help="Use background tasks (https://docs.prefect.io/v3/concepts/flows-and-tasks#background-tasks) or `run_deployment` and `.serve` instead of submitting runs to the Runner webserver.",
310
310
  )
311
311
  def start_webserver(runner: "Runner", log_level: str | None = None) -> None:
312
312
  """
@@ -124,7 +124,7 @@ def submit_to_runner(
124
124
  @deprecated_callable(
125
125
  start_date=datetime(2025, 4, 1),
126
126
  end_date=datetime(2025, 10, 1),
127
- help="Use background tasks (https://docs.prefect.io/v3/develop/deferred-tasks) or `run_deployment` and `.serve` instead of submitting runs to the Runner webserver.",
127
+ help="Use background tasks (https://docs.prefect.io/v3/concepts/flows-and-tasks#background-tasks) or `run_deployment` and `.serve` instead of submitting runs to the Runner webserver.",
128
128
  )
129
129
  @sync_compatible
130
130
  async def submit_to_runner(
@@ -196,7 +196,7 @@ async def submit_to_runner(
196
196
  @deprecated_callable(
197
197
  start_date=datetime(2025, 4, 1),
198
198
  end_date=datetime(2025, 10, 1),
199
- help="Use background tasks (https://docs.prefect.io/v3/develop/deferred-tasks) or `run_deployment` and `.serve` instead of submitting runs to the Runner webserver.",
199
+ help="Use background tasks (https://docs.prefect.io/v3/concepts/flows-and-tasks#background-tasks) or `run_deployment` and `.serve` instead of submitting runs to the Runner webserver.",
200
200
  )
201
201
  @sync_compatible
202
202
  async def wait_for_submitted_runs(
@@ -51,7 +51,7 @@ async def create_events(
51
51
  """
52
52
  Record a batch of Events.
53
53
 
54
- For more information, see https://docs.prefect.io/v3/automate/events/events.
54
+ For more information, see https://docs.prefect.io/v3/concepts/events.
55
55
  """
56
56
  if ephemeral_request:
57
57
  await EventsPipeline().process_events(events)
@@ -23,7 +23,7 @@ async def read_task_workers(
23
23
  """
24
24
  Read active task workers. Optionally filter by task keys.
25
25
 
26
- For more information, see https://docs.prefect.io/v3/develop/deferred-tasks.
26
+ For more information, see https://docs.prefect.io/v3/concepts/flows-and-tasks#background-tasks.
27
27
  """
28
28
 
29
29
  if task_worker_filter and task_worker_filter.task_keys: