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.
- {prefect-client-2.19.5/src/prefect_client.egg-info → prefect-client-2.19.6}/PKG-INFO +1 -1
- {prefect-client-2.19.5 → prefect-client-2.19.6}/requirements.txt +1 -1
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/concurrency/asyncio.py +14 -4
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/concurrency/services.py +29 -22
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/concurrency/sync.py +3 -5
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/flows.py +7 -4
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runner/storage.py +79 -6
- {prefect-client-2.19.5 → prefect-client-2.19.6/src/prefect_client.egg-info}/PKG-INFO +1 -1
- {prefect-client-2.19.5 → prefect-client-2.19.6}/LICENSE +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/MANIFEST.in +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/README.md +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/requirements-client.txt +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/requirements-dev.txt +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/setup.cfg +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/setup.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/.prefectignore +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/_logging.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/compatibility/experimental.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/services.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/threads.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/_base_model.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/_compat.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/_flags.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/_types.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/annotations/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/annotations/pendulum.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/config_dict.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/field_validator.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_construct.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_copy.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_dump.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_dump_json.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_fields.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_fields_set.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_json_schema.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_rebuild.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_validate.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_validate_json.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/model_validator.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/type_adapter.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pytz.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/schemas/validators.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/applications.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/background.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/concurrency.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/datastructures.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/dependencies/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/dependencies/models.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/dependencies/utils.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/encoders.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/exception_handlers.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/exceptions.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/logger.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/middleware/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/middleware/asyncexitstack.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/middleware/cors.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/middleware/gzip.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/middleware/httpsredirect.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/middleware/trustedhost.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/middleware/wsgi.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/openapi/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/openapi/constants.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/openapi/docs.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/openapi/models.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/openapi/utils.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/param_functions.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/params.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/requests.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/responses.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/routing.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/api_key.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/base.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/http.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/oauth2.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/open_id_connect_url.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/utils.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/staticfiles.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/templating.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/testclient.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/types.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/utils.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/websockets.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/_compat.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/_exception_handler.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/_utils.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/applications.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/authentication.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/background.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/concurrency.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/config.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/convertors.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/datastructures.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/endpoints.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/exceptions.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/formparsers.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/authentication.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/base.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/cors.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/errors.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/exceptions.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/gzip.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/httpsredirect.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/sessions.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/trustedhost.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/wsgi.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/requests.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/responses.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/routing.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/schemas.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/staticfiles.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/status.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/templating.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/testclient.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/types.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/websockets.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_version.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/agent.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/artifacts.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/automations.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/blocks/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/blocks/abstract.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/blocks/core.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/blocks/fields.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/blocks/kubernetes.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/blocks/notifications.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/blocks/system.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/blocks/webhook.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/base.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/cloud.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/collections.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/constants.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/orchestration.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/schemas/actions.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/schemas/filters.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/schemas/objects.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/schemas/responses.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/subscriptions.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/client/utilities.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/concurrency/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/concurrency/events.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/context.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deployments/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deployments/base.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deployments/deployments.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deployments/runner.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deployments/schedules.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deployments/steps/core.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deprecated/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deprecated/data_documents.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deprecated/packaging/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deprecated/packaging/base.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deprecated/packaging/docker.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deprecated/packaging/file.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deprecated/packaging/orion.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/deprecated/packaging/serializers.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/engine.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/actions.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/cli/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/cli/automations.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/clients.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/filters.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/instrument.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/related.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/schemas/automations.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/schemas/events.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/utilities.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/events/worker.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/exceptions.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/filesystems.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/flow_runs.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/futures.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/base.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/container.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/kubernetes.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/process.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/input/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/input/actions.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/input/run_input.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/logging/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/logging/configuration.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/logging/filters.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/logging/formatters.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/logging/handlers.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/logging/highlighters.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/logging/loggers.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/logging/logging.yml +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/manifests.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/new_flow_engine.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/new_task_engine.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/plugins.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/profiles.toml +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/py.typed +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/pydantic/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/pydantic/main.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/results.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runner/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runner/runner.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runner/server.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runner/submit.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runner/utils.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runtime/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runtime/deployment.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runtime/flow_run.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/runtime/task_run.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/serializers.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/settings.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/software/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/software/base.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/software/conda.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/software/pip.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/software/python.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/states.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/task_engine.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/task_runners.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/task_server.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/tasks.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/types/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/annotations.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/asyncutils.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/callables.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/collections.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/compat.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/context.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/dispatch.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/engine.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/filesystem.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/hashing.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/importtools.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/math.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/names.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/processutils.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/pydantic.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/services.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/slugify.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/templating.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/text.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/timeout.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/utilities/visualization.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/variables.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/workers/__init__.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/workers/base.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/workers/block.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/workers/process.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/workers/server.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/workers/utilities.py +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect_client.egg-info/SOURCES.txt +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect_client.egg-info/dependency_links.txt +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect_client.egg-info/requires.txt +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect_client.egg-info/top_level.txt +0 -0
- {prefect-client-2.19.5 → prefect-client-2.19.6}/versioneer.py +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
|
-
|
62
|
-
|
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(
|
31
|
-
|
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(
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
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
|
-
|
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
|
-
|
61
|
-
|
62
|
-
|
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
|
-
|
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 =
|
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
|
925
|
-
|
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
|
-
|
568
|
-
|
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
|
-
|
583
|
-
|
584
|
-
|
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
|
-
|
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:
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/compatibility/__init__.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/compatibility/deprecated.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/compatibility/experimental.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/cancellation.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/event_loop.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/inspection.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/primitives.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/services.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/threads.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/concurrency/waiters.py
RENAMED
File without changes
|
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/_base_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/utilities/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/pydantic/v2_validated_func.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_internal/schemas/serializers.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/datastructures.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/dependencies/__init__.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/dependencies/models.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/dependencies/utils.py
RENAMED
File without changes
|
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/exception_handlers.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/middleware/__init__.py
RENAMED
File without changes
|
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/middleware/cors.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/middleware/gzip.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/middleware/wsgi.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/openapi/__init__.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/openapi/constants.py
RENAMED
File without changes
|
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/openapi/models.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/openapi/utils.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/param_functions.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/__init__.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/api_key.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/base.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/http.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/oauth2.py
RENAMED
File without changes
|
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/fastapi/security/utils.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/_exception_handler.py
RENAMED
File without changes
|
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/applications.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/authentication.py
RENAMED
File without changes
|
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/concurrency.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/datastructures.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/formparsers.py
RENAMED
File without changes
|
{prefect-client-2.19.5 → prefect-client-2.19.6}/src/prefect/_vendor/starlette/middleware/__init__.py
RENAMED
File without changes
|