prefect-client 2.20.5__tar.gz → 2.20.7__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.20.5/src/prefect_client.egg-info → prefect_client-2.20.7}/PKG-INFO +2 -2
- {prefect_client-2.20.5 → prefect_client-2.20.7}/requirements-client.txt +1 -1
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/engine.py +22 -1
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/logging/logging.yml +1 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/settings.py +6 -1
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/importtools.py +1 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/workers/base.py +6 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7/src/prefect_client.egg-info}/PKG-INFO +2 -2
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect_client.egg-info/requires.txt +1 -1
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_tasks.py +85 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/LICENSE +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/MANIFEST.in +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/README.md +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/requirements-dev.txt +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/requirements.txt +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/setup.cfg +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/setup.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/.prefectignore +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/_logging.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/compatibility/experimental.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/concurrency/services.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/concurrency/threads.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/integrations.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/_base_model.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/_compat.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/_flags.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/_types.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/annotations/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/annotations/pendulum.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/utilities/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/utilities/config_dict.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/utilities/field_validator.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/utilities/model_construct.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/utilities/model_copy.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/utilities/model_dump.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/utilities/model_dump_json.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/utilities/model_fields.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/utilities/model_fields_set.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/utilities/model_json_schema.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/utilities/model_rebuild.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/utilities/model_validate.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/utilities/model_validate_json.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/utilities/model_validator.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/utilities/type_adapter.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/pytz.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/schemas/validators.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/applications.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/background.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/concurrency.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/datastructures.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/dependencies/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/dependencies/models.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/dependencies/utils.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/encoders.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/exception_handlers.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/exceptions.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/logger.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/middleware/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/middleware/asyncexitstack.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/middleware/cors.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/middleware/gzip.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/middleware/httpsredirect.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/middleware/trustedhost.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/middleware/wsgi.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/openapi/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/openapi/constants.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/openapi/docs.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/openapi/models.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/openapi/utils.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/param_functions.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/params.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/py.typed +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/requests.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/responses.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/routing.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/security/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/security/api_key.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/security/base.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/security/http.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/security/oauth2.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/security/open_id_connect_url.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/security/utils.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/staticfiles.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/templating.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/testclient.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/types.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/utils.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/websockets.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/_compat.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/_exception_handler.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/_utils.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/applications.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/authentication.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/background.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/concurrency.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/config.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/convertors.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/datastructures.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/endpoints.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/exceptions.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/formparsers.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/middleware/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/middleware/authentication.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/middleware/base.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/middleware/cors.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/middleware/errors.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/middleware/exceptions.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/middleware/gzip.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/middleware/httpsredirect.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/middleware/sessions.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/middleware/trustedhost.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/middleware/wsgi.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/py.typed +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/requests.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/responses.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/routing.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/schemas.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/staticfiles.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/status.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/templating.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/testclient.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/types.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/websockets.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_version.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/agent.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/artifacts.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/automations.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/blocks/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/blocks/abstract.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/blocks/core.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/blocks/fields.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/blocks/kubernetes.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/blocks/notifications.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/blocks/system.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/blocks/webhook.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/client/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/client/base.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/client/cloud.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/client/collections.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/client/constants.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/client/orchestration.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/client/schemas/actions.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/client/schemas/filters.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/client/schemas/objects.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/client/schemas/responses.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/client/subscriptions.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/client/utilities.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/concurrency/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/concurrency/asyncio.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/concurrency/events.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/concurrency/services.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/concurrency/sync.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/context.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/deployments/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/deployments/base.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/deployments/deployments.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/deployments/runner.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/deployments/schedules.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/deployments/steps/core.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/deprecated/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/deprecated/data_documents.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/deprecated/packaging/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/deprecated/packaging/base.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/deprecated/packaging/docker.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/deprecated/packaging/file.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/deprecated/packaging/orion.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/deprecated/packaging/serializers.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/events/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/events/actions.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/events/cli/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/events/cli/automations.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/events/clients.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/events/filters.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/events/instrument.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/events/related.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/events/schemas/automations.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/events/schemas/events.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/events/utilities.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/events/worker.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/exceptions.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/filesystems.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/flow_runs.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/flows.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/futures.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/infrastructure/base.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/infrastructure/container.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/infrastructure/kubernetes.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/infrastructure/process.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/input/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/input/actions.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/input/run_input.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/logging/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/logging/configuration.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/logging/filters.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/logging/formatters.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/logging/handlers.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/logging/highlighters.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/logging/loggers.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/manifests.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/new_flow_engine.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/new_task_engine.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/plugins.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/profiles.toml +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/py.typed +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/pydantic/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/pydantic/main.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/results.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/runner/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/runner/runner.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/runner/server.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/runner/storage.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/runner/submit.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/runner/utils.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/runtime/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/runtime/deployment.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/runtime/flow_run.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/runtime/task_run.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/serializers.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/software/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/software/base.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/software/conda.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/software/pip.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/software/python.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/states.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/task_engine.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/task_runners.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/task_server.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/tasks.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/types/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/annotations.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/asyncutils.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/callables.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/collections.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/compat.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/context.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/dispatch.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/engine.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/filesystem.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/hashing.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/math.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/names.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/processutils.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/pydantic.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/services.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/slugify.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/templating.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/text.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/timeout.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/utilities/visualization.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/variables.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/workers/__init__.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/workers/block.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/workers/process.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/workers/server.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/workers/utilities.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect_client.egg-info/SOURCES.txt +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect_client.egg-info/dependency_links.txt +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect_client.egg-info/top_level.txt +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_artifacts.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_automations.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_background_tasks.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_context.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_deployments.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_engine.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_exceptions.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_filesystems.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_flow_runs.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_flows.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_flows_compat.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_futures.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_highlighters.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_import_interceptor.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_log_prints.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_logging.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_new_flow_engine.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_new_task_engine.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_plugins.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_serializers.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_settings.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_states.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_task_runners.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_task_server.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/tests/test_variables.py +0 -0
- {prefect_client-2.20.5 → prefect_client-2.20.7}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: prefect-client
|
3
|
-
Version: 2.20.
|
3
|
+
Version: 2.20.7
|
4
4
|
Summary: Workflow orchestration and management.
|
5
5
|
Home-page: https://www.prefect.io
|
6
6
|
Author: Prefect Technologies, Inc.
|
@@ -43,7 +43,7 @@ Requires-Dist: packaging<24.3,>=21.3
|
|
43
43
|
Requires-Dist: pathspec>=0.8.0
|
44
44
|
Requires-Dist: pendulum<3.0; python_version < "3.12"
|
45
45
|
Requires-Dist: pendulum<4,>=3.0.0; python_version >= "3.12"
|
46
|
-
Requires-Dist: pydantic[email]!=2.0.0,!=2.0.1,!=2.1.0,<
|
46
|
+
Requires-Dist: pydantic[email]!=2.0.0,!=2.0.1,!=2.1.0,<2.9.0,>=1.10.0
|
47
47
|
Requires-Dist: pydantic_core<3.0.0,>=2.12.0
|
48
48
|
Requires-Dist: python_dateutil<3.0.0,>=2.8.2
|
49
49
|
Requires-Dist: python-slugify<9.0,>=5.0
|
@@ -21,7 +21,7 @@ pathspec >= 0.8.0
|
|
21
21
|
pendulum < 3.0; python_version < '3.12'
|
22
22
|
pendulum >= 3.0.0, <4; python_version >= '3.12'
|
23
23
|
# the version constraints for pydantic are merged with those from fastapi 0.103.2
|
24
|
-
pydantic[email]>=1.10.0,!=2.0.0,!=2.0.1,!=2.1.0,<
|
24
|
+
pydantic[email]>=1.10.0,!=2.0.0,!=2.0.1,!=2.1.0,<2.9.0
|
25
25
|
pydantic_core >= 2.12.0, < 3.0.0
|
26
26
|
python_dateutil >= 2.8.2, < 3.0.0
|
27
27
|
python-slugify >= 5.0, < 9.0
|
@@ -167,6 +167,7 @@ from prefect.results import ResultFactory, UnknownResult
|
|
167
167
|
from prefect.settings import (
|
168
168
|
PREFECT_DEBUG_MODE,
|
169
169
|
PREFECT_EXPERIMENTAL_ENABLE_NEW_ENGINE,
|
170
|
+
PREFECT_RUN_ON_COMPLETION_HOOKS_ON_CACHED,
|
170
171
|
PREFECT_TASK_INTROSPECTION_WARN_THRESHOLD,
|
171
172
|
PREFECT_TASKS_REFRESH_CACHE,
|
172
173
|
PREFECT_UI_URL,
|
@@ -2117,6 +2118,19 @@ async def orchestrate_task_run(
|
|
2117
2118
|
# flag to ensure we only update the task run name once
|
2118
2119
|
run_name_set = False
|
2119
2120
|
|
2121
|
+
run_on_completion_hooks_on_cached = (
|
2122
|
+
PREFECT_RUN_ON_COMPLETION_HOOKS_ON_CACHED
|
2123
|
+
and state.is_completed()
|
2124
|
+
and state.name == "Cached"
|
2125
|
+
)
|
2126
|
+
|
2127
|
+
if run_on_completion_hooks_on_cached:
|
2128
|
+
await _run_task_hooks(
|
2129
|
+
task=task,
|
2130
|
+
task_run=task_run,
|
2131
|
+
state=state,
|
2132
|
+
)
|
2133
|
+
|
2120
2134
|
# Only run the task if we enter a `RUNNING` state
|
2121
2135
|
while state.is_running():
|
2122
2136
|
# Retrieve the latest metadata for the task run context
|
@@ -2326,9 +2340,16 @@ async def _run_task_hooks(task: Task, task_run: TaskRun, state: State) -> None:
|
|
2326
2340
|
catch and log any errors that occur.
|
2327
2341
|
"""
|
2328
2342
|
hooks = None
|
2343
|
+
run_on_completion_hooks_on_cached = (
|
2344
|
+
PREFECT_RUN_ON_COMPLETION_HOOKS_ON_CACHED
|
2345
|
+
and state.is_completed()
|
2346
|
+
and state.name == "Cached"
|
2347
|
+
)
|
2329
2348
|
if state.is_failed() and task.on_failure:
|
2330
2349
|
hooks = task.on_failure
|
2331
|
-
elif
|
2350
|
+
elif (
|
2351
|
+
state.is_completed() or run_on_completion_hooks_on_cached
|
2352
|
+
) and task.on_completion:
|
2332
2353
|
hooks = task.on_completion
|
2333
2354
|
|
2334
2355
|
if hooks:
|
@@ -649,7 +649,7 @@ PREFECT_API_KEY = Setting(
|
|
649
649
|
)
|
650
650
|
"""API key used to authenticate with a the Prefect API. Defaults to `None`."""
|
651
651
|
|
652
|
-
PREFECT_API_ENABLE_HTTP2 = Setting(bool, default=
|
652
|
+
PREFECT_API_ENABLE_HTTP2 = Setting(bool, default=False)
|
653
653
|
"""
|
654
654
|
If true, enable support for HTTP/2 for communicating with an API.
|
655
655
|
|
@@ -1759,6 +1759,11 @@ PREFECT_API_EVENTS_RELATED_RESOURCE_CACHE_TTL = Setting(
|
|
1759
1759
|
How long to cache related resource data for emitting server-side vents
|
1760
1760
|
"""
|
1761
1761
|
|
1762
|
+
PREFECT_RUN_ON_COMPLETION_HOOKS_ON_CACHED = Setting(bool, default=False)
|
1763
|
+
"""
|
1764
|
+
Whether or not to run on_completion hooks on cached task runs.
|
1765
|
+
"""
|
1766
|
+
|
1762
1767
|
|
1763
1768
|
def automation_settings_enabled() -> bool:
|
1764
1769
|
"""
|
@@ -399,6 +399,7 @@ def safe_load_namespace(
|
|
399
399
|
# Save original sys.path and modify it
|
400
400
|
original_sys_path = sys.path.copy()
|
401
401
|
sys.path.insert(0, parent_dir)
|
402
|
+
sys.path.insert(0, file_dir)
|
402
403
|
|
403
404
|
# Create a temporary module for import context
|
404
405
|
temp_module = ModuleType(package_name)
|
@@ -139,6 +139,12 @@ class BaseJobConfiguration(BaseModel):
|
|
139
139
|
)
|
140
140
|
variables.update(values)
|
141
141
|
|
142
|
+
# deep merge `env`
|
143
|
+
if isinstance(job_config.get("env"), dict) and (
|
144
|
+
hardcoded_env := variables.get("env")
|
145
|
+
):
|
146
|
+
job_config["env"] = {**hardcoded_env, **job_config.get("env", {})}
|
147
|
+
|
142
148
|
populated_configuration = apply_values(template=job_config, values=variables)
|
143
149
|
populated_configuration = await resolve_block_document_references(
|
144
150
|
template=populated_configuration, client=client
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: prefect-client
|
3
|
-
Version: 2.20.
|
3
|
+
Version: 2.20.7
|
4
4
|
Summary: Workflow orchestration and management.
|
5
5
|
Home-page: https://www.prefect.io
|
6
6
|
Author: Prefect Technologies, Inc.
|
@@ -43,7 +43,7 @@ Requires-Dist: packaging<24.3,>=21.3
|
|
43
43
|
Requires-Dist: pathspec>=0.8.0
|
44
44
|
Requires-Dist: pendulum<3.0; python_version < "3.12"
|
45
45
|
Requires-Dist: pendulum<4,>=3.0.0; python_version >= "3.12"
|
46
|
-
Requires-Dist: pydantic[email]!=2.0.0,!=2.0.1,!=2.1.0,<
|
46
|
+
Requires-Dist: pydantic[email]!=2.0.0,!=2.0.1,!=2.1.0,<2.9.0,>=1.10.0
|
47
47
|
Requires-Dist: pydantic_core<3.0.0,>=2.12.0
|
48
48
|
Requires-Dist: python_dateutil<3.0.0,>=2.8.2
|
49
49
|
Requires-Dist: python-slugify<9.0,>=5.0
|
@@ -16,7 +16,7 @@ jsonschema<5.0.0,>=4.0.0
|
|
16
16
|
orjson<4.0,>=3.7
|
17
17
|
packaging<24.3,>=21.3
|
18
18
|
pathspec>=0.8.0
|
19
|
-
pydantic[email]!=2.0.0,!=2.0.1,!=2.1.0,<
|
19
|
+
pydantic[email]!=2.0.0,!=2.0.1,!=2.1.0,<2.9.0,>=1.10.0
|
20
20
|
pydantic_core<3.0.0,>=2.12.0
|
21
21
|
python_dateutil<3.0.0,>=2.8.2
|
22
22
|
python-slugify<9.0,>=5.0
|
@@ -29,6 +29,7 @@ from prefect.server import models
|
|
29
29
|
from prefect.settings import (
|
30
30
|
PREFECT_DEBUG_MODE,
|
31
31
|
PREFECT_EXPERIMENTAL_ENABLE_NEW_ENGINE,
|
32
|
+
PREFECT_RUN_ON_COMPLETION_HOOKS_ON_CACHED,
|
32
33
|
PREFECT_TASK_DEFAULT_RETRIES,
|
33
34
|
PREFECT_TASKS_REFRESH_CACHE,
|
34
35
|
temporary_settings,
|
@@ -3767,6 +3768,90 @@ class TestTaskHooksOnCompletion:
|
|
3767
3768
|
assert my_mock.call_args_list == [call(), call()]
|
3768
3769
|
|
3769
3770
|
|
3771
|
+
class TestOnCompletionHooksForCachedTasks:
|
3772
|
+
@pytest.mark.parametrize("run_hooks_on_cached", [True, False])
|
3773
|
+
def test_on_completion_hooks_for_cached_tasks(self, run_hooks_on_cached):
|
3774
|
+
my_mock = MagicMock()
|
3775
|
+
|
3776
|
+
def completed1(task, task_run, state):
|
3777
|
+
my_mock("completed1")
|
3778
|
+
|
3779
|
+
def completed2(task, task_run, state):
|
3780
|
+
my_mock("completed2")
|
3781
|
+
|
3782
|
+
@task(
|
3783
|
+
cache_key_fn=lambda *_: "cache_2",
|
3784
|
+
cache_expiration=datetime.timedelta(seconds=5),
|
3785
|
+
on_completion=[completed1, completed2],
|
3786
|
+
)
|
3787
|
+
def cached_task():
|
3788
|
+
return "cached_result"
|
3789
|
+
|
3790
|
+
@flow
|
3791
|
+
def test_flow():
|
3792
|
+
return cached_task._run()
|
3793
|
+
|
3794
|
+
with temporary_settings(
|
3795
|
+
{PREFECT_RUN_ON_COMPLETION_HOOKS_ON_CACHED: run_hooks_on_cached}
|
3796
|
+
):
|
3797
|
+
# First run to cache the result
|
3798
|
+
state = test_flow()
|
3799
|
+
assert my_mock.call_args_list == [call("completed1"), call("completed2")]
|
3800
|
+
assert not (state.is_completed() and state.name == "Cached")
|
3801
|
+
|
3802
|
+
my_mock.reset_mock()
|
3803
|
+
|
3804
|
+
# Second run to test the hooks behavior
|
3805
|
+
state = test_flow()
|
3806
|
+
assert state.is_completed() and state.name == "Cached"
|
3807
|
+
if run_hooks_on_cached:
|
3808
|
+
assert my_mock.call_args_list == [
|
3809
|
+
call("completed1"),
|
3810
|
+
call("completed2"),
|
3811
|
+
]
|
3812
|
+
else:
|
3813
|
+
assert my_mock.call_args_list == []
|
3814
|
+
|
3815
|
+
@pytest.mark.parametrize("run_hooks_on_cached", [True, False])
|
3816
|
+
def test_exception_in_on_completion_hook_for_cached_task(
|
3817
|
+
self, caplog, run_hooks_on_cached
|
3818
|
+
):
|
3819
|
+
def failing_hook(task, task_run, state):
|
3820
|
+
raise ValueError("Hook failed")
|
3821
|
+
|
3822
|
+
@task(
|
3823
|
+
cache_key_fn=lambda *_: "cache_3",
|
3824
|
+
cache_expiration=datetime.timedelta(seconds=5),
|
3825
|
+
on_completion=[failing_hook],
|
3826
|
+
)
|
3827
|
+
def cached_task():
|
3828
|
+
return "cached_result"
|
3829
|
+
|
3830
|
+
@flow
|
3831
|
+
def test_flow():
|
3832
|
+
return cached_task._run()
|
3833
|
+
|
3834
|
+
with temporary_settings(
|
3835
|
+
{PREFECT_RUN_ON_COMPLETION_HOOKS_ON_CACHED: run_hooks_on_cached}
|
3836
|
+
):
|
3837
|
+
# First run to cache the result
|
3838
|
+
state = test_flow()
|
3839
|
+
assert state.result() == "cached_result"
|
3840
|
+
assert not (state.is_completed() and state.name == "Cached")
|
3841
|
+
|
3842
|
+
caplog.clear()
|
3843
|
+
|
3844
|
+
# Second run to test the hook behavior
|
3845
|
+
state = test_flow()
|
3846
|
+
assert state.is_completed() and state.name == "Cached"
|
3847
|
+
assert state.result() == "cached_result"
|
3848
|
+
|
3849
|
+
if run_hooks_on_cached:
|
3850
|
+
assert "ValueError: Hook failed" in caplog.text
|
3851
|
+
else:
|
3852
|
+
assert "ValueError: Hook failed" not in caplog.text
|
3853
|
+
|
3854
|
+
|
3770
3855
|
class TestTaskHooksOnFailure:
|
3771
3856
|
def test_noniterable_hook_raises(self):
|
3772
3857
|
def failure_hook():
|
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.20.5 → prefect_client-2.20.7}/src/prefect/_internal/compatibility/__init__.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/compatibility/deprecated.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/compatibility/experimental.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/concurrency/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/concurrency/cancellation.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/concurrency/event_loop.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/concurrency/inspection.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/concurrency/primitives.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/concurrency/services.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/concurrency/threads.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_internal/concurrency/waiters.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/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.20.5 → prefect_client-2.20.7}/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.20.5 → prefect_client-2.20.7}/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.20.5 → prefect_client-2.20.7}/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.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/datastructures.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/dependencies/__init__.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/dependencies/models.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/dependencies/utils.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/exception_handlers.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/middleware/__init__.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/middleware/cors.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/middleware/gzip.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/middleware/wsgi.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/openapi/__init__.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/openapi/constants.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/openapi/models.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/openapi/utils.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/param_functions.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/security/__init__.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/security/api_key.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/security/base.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/security/http.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/fastapi/security/oauth2.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/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.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/_exception_handler.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/applications.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/authentication.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/concurrency.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/datastructures.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/formparsers.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/middleware/__init__.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/middleware/base.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/middleware/cors.py
RENAMED
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/middleware/errors.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/middleware/gzip.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/middleware/sessions.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/middleware/wsgi.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{prefect_client-2.20.5 → prefect_client-2.20.7}/src/prefect/_vendor/starlette/staticfiles.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|