prefect-client 2.19.5__tar.gz → 2.19.6__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 (302) hide show
  1. {prefect-client-2.19.5/src/prefect_client.egg-info → prefect-client-2.19.6}/PKG-INFO +1 -1
  2. {prefect-client-2.19.5 → prefect-client-2.19.6}/requirements.txt +1 -1
  3. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/concurrency/asyncio.py +14 -4
  4. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/concurrency/services.py +29 -22
  5. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/concurrency/sync.py +3 -5
  6. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/flows.py +7 -4
  7. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runner/storage.py +79 -6
  8. {prefect-client-2.19.5 → prefect-client-2.19.6/src/prefect_client.egg-info}/PKG-INFO +1 -1
  9. {prefect-client-2.19.5 → prefect-client-2.19.6}/LICENSE +0 -0
  10. {prefect-client-2.19.5 → prefect-client-2.19.6}/MANIFEST.in +0 -0
  11. {prefect-client-2.19.5 → prefect-client-2.19.6}/README.md +0 -0
  12. {prefect-client-2.19.5 → prefect-client-2.19.6}/requirements-client.txt +0 -0
  13. {prefect-client-2.19.5 → prefect-client-2.19.6}/requirements-dev.txt +0 -0
  14. {prefect-client-2.19.5 → prefect-client-2.19.6}/setup.cfg +0 -0
  15. {prefect-client-2.19.5 → prefect-client-2.19.6}/setup.py +0 -0
  16. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/.prefectignore +0 -0
  17. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/__init__.py +0 -0
  18. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/__init__.py +0 -0
  19. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/_logging.py +0 -0
  20. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/compatibility/__init__.py +0 -0
  21. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  22. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/compatibility/experimental.py +0 -0
  23. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/__init__.py +0 -0
  24. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/api.py +0 -0
  25. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/calls.py +0 -0
  26. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  27. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  28. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/inspection.py +0 -0
  29. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/primitives.py +0 -0
  30. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/services.py +0 -0
  31. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/threads.py +0 -0
  32. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/waiters.py +0 -0
  33. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/__init__.py +0 -0
  34. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/_base_model.py +0 -0
  35. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/_compat.py +0 -0
  36. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/_flags.py +0 -0
  37. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/_types.py +0 -0
  38. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/annotations/__init__.py +0 -0
  39. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/annotations/pendulum.py +0 -0
  40. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/schemas.py +0 -0
  41. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/__init__.py +0 -0
  42. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/config_dict.py +0 -0
  43. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/field_validator.py +0 -0
  44. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_construct.py +0 -0
  45. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_copy.py +0 -0
  46. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_dump.py +0 -0
  47. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_dump_json.py +0 -0
  48. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_fields.py +0 -0
  49. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_fields_set.py +0 -0
  50. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_json_schema.py +0 -0
  51. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_rebuild.py +0 -0
  52. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_validate.py +0 -0
  53. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_validate_json.py +0 -0
  54. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_validator.py +0 -0
  55. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/type_adapter.py +0 -0
  56. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  57. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  58. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
  59. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pytz.py +0 -0
  60. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/schemas/__init__.py +0 -0
  61. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/schemas/bases.py +0 -0
  62. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/schemas/fields.py +0 -0
  63. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/schemas/serializers.py +0 -0
  64. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/schemas/validators.py +0 -0
  65. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/__init__.py +0 -0
  66. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/__init__.py +0 -0
  67. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/applications.py +0 -0
  68. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/background.py +0 -0
  69. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/concurrency.py +0 -0
  70. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/datastructures.py +0 -0
  71. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/dependencies/__init__.py +0 -0
  72. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/dependencies/models.py +0 -0
  73. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/dependencies/utils.py +0 -0
  74. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/encoders.py +0 -0
  75. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/exception_handlers.py +0 -0
  76. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/exceptions.py +0 -0
  77. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/logger.py +0 -0
  78. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/middleware/__init__.py +0 -0
  79. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/middleware/asyncexitstack.py +0 -0
  80. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/middleware/cors.py +0 -0
  81. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/middleware/gzip.py +0 -0
  82. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/middleware/httpsredirect.py +0 -0
  83. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/middleware/trustedhost.py +0 -0
  84. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/middleware/wsgi.py +0 -0
  85. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/openapi/__init__.py +0 -0
  86. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/openapi/constants.py +0 -0
  87. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/openapi/docs.py +0 -0
  88. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/openapi/models.py +0 -0
  89. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/openapi/utils.py +0 -0
  90. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/param_functions.py +0 -0
  91. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/params.py +0 -0
  92. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/requests.py +0 -0
  93. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/responses.py +0 -0
  94. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/routing.py +0 -0
  95. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/__init__.py +0 -0
  96. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/api_key.py +0 -0
  97. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/base.py +0 -0
  98. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/http.py +0 -0
  99. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/oauth2.py +0 -0
  100. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/open_id_connect_url.py +0 -0
  101. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/utils.py +0 -0
  102. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/staticfiles.py +0 -0
  103. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/templating.py +0 -0
  104. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/testclient.py +0 -0
  105. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/types.py +0 -0
  106. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/utils.py +0 -0
  107. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/websockets.py +0 -0
  108. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/__init__.py +0 -0
  109. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/_compat.py +0 -0
  110. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/_exception_handler.py +0 -0
  111. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/_utils.py +0 -0
  112. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/applications.py +0 -0
  113. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/authentication.py +0 -0
  114. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/background.py +0 -0
  115. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/concurrency.py +0 -0
  116. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/config.py +0 -0
  117. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/convertors.py +0 -0
  118. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/datastructures.py +0 -0
  119. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/endpoints.py +0 -0
  120. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/exceptions.py +0 -0
  121. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/formparsers.py +0 -0
  122. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/__init__.py +0 -0
  123. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/authentication.py +0 -0
  124. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/base.py +0 -0
  125. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/cors.py +0 -0
  126. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/errors.py +0 -0
  127. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/exceptions.py +0 -0
  128. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/gzip.py +0 -0
  129. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/httpsredirect.py +0 -0
  130. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/sessions.py +0 -0
  131. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/trustedhost.py +0 -0
  132. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/wsgi.py +0 -0
  133. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/requests.py +0 -0
  134. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/responses.py +0 -0
  135. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/routing.py +0 -0
  136. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/schemas.py +0 -0
  137. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/staticfiles.py +0 -0
  138. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/status.py +0 -0
  139. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/templating.py +0 -0
  140. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/testclient.py +0 -0
  141. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/types.py +0 -0
  142. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/websockets.py +0 -0
  143. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_version.py +0 -0
  144. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/agent.py +0 -0
  145. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/artifacts.py +0 -0
  146. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/automations.py +0 -0
  147. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/blocks/__init__.py +0 -0
  148. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/blocks/abstract.py +0 -0
  149. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/blocks/core.py +0 -0
  150. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/blocks/fields.py +0 -0
  151. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/blocks/kubernetes.py +0 -0
  152. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/blocks/notifications.py +0 -0
  153. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/blocks/system.py +0 -0
  154. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/blocks/webhook.py +0 -0
  155. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/__init__.py +0 -0
  156. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/base.py +0 -0
  157. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/cloud.py +0 -0
  158. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/collections.py +0 -0
  159. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/constants.py +0 -0
  160. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/orchestration.py +0 -0
  161. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/schemas/__init__.py +0 -0
  162. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/schemas/actions.py +0 -0
  163. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/schemas/filters.py +0 -0
  164. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/schemas/objects.py +0 -0
  165. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/schemas/responses.py +0 -0
  166. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/schemas/schedules.py +0 -0
  167. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/schemas/sorting.py +0 -0
  168. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/subscriptions.py +0 -0
  169. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/utilities.py +0 -0
  170. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/concurrency/__init__.py +0 -0
  171. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/concurrency/events.py +0 -0
  172. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/context.py +0 -0
  173. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deployments/__init__.py +0 -0
  174. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deployments/base.py +0 -0
  175. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deployments/deployments.py +0 -0
  176. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deployments/runner.py +0 -0
  177. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deployments/schedules.py +0 -0
  178. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deployments/steps/__init__.py +0 -0
  179. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deployments/steps/core.py +0 -0
  180. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deployments/steps/pull.py +0 -0
  181. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deployments/steps/utility.py +0 -0
  182. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deprecated/__init__.py +0 -0
  183. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deprecated/data_documents.py +0 -0
  184. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deprecated/packaging/__init__.py +0 -0
  185. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deprecated/packaging/base.py +0 -0
  186. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deprecated/packaging/docker.py +0 -0
  187. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deprecated/packaging/file.py +0 -0
  188. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deprecated/packaging/orion.py +0 -0
  189. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deprecated/packaging/serializers.py +0 -0
  190. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/engine.py +0 -0
  191. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/__init__.py +0 -0
  192. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/actions.py +0 -0
  193. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/cli/__init__.py +0 -0
  194. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/cli/automations.py +0 -0
  195. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/clients.py +0 -0
  196. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/filters.py +0 -0
  197. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/instrument.py +0 -0
  198. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/related.py +0 -0
  199. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/schemas/__init__.py +0 -0
  200. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/schemas/automations.py +0 -0
  201. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  202. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/schemas/events.py +0 -0
  203. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/schemas/labelling.py +0 -0
  204. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/utilities.py +0 -0
  205. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/worker.py +0 -0
  206. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/exceptions.py +0 -0
  207. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/filesystems.py +0 -0
  208. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/flow_runs.py +0 -0
  209. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/futures.py +0 -0
  210. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/__init__.py +0 -0
  211. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/base.py +0 -0
  212. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/container.py +0 -0
  213. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/kubernetes.py +0 -0
  214. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/process.py +0 -0
  215. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  216. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  217. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  218. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  219. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  220. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/input/__init__.py +0 -0
  221. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/input/actions.py +0 -0
  222. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/input/run_input.py +0 -0
  223. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/logging/__init__.py +0 -0
  224. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/logging/configuration.py +0 -0
  225. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/logging/filters.py +0 -0
  226. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/logging/formatters.py +0 -0
  227. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/logging/handlers.py +0 -0
  228. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/logging/highlighters.py +0 -0
  229. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/logging/loggers.py +0 -0
  230. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/logging/logging.yml +0 -0
  231. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/manifests.py +0 -0
  232. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/new_flow_engine.py +0 -0
  233. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/new_task_engine.py +0 -0
  234. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/plugins.py +0 -0
  235. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/profiles.toml +0 -0
  236. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/py.typed +0 -0
  237. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/pydantic/__init__.py +0 -0
  238. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/pydantic/main.py +0 -0
  239. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/results.py +0 -0
  240. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runner/__init__.py +0 -0
  241. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runner/runner.py +0 -0
  242. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runner/server.py +0 -0
  243. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runner/submit.py +0 -0
  244. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runner/utils.py +0 -0
  245. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runtime/__init__.py +0 -0
  246. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runtime/deployment.py +0 -0
  247. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runtime/flow_run.py +0 -0
  248. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runtime/task_run.py +0 -0
  249. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/serializers.py +0 -0
  250. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  251. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  252. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/settings.py +0 -0
  253. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/software/__init__.py +0 -0
  254. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/software/base.py +0 -0
  255. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/software/conda.py +0 -0
  256. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/software/pip.py +0 -0
  257. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/software/python.py +0 -0
  258. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/states.py +0 -0
  259. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/task_engine.py +0 -0
  260. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/task_runners.py +0 -0
  261. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/task_server.py +0 -0
  262. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/tasks.py +0 -0
  263. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/types/__init__.py +0 -0
  264. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/__init__.py +0 -0
  265. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/annotations.py +0 -0
  266. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/asyncutils.py +0 -0
  267. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/callables.py +0 -0
  268. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/collections.py +0 -0
  269. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/compat.py +0 -0
  270. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/context.py +0 -0
  271. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/dispatch.py +0 -0
  272. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/dockerutils.py +0 -0
  273. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/engine.py +0 -0
  274. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/filesystem.py +0 -0
  275. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/hashing.py +0 -0
  276. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/importtools.py +0 -0
  277. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/math.py +0 -0
  278. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/names.py +0 -0
  279. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/processutils.py +0 -0
  280. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/pydantic.py +0 -0
  281. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/render_swagger.py +0 -0
  282. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  283. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  284. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/schema_tools/validation.py +0 -0
  285. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/services.py +0 -0
  286. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/slugify.py +0 -0
  287. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/templating.py +0 -0
  288. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/text.py +0 -0
  289. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/timeout.py +0 -0
  290. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/visualization.py +0 -0
  291. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/variables.py +0 -0
  292. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/workers/__init__.py +0 -0
  293. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/workers/base.py +0 -0
  294. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/workers/block.py +0 -0
  295. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/workers/process.py +0 -0
  296. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/workers/server.py +0 -0
  297. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/workers/utilities.py +0 -0
  298. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect_client.egg-info/SOURCES.txt +0 -0
  299. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect_client.egg-info/dependency_links.txt +0 -0
  300. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect_client.egg-info/requires.txt +0 -0
  301. {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect_client.egg-info/top_level.txt +0 -0
  302. {prefect-client-2.19.5 → prefect-client-2.19.6}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: prefect-client
3
- Version: 2.19.5
3
+ Version: 2.19.6
4
4
  Summary: Workflow orchestration and management.
5
5
  Home-page: https://www.prefect.io
6
6
  Author: Prefect Technologies, Inc.
@@ -7,7 +7,7 @@ asyncpg >= 0.23
7
7
  click >= 8.0, < 8.2
8
8
  cryptography >= 36.0.1
9
9
  dateparser >= 1.1.1, < 2.0.0
10
- docker >= 4.0, < 7.0
10
+ docker >= 4.0
11
11
  graphviz >= 0.20.1
12
12
  griffe >= 0.20.0
13
13
  jinja2 >= 3.0.0, < 4.0.0
@@ -13,7 +13,6 @@ except ImportError:
13
13
 
14
14
  from prefect import get_client
15
15
  from prefect.client.schemas.responses import MinimalConcurrencyLimitResponse
16
- from prefect.utilities.timeout import timeout_async
17
16
 
18
17
  from .events import (
19
18
  _emit_concurrency_acquisition_events,
@@ -26,6 +25,10 @@ class ConcurrencySlotAcquisitionError(Exception):
26
25
  """Raised when an unhandlable occurs while acquiring concurrency slots."""
27
26
 
28
27
 
28
+ class AcquireConcurrencySlotTimeoutError(TimeoutError):
29
+ """Raised when acquiring a concurrency slot times out."""
30
+
31
+
29
32
  @asynccontextmanager
30
33
  async def concurrency(
31
34
  names: Union[str, List[str]],
@@ -58,8 +61,9 @@ async def concurrency(
58
61
  ```
59
62
  """
60
63
  names = names if isinstance(names, list) else [names]
61
- with timeout_async(seconds=timeout_seconds):
62
- limits = await _acquire_concurrency_slots(names, occupy)
64
+ limits = await _acquire_concurrency_slots(
65
+ names, occupy, timeout_seconds=timeout_seconds
66
+ )
63
67
  acquisition_time = pendulum.now("UTC")
64
68
  emitted_events = _emit_concurrency_acquisition_events(limits, occupy)
65
69
 
@@ -91,12 +95,18 @@ async def _acquire_concurrency_slots(
91
95
  names: List[str],
92
96
  slots: int,
93
97
  mode: Union[Literal["concurrency"], Literal["rate_limit"]] = "concurrency",
98
+ timeout_seconds: Optional[float] = None,
94
99
  ) -> List[MinimalConcurrencyLimitResponse]:
95
100
  service = ConcurrencySlotAcquisitionService.instance(frozenset(names))
96
- future = service.send((slots, mode))
101
+ future = service.send((slots, mode, timeout_seconds))
97
102
  response_or_exception = await asyncio.wrap_future(future)
98
103
 
99
104
  if isinstance(response_or_exception, Exception):
105
+ if isinstance(response_or_exception, TimeoutError):
106
+ raise AcquireConcurrencySlotTimeoutError(
107
+ f"Attempt to acquire concurrency slots timed out after {timeout_seconds} second(s)"
108
+ ) from response_or_exception
109
+
100
110
  raise ConcurrencySlotAcquisitionError(
101
111
  f"Unable to acquire concurrency slots on {names!r}"
102
112
  ) from response_or_exception
@@ -3,6 +3,7 @@ import concurrent.futures
3
3
  from contextlib import asynccontextmanager
4
4
  from typing import (
5
5
  FrozenSet,
6
+ Optional,
6
7
  Tuple,
7
8
  )
8
9
 
@@ -13,6 +14,7 @@ from prefect import get_client
13
14
  from prefect._internal.concurrency import logger
14
15
  from prefect._internal.concurrency.services import QueueService
15
16
  from prefect.client.orchestration import PrefectClient
17
+ from prefect.utilities.timeout import timeout_async
16
18
 
17
19
 
18
20
  class ConcurrencySlotAcquisitionService(QueueService):
@@ -27,10 +29,12 @@ class ConcurrencySlotAcquisitionService(QueueService):
27
29
  self._client = client
28
30
  yield
29
31
 
30
- async def _handle(self, item: Tuple[int, str, concurrent.futures.Future]):
31
- occupy, mode, future = item
32
+ async def _handle(
33
+ self, item: Tuple[int, str, Optional[float], concurrent.futures.Future]
34
+ ):
35
+ occupy, mode, timeout_seconds, future = item
32
36
  try:
33
- response = await self.acquire_slots(occupy, mode)
37
+ response = await self.acquire_slots(occupy, mode, timeout_seconds)
34
38
  except Exception as exc:
35
39
  # If the request to the increment endpoint fails in a non-standard
36
40
  # way, we need to set the future's result so that the caller can
@@ -40,25 +44,28 @@ class ConcurrencySlotAcquisitionService(QueueService):
40
44
  else:
41
45
  future.set_result(response)
42
46
 
43
- async def acquire_slots(self, slots: int, mode: str) -> httpx.Response:
44
- while True:
45
- try:
46
- response = await self._client.increment_concurrency_slots(
47
- names=self.concurrency_limit_names, slots=slots, mode=mode
48
- )
49
- except Exception as exc:
50
- if (
51
- isinstance(exc, httpx.HTTPStatusError)
52
- and exc.response.status_code == status.HTTP_423_LOCKED
53
- ):
54
- retry_after = float(exc.response.headers["Retry-After"])
55
- await asyncio.sleep(retry_after)
47
+ async def acquire_slots(
48
+ self, slots: int, mode: str, timeout_seconds: Optional[float] = None
49
+ ):
50
+ with timeout_async(timeout_seconds):
51
+ while True:
52
+ try:
53
+ response = await self._client.increment_concurrency_slots(
54
+ names=self.concurrency_limit_names, slots=slots, mode=mode
55
+ )
56
+ except Exception as exc:
57
+ if (
58
+ isinstance(exc, httpx.HTTPStatusError)
59
+ and exc.response.status_code == status.HTTP_423_LOCKED
60
+ ):
61
+ retry_after = float(exc.response.headers["Retry-After"])
62
+ await asyncio.sleep(retry_after)
63
+ else:
64
+ raise exc
56
65
  else:
57
- raise exc
58
- else:
59
- return response
66
+ return response
60
67
 
61
- def send(self, item: Tuple[int, str]):
68
+ def send(self, item: Tuple[int, str, Optional[float]]) -> concurrent.futures.Future:
62
69
  with self._lock:
63
70
  if self._stopped:
64
71
  raise RuntimeError("Cannot put items in a stopped service instance.")
@@ -66,7 +73,7 @@ class ConcurrencySlotAcquisitionService(QueueService):
66
73
  logger.debug("Service %r enqueuing item %r", self, item)
67
74
  future: concurrent.futures.Future = concurrent.futures.Future()
68
75
 
69
- occupy, mode = item
70
- self._queue.put_nowait((occupy, mode, future))
76
+ occupy, mode, timeout_seconds = item
77
+ self._queue.put_nowait((occupy, mode, timeout_seconds, future))
71
78
 
72
79
  return future
@@ -12,7 +12,6 @@ except ImportError:
12
12
  from prefect._internal.concurrency.api import create_call, from_sync
13
13
  from prefect._internal.concurrency.event_loop import get_running_loop
14
14
  from prefect.client.schemas.responses import MinimalConcurrencyLimitResponse
15
- from prefect.utilities.timeout import timeout
16
15
 
17
16
  from .asyncio import (
18
17
  _acquire_concurrency_slots,
@@ -57,10 +56,9 @@ def concurrency(
57
56
  """
58
57
  names = names if isinstance(names, list) else [names]
59
58
 
60
- with timeout(seconds=timeout_seconds):
61
- limits: List[MinimalConcurrencyLimitResponse] = _call_async_function_from_sync(
62
- _acquire_concurrency_slots, names, occupy
63
- )
59
+ limits: List[MinimalConcurrencyLimitResponse] = _call_async_function_from_sync(
60
+ _acquire_concurrency_slots, names, occupy, timeout_seconds=timeout_seconds
61
+ )
64
62
  acquisition_time = pendulum.now("UTC")
65
63
  emitted_events = _emit_concurrency_acquisition_events(limits, occupy)
66
64
 
@@ -83,8 +83,9 @@ from prefect.logging import get_logger
83
83
  from prefect.results import ResultSerializer, ResultStorage
84
84
  from prefect.runner.storage import (
85
85
  BlockStorageAdapter,
86
+ LocalStorage,
86
87
  RunnerStorage,
87
- create_storage_from_url,
88
+ create_storage_from_source,
88
89
  )
89
90
  from prefect.settings import (
90
91
  PREFECT_DEFAULT_WORK_POOL_NAME,
@@ -910,7 +911,7 @@ class Flow(Generic[P, R]):
910
911
  ```
911
912
  """
912
913
  if isinstance(source, str):
913
- storage = create_storage_from_url(source)
914
+ storage = create_storage_from_source(source)
914
915
  elif isinstance(source, RunnerStorage):
915
916
  storage = source
916
917
  elif hasattr(source, "get_directory"):
@@ -920,9 +921,11 @@ class Flow(Generic[P, R]):
920
921
  f"Unsupported source type {type(source).__name__!r}. Please provide a"
921
922
  " URL to remote storage or a storage object."
922
923
  )
924
+
923
925
  with tempfile.TemporaryDirectory() as tmpdir:
924
- storage.set_base_path(Path(tmpdir))
925
- await storage.pull_code()
926
+ if not isinstance(storage, LocalStorage):
927
+ storage.set_base_path(Path(tmpdir))
928
+ await storage.pull_code()
926
929
 
927
930
  full_entrypoint = str(storage.destination / entrypoint)
928
931
  flow: "Flow" = await from_async.wait_for_call_in_new_thread(
@@ -564,8 +564,74 @@ class BlockStorageAdapter:
564
564
  return False
565
565
 
566
566
 
567
- def create_storage_from_url(
568
- url: str, pull_interval: Optional[int] = 60
567
+ class LocalStorage:
568
+ """
569
+ Sets the working directory in the local filesystem.
570
+
571
+ Parameters:
572
+ Path: Local file path to set the working directory for the flow
573
+
574
+ Examples:
575
+ Sets the working directory for the local path to the flow:
576
+
577
+ ```python
578
+ from prefect.runner.storage import Localstorage
579
+
580
+ storage = LocalStorage(
581
+ path="/path/to/local/flow_directory",
582
+ )
583
+ ```
584
+ """
585
+
586
+ def __init__(
587
+ self,
588
+ path: str,
589
+ pull_interval: Optional[int] = None,
590
+ ):
591
+ self._path = Path(path).resolve()
592
+ self._logger = get_logger("runner.storage.local-storage")
593
+ self._storage_base_path = Path.cwd()
594
+ self._pull_interval = pull_interval
595
+
596
+ @property
597
+ def destination(self) -> Path:
598
+ return self._path
599
+
600
+ def set_base_path(self, path: Path):
601
+ self._storage_base_path = path
602
+
603
+ @property
604
+ def pull_interval(self) -> Optional[int]:
605
+ return self._pull_interval
606
+
607
+ async def pull_code(self):
608
+ # Local storage assumes the code already exists on the local filesystem
609
+ # and does not need to be pulled from a remote location
610
+ pass
611
+
612
+ def to_pull_step(self) -> dict:
613
+ """
614
+ Returns a dictionary representation of the storage object that can be
615
+ used as a deployment pull step.
616
+ """
617
+ step = {
618
+ "prefect.deployments.steps.set_working_directory": {
619
+ "directory": str(self.destination)
620
+ }
621
+ }
622
+ return step
623
+
624
+ def __eq__(self, __value) -> bool:
625
+ if isinstance(__value, LocalStorage):
626
+ return self._path == __value._path
627
+ return False
628
+
629
+ def __repr__(self) -> str:
630
+ return f"LocalStorage(path={self._path!r})"
631
+
632
+
633
+ def create_storage_from_source(
634
+ source: str, pull_interval: Optional[int] = 60
569
635
  ) -> RunnerStorage:
570
636
  """
571
637
  Creates a storage object from a URL.
@@ -579,11 +645,18 @@ def create_storage_from_url(
579
645
  Returns:
580
646
  RunnerStorage: A runner storage compatible object
581
647
  """
582
- parsed_url = urlparse(url)
583
- if parsed_url.scheme == "git" or parsed_url.path.endswith(".git"):
584
- return GitRepository(url=url, pull_interval=pull_interval)
648
+ logger = get_logger("runner.storage")
649
+ parsed_source = urlparse(source)
650
+ if parsed_source.scheme == "git" or parsed_source.path.endswith(".git"):
651
+ return GitRepository(url=source, pull_interval=pull_interval)
652
+ elif parsed_source.scheme in ("file", "local"):
653
+ source_path = source.split("://", 1)[-1]
654
+ return LocalStorage(path=source_path, pull_interval=pull_interval)
655
+ elif parsed_source.scheme in fsspec.available_protocols():
656
+ return RemoteStorage(url=source, pull_interval=pull_interval)
585
657
  else:
586
- return RemoteStorage(url=url, pull_interval=pull_interval)
658
+ logger.debug("No valid fsspec protocol found for URL, assuming local storage.")
659
+ return LocalStorage(path=source, pull_interval=pull_interval)
587
660
 
588
661
 
589
662
  def _format_token_from_credentials(netloc: str, credentials: dict) -> str:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: prefect-client
3
- Version: 2.19.5
3
+ Version: 2.19.6
4
4
  Summary: Workflow orchestration and management.
5
5
  Home-page: https://www.prefect.io
6
6
  Author: Prefect Technologies, Inc.
File without changes