prefect-client 3.1.13__tar.gz → 3.1.15__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 (289) hide show
  1. {prefect-client-3.1.13/src/prefect_client.egg-info → prefect-client-3.1.15}/PKG-INFO +1 -1
  2. {prefect-client-3.1.13 → prefect-client-3.1.15}/requirements.txt +1 -1
  3. prefect-client-3.1.15/src/prefect/__main__.py +4 -0
  4. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_experimental/lineage.py +92 -11
  5. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/concurrency/services.py +1 -1
  6. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_version.py +3 -3
  7. prefect-client-3.1.15/src/prefect/artifacts.py +746 -0
  8. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/blocks/core.py +1 -1
  9. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/blocks/notifications.py +5 -0
  10. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/cache_policies.py +50 -2
  11. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_automations/client.py +4 -0
  12. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_deployments/client.py +3 -3
  13. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/schemas/actions.py +11 -1
  14. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/schemas/schedules.py +4 -4
  15. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/context.py +16 -6
  16. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/deployments/base.py +13 -16
  17. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/deployments/runner.py +117 -4
  18. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/events/clients.py +39 -0
  19. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/events/filters.py +34 -34
  20. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/flow_engine.py +274 -114
  21. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/flows.py +253 -10
  22. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/logging/configuration.py +2 -5
  23. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/logging/loggers.py +1 -2
  24. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/runner/runner.py +79 -58
  25. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/runtime/task_run.py +37 -9
  26. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/tasks.py +45 -7
  27. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/types/__init__.py +6 -5
  28. prefect-client-3.1.15/src/prefect/types/_datetime.py +19 -0
  29. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/render_swagger.py +1 -1
  30. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/templating.py +7 -0
  31. {prefect-client-3.1.13 → prefect-client-3.1.15/src/prefect_client.egg-info}/PKG-INFO +1 -1
  32. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect_client.egg-info/SOURCES.txt +2 -0
  33. prefect-client-3.1.13/src/prefect/artifacts.py +0 -443
  34. {prefect-client-3.1.13 → prefect-client-3.1.15}/LICENSE +0 -0
  35. {prefect-client-3.1.13 → prefect-client-3.1.15}/MANIFEST.in +0 -0
  36. {prefect-client-3.1.13 → prefect-client-3.1.15}/README.md +0 -0
  37. {prefect-client-3.1.13 → prefect-client-3.1.15}/requirements-client.txt +0 -0
  38. {prefect-client-3.1.13 → prefect-client-3.1.15}/requirements-dev.txt +0 -0
  39. {prefect-client-3.1.13 → prefect-client-3.1.15}/setup.cfg +0 -0
  40. {prefect-client-3.1.13 → prefect-client-3.1.15}/setup.py +0 -0
  41. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/.prefectignore +0 -0
  42. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/__init__.py +0 -0
  43. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_experimental/__init__.py +0 -0
  44. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_experimental/sla/__init__.py +0 -0
  45. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_experimental/sla/client.py +0 -0
  46. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_experimental/sla/objects.py +0 -0
  47. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/__init__.py +0 -0
  48. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/_logging.py +0 -0
  49. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/compatibility/__init__.py +0 -0
  50. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  51. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  52. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/compatibility/migration.py +0 -0
  53. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/concurrency/__init__.py +0 -0
  54. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/concurrency/api.py +0 -0
  55. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/concurrency/calls.py +0 -0
  56. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  57. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  58. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/concurrency/inspection.py +0 -0
  59. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/concurrency/primitives.py +0 -0
  60. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/concurrency/threads.py +0 -0
  61. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/concurrency/waiters.py +0 -0
  62. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/integrations.py +0 -0
  63. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/pydantic/__init__.py +0 -0
  64. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/pydantic/annotations/__init__.py +0 -0
  65. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/pydantic/annotations/pendulum.py +0 -0
  66. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/pydantic/schemas.py +0 -0
  67. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  68. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  69. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
  70. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/pytz.py +0 -0
  71. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/retries.py +0 -0
  72. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/schemas/__init__.py +0 -0
  73. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/schemas/bases.py +0 -0
  74. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/schemas/fields.py +0 -0
  75. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/schemas/serializers.py +0 -0
  76. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/_internal/schemas/validators.py +0 -0
  77. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/agent.py +0 -0
  78. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/automations.py +0 -0
  79. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/blocks/__init__.py +0 -0
  80. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/blocks/abstract.py +0 -0
  81. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/blocks/fields.py +0 -0
  82. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/blocks/redis.py +0 -0
  83. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/blocks/system.py +0 -0
  84. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/blocks/webhook.py +0 -0
  85. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/__init__.py +0 -0
  86. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/base.py +0 -0
  87. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/cloud.py +0 -0
  88. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/collections.py +0 -0
  89. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/constants.py +0 -0
  90. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/__init__.py +0 -0
  91. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
  92. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  93. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
  94. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
  95. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  96. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
  97. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  98. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
  99. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  100. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
  101. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
  102. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
  103. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
  104. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  105. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
  106. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_flows/client.py +0 -0
  107. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
  108. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_logs/client.py +0 -0
  109. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
  110. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/_variables/client.py +0 -0
  111. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/base.py +0 -0
  112. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/orchestration/routes.py +0 -0
  113. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/schemas/__init__.py +0 -0
  114. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/schemas/filters.py +0 -0
  115. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/schemas/objects.py +0 -0
  116. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/schemas/responses.py +0 -0
  117. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/schemas/sorting.py +0 -0
  118. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/subscriptions.py +0 -0
  119. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/types/__init__.py +0 -0
  120. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  121. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/client/utilities.py +0 -0
  122. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/concurrency/__init__.py +0 -0
  123. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/concurrency/_asyncio.py +0 -0
  124. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/concurrency/_events.py +0 -0
  125. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/concurrency/asyncio.py +0 -0
  126. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/concurrency/context.py +0 -0
  127. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/concurrency/services.py +0 -0
  128. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/concurrency/sync.py +0 -0
  129. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/concurrency/v1/__init__.py +0 -0
  130. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  131. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/concurrency/v1/_events.py +0 -0
  132. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/concurrency/v1/asyncio.py +0 -0
  133. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/concurrency/v1/context.py +0 -0
  134. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/concurrency/v1/services.py +0 -0
  135. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/concurrency/v1/sync.py +0 -0
  136. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/deployments/__init__.py +0 -0
  137. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/deployments/deployments.py +0 -0
  138. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/deployments/flow_runs.py +0 -0
  139. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/deployments/schedules.py +0 -0
  140. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/deployments/steps/__init__.py +0 -0
  141. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/deployments/steps/core.py +0 -0
  142. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/deployments/steps/pull.py +0 -0
  143. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/deployments/steps/utility.py +0 -0
  144. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/docker/__init__.py +0 -0
  145. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/docker/docker_image.py +0 -0
  146. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/engine.py +0 -0
  147. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/events/__init__.py +0 -0
  148. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/events/actions.py +0 -0
  149. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/events/cli/__init__.py +0 -0
  150. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/events/cli/automations.py +0 -0
  151. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/events/related.py +0 -0
  152. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/events/schemas/__init__.py +0 -0
  153. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/events/schemas/automations.py +0 -0
  154. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  155. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/events/schemas/events.py +0 -0
  156. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/events/schemas/labelling.py +0 -0
  157. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/events/utilities.py +0 -0
  158. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/events/worker.py +0 -0
  159. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/exceptions.py +0 -0
  160. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/filesystems.py +0 -0
  161. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/flow_runs.py +0 -0
  162. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/futures.py +0 -0
  163. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/infrastructure/__init__.py +0 -0
  164. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/infrastructure/base.py +0 -0
  165. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  166. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  167. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  168. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  169. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  170. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  171. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/input/__init__.py +0 -0
  172. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/input/actions.py +0 -0
  173. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/input/run_input.py +0 -0
  174. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/locking/__init__.py +0 -0
  175. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/locking/filesystem.py +0 -0
  176. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/locking/memory.py +0 -0
  177. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/locking/protocol.py +0 -0
  178. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/logging/__init__.py +0 -0
  179. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/logging/filters.py +0 -0
  180. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/logging/formatters.py +0 -0
  181. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/logging/handlers.py +0 -0
  182. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/logging/highlighters.py +0 -0
  183. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/logging/logging.yml +0 -0
  184. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/main.py +0 -0
  185. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/plugins.py +0 -0
  186. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/py.typed +0 -0
  187. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/results.py +0 -0
  188. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/runner/__init__.py +0 -0
  189. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/runner/server.py +0 -0
  190. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/runner/storage.py +0 -0
  191. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/runner/submit.py +0 -0
  192. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/runner/utils.py +0 -0
  193. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/runtime/__init__.py +0 -0
  194. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/runtime/deployment.py +0 -0
  195. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/runtime/flow_run.py +0 -0
  196. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/serializers.py +0 -0
  197. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  198. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  199. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/__init__.py +0 -0
  200. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/base.py +0 -0
  201. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/constants.py +0 -0
  202. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/context.py +0 -0
  203. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/legacy.py +0 -0
  204. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/__init__.py +0 -0
  205. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/api.py +0 -0
  206. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/cli.py +0 -0
  207. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/client.py +0 -0
  208. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/cloud.py +0 -0
  209. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/deployments.py +0 -0
  210. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/experiments.py +0 -0
  211. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/flows.py +0 -0
  212. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/internal.py +0 -0
  213. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/logging.py +0 -0
  214. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/results.py +0 -0
  215. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/root.py +0 -0
  216. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/runner.py +0 -0
  217. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/server/__init__.py +0 -0
  218. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/server/api.py +0 -0
  219. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/server/database.py +0 -0
  220. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/server/deployments.py +0 -0
  221. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/server/ephemeral.py +0 -0
  222. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/server/events.py +0 -0
  223. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  224. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/server/root.py +0 -0
  225. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/server/services.py +0 -0
  226. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/server/tasks.py +0 -0
  227. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/server/ui.py +0 -0
  228. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/tasks.py +0 -0
  229. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/testing.py +0 -0
  230. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/models/worker.py +0 -0
  231. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/profiles.py +0 -0
  232. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/profiles.toml +0 -0
  233. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/settings/sources.py +0 -0
  234. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/states.py +0 -0
  235. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/task_engine.py +0 -0
  236. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/task_runners.py +0 -0
  237. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/task_runs.py +0 -0
  238. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/task_worker.py +0 -0
  239. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/telemetry/__init__.py +0 -0
  240. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/telemetry/bootstrap.py +0 -0
  241. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/telemetry/instrumentation.py +0 -0
  242. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/telemetry/logging.py +0 -0
  243. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/telemetry/processors.py +0 -0
  244. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/telemetry/run_telemetry.py +0 -0
  245. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/telemetry/services.py +0 -0
  246. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/transactions.py +0 -0
  247. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/types/entrypoint.py +0 -0
  248. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/__init__.py +0 -0
  249. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/_deprecated.py +0 -0
  250. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/_engine.py +0 -0
  251. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/_git.py +0 -0
  252. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/annotations.py +0 -0
  253. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/asyncutils.py +0 -0
  254. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/callables.py +0 -0
  255. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/collections.py +0 -0
  256. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/compat.py +0 -0
  257. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/context.py +0 -0
  258. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/dispatch.py +0 -0
  259. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/dockerutils.py +0 -0
  260. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/engine.py +0 -0
  261. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/filesystem.py +0 -0
  262. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/generics.py +0 -0
  263. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/hashing.py +0 -0
  264. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/importtools.py +0 -0
  265. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/math.py +0 -0
  266. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/names.py +0 -0
  267. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/processutils.py +0 -0
  268. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/pydantic.py +0 -0
  269. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  270. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  271. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/schema_tools/validation.py +0 -0
  272. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/services.py +0 -0
  273. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/slugify.py +0 -0
  274. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/text.py +0 -0
  275. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/timeout.py +0 -0
  276. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/urls.py +0 -0
  277. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/utilities/visualization.py +0 -0
  278. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/variables.py +0 -0
  279. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/workers/__init__.py +0 -0
  280. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/workers/base.py +0 -0
  281. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/workers/block.py +0 -0
  282. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/workers/cloud.py +0 -0
  283. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/workers/process.py +0 -0
  284. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/workers/server.py +0 -0
  285. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect/workers/utilities.py +0 -0
  286. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect_client.egg-info/dependency_links.txt +0 -0
  287. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect_client.egg-info/requires.txt +0 -0
  288. {prefect-client-3.1.13 → prefect-client-3.1.15}/src/prefect_client.egg-info/top_level.txt +0 -0
  289. {prefect-client-3.1.13 → prefect-client-3.1.15}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: prefect-client
3
- Version: 3.1.13
3
+ Version: 3.1.15
4
4
  Summary: Workflow orchestration and management.
5
5
  Home-page: https://www.prefect.io
6
6
  Author: Prefect Technologies, Inc.
@@ -15,4 +15,4 @@ humanize >= 4.9.0, < 5.0.0
15
15
  pytz >= 2021.1, < 2025
16
16
  readchar >= 4.0.0, < 5.0.0
17
17
  sqlalchemy[asyncio] >= 2.0, < 3.0.0
18
- typer >= 0.12.0, != 0.12.2, < 0.14.0
18
+ typer >= 0.12.0, != 0.12.2, < 0.16.0
@@ -0,0 +1,4 @@
1
+ from prefect.cli import app
2
+
3
+ if __name__ == "__main__":
4
+ app()
@@ -1,15 +1,16 @@
1
1
  from typing import TYPE_CHECKING, Any, Dict, Literal, Optional, Sequence, Union
2
2
 
3
+ from typing_extensions import TypeAlias
4
+
3
5
  from prefect.events.related import related_resources_from_run_context
4
- from prefect.events.schemas.events import RelatedResource, Resource
6
+ from prefect.events.schemas.events import RelatedResource
5
7
  from prefect.events.utilities import emit_event
6
8
  from prefect.settings import get_current_settings
7
9
 
8
10
  if TYPE_CHECKING:
9
11
  from prefect.results import ResultStore
10
12
 
11
- UpstreamResources = Sequence[Union[RelatedResource, dict[str, str]]]
12
- DownstreamResources = Sequence[Union[Resource, dict[str, str]]]
13
+ LineageResources: TypeAlias = Sequence[Union[RelatedResource, dict[str, str]]]
13
14
 
14
15
  # Map block types to their URI schemes
15
16
  STORAGE_URI_SCHEMES = {
@@ -47,8 +48,8 @@ def get_result_resource_uri(
47
48
 
48
49
  async def emit_lineage_event(
49
50
  event_name: str,
50
- upstream_resources: Optional[UpstreamResources] = None,
51
- downstream_resources: Optional[DownstreamResources] = None,
51
+ upstream_resources: Optional[LineageResources] = None,
52
+ downstream_resources: Optional[LineageResources] = None,
52
53
  direction_of_run_from_event: Literal["upstream", "downstream"] = "downstream",
53
54
  ) -> None:
54
55
  """Emit lineage events showing relationships between resources.
@@ -73,7 +74,14 @@ async def emit_lineage_event(
73
74
  downstream_resources = list(downstream_resources) if downstream_resources else []
74
75
 
75
76
  async with get_client() as client:
76
- related_resources = await related_resources_from_run_context(client)
77
+ context_resources = await related_resources_from_run_context(client)
78
+
79
+ tag_resources = [
80
+ res for res in context_resources if res.get("prefect.resource.role") == "tag"
81
+ ]
82
+ context_resources = [
83
+ res for res in context_resources if res.get("prefect.resource.role") != "tag"
84
+ ]
77
85
 
78
86
  # NOTE: We handle adding run-related resources to the event here instead of in
79
87
  # the EventsWorker because not all run-related resources are upstream from
@@ -82,9 +90,9 @@ async def emit_lineage_event(
82
90
  # lineage-related events, tracks upstream resources only. For downstream
83
91
  # resources, we need to emit an event for each downstream resource.
84
92
  if direction_of_run_from_event == "downstream":
85
- downstream_resources.extend(related_resources)
93
+ downstream_resources.extend(context_resources)
86
94
  else:
87
- upstream_resources.extend(related_resources)
95
+ upstream_resources.extend(context_resources)
88
96
 
89
97
  # We want to consider all resources upstream and downstream of the event as
90
98
  # lineage-related, including flows, flow runs, etc., so we add the label to
@@ -101,7 +109,7 @@ async def emit_lineage_event(
101
109
  emit_kwargs: Dict[str, Any] = {
102
110
  "event": event_name,
103
111
  "resource": resource,
104
- "related": upstream_resources,
112
+ "related": upstream_resources + tag_resources,
105
113
  }
106
114
 
107
115
  emit_event(**emit_kwargs)
@@ -110,7 +118,7 @@ async def emit_lineage_event(
110
118
  async def emit_result_read_event(
111
119
  store: "ResultStore",
112
120
  result_key: str,
113
- downstream_resources: Optional[DownstreamResources] = None,
121
+ downstream_resources: Optional[LineageResources] = None,
114
122
  cached: bool = False,
115
123
  ) -> None:
116
124
  """
@@ -150,7 +158,7 @@ async def emit_result_read_event(
150
158
  async def emit_result_write_event(
151
159
  store: "ResultStore",
152
160
  result_key: str,
153
- upstream_resources: Optional[UpstreamResources] = None,
161
+ upstream_resources: Optional[LineageResources] = None,
154
162
  ) -> None:
155
163
  """
156
164
  Emit a lineage event showing a task or flow result was written.
@@ -178,3 +186,76 @@ async def emit_result_write_event(
178
186
  downstream_resources=downstream_resources,
179
187
  direction_of_run_from_event="upstream",
180
188
  )
189
+
190
+
191
+ async def emit_external_resource_lineage(
192
+ event_name: str = "prefect.lineage.event",
193
+ upstream_resources: Optional[LineageResources] = None,
194
+ downstream_resources: Optional[LineageResources] = None,
195
+ context_resources: Optional[LineageResources] = None,
196
+ ) -> None:
197
+ """Emit lineage events connecting external resources to Prefect context resources.
198
+
199
+ This function emits events that place the current Prefect context resources
200
+ (like flow runs, task runs) as:
201
+ 1. Downstream of any provided upstream external resources
202
+ 2. Upstream of any provided downstream external resources
203
+
204
+ Args:
205
+ upstream_resources: Optional sequence of resources that are upstream of the
206
+ current Prefect context
207
+ downstream_resources: Optional sequence of resources that are downstream of
208
+ the current Prefect context
209
+ """
210
+ from prefect.client.orchestration import get_client
211
+
212
+ if not get_current_settings().experiments.lineage_events_enabled:
213
+ return
214
+
215
+ upstream_resources = list(upstream_resources) if upstream_resources else []
216
+ downstream_resources = list(downstream_resources) if downstream_resources else []
217
+
218
+ # Get the current Prefect context resources (flow runs, task runs, etc.)
219
+ if not context_resources:
220
+ async with get_client() as client:
221
+ context_resources = await related_resources_from_run_context(client)
222
+
223
+ tag_resources = [
224
+ res for res in context_resources if res.get("prefect.resource.role") == "tag"
225
+ ]
226
+ context_resources = [
227
+ res for res in context_resources if res.get("prefect.resource.role") != "tag"
228
+ ]
229
+
230
+ # Add lineage group label to all resources
231
+ for res in upstream_resources + downstream_resources + context_resources:
232
+ if "prefect.resource.lineage-group" not in res:
233
+ res["prefect.resource.lineage-group"] = "global"
234
+
235
+ # For each context resource, emit an event showing it as downstream of upstream resources
236
+ if upstream_resources:
237
+ for context_resource in context_resources:
238
+ emit_kwargs: Dict[str, Any] = {
239
+ "event": "prefect.lineage.upstream-interaction",
240
+ "resource": context_resource,
241
+ "related": upstream_resources + tag_resources,
242
+ }
243
+ emit_event(**emit_kwargs)
244
+
245
+ # For each downstream resource, emit an event showing it as downstream of context resources
246
+ for downstream_resource in downstream_resources:
247
+ emit_kwargs: Dict[str, Any] = {
248
+ "event": "prefect.lineage.downstream-interaction",
249
+ "resource": downstream_resource,
250
+ "related": context_resources + tag_resources,
251
+ }
252
+ emit_event(**emit_kwargs)
253
+
254
+ # For each downstream resource, emit an event showing it as downstream of upstream resources
255
+ if upstream_resources:
256
+ direct_emit_kwargs = {
257
+ "event": event_name,
258
+ "resource": downstream_resource,
259
+ "related": upstream_resources + tag_resources,
260
+ }
261
+ emit_event(**direct_emit_kwargs)
@@ -65,7 +65,7 @@ class _QueueServiceBase(abc.ABC, Generic[T]):
65
65
  # failure to process items. This is particularly relevant for services
66
66
  # which use an httpx client. See related issue at
67
67
  # https://github.com/python/cpython/issues/86813
68
- threading._register_atexit(self._at_exit) # pyright: ignore[reportUnknownVariableType, reportAttributeAccessIssue]
68
+ threading._register_atexit(self._at_exit) # pyright: ignore[reportUnknownMemberType, reportAttributeAccessIssue]
69
69
 
70
70
  def _at_exit(self) -> None:
71
71
  self.drain(at_exit=True)
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2025-01-17T08:46:53-0800",
11
+ "date": "2025-01-30T11:31:29-0800",
12
12
  "dirty": true,
13
13
  "error": null,
14
- "full-revisionid": "16e85ce3c281778f5ab6487a73377eed63bcac8b",
15
- "version": "3.1.13"
14
+ "full-revisionid": "3ac3d54885a6157989efd79cbfc0d681b4bb7e0c",
15
+ "version": "3.1.15"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18