prefect-client 2.20.14__tar.gz → 2.20.16__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.14/src/prefect_client.egg-info → prefect_client-2.20.16}/PKG-INFO +1 -1
- {prefect_client-2.20.14 → prefect_client-2.20.16}/requirements.txt +1 -1
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/orchestration.py +34 -2
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/schemas/objects.py +3 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/flows.py +24 -7
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/tasks.py +4 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16/src/prefect_client.egg-info}/PKG-INFO +1 -1
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_deployments.py +10 -5
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_flows.py +17 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_tasks.py +15 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/LICENSE +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/MANIFEST.in +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/README.md +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/requirements-client.txt +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/requirements-dev.txt +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/setup.cfg +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/setup.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/.prefectignore +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/_logging.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/compatibility/experimental.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/services.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/threads.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/integrations.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/_base_model.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/_compat.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/_flags.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/_types.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/annotations/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/annotations/pendulum.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/config_dict.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/field_validator.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_construct.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_copy.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_dump.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_dump_json.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_fields.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_fields_set.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_json_schema.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_rebuild.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_validate.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_validate_json.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_validator.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/type_adapter.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pytz.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/schemas/validators.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/applications.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/background.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/concurrency.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/datastructures.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/dependencies/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/dependencies/models.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/dependencies/utils.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/encoders.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/exception_handlers.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/exceptions.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/logger.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/middleware/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/middleware/asyncexitstack.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/middleware/cors.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/middleware/gzip.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/middleware/httpsredirect.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/middleware/trustedhost.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/middleware/wsgi.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/openapi/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/openapi/constants.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/openapi/docs.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/openapi/models.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/openapi/utils.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/param_functions.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/params.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/py.typed +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/requests.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/responses.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/routing.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/api_key.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/base.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/http.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/oauth2.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/open_id_connect_url.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/utils.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/staticfiles.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/templating.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/testclient.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/types.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/utils.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/websockets.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/_compat.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/_exception_handler.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/_utils.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/applications.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/authentication.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/background.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/concurrency.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/config.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/convertors.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/datastructures.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/endpoints.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/exceptions.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/formparsers.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/authentication.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/base.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/cors.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/errors.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/exceptions.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/gzip.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/httpsredirect.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/sessions.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/trustedhost.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/wsgi.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/py.typed +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/requests.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/responses.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/routing.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/schemas.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/staticfiles.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/status.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/templating.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/testclient.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/types.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/websockets.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_version.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/agent.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/artifacts.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/automations.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/blocks/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/blocks/abstract.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/blocks/core.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/blocks/fields.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/blocks/kubernetes.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/blocks/notifications.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/blocks/system.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/blocks/webhook.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/base.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/cloud.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/collections.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/constants.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/schemas/actions.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/schemas/filters.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/schemas/responses.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/subscriptions.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/utilities.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/concurrency/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/concurrency/asyncio.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/concurrency/events.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/concurrency/services.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/concurrency/sync.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/context.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deployments/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deployments/base.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deployments/deployments.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deployments/runner.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deployments/schedules.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deployments/steps/core.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deprecated/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deprecated/data_documents.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deprecated/packaging/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deprecated/packaging/base.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deprecated/packaging/docker.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deprecated/packaging/file.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deprecated/packaging/orion.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deprecated/packaging/serializers.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/engine.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/actions.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/cli/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/cli/automations.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/clients.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/filters.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/instrument.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/related.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/schemas/automations.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/schemas/events.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/utilities.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/worker.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/exceptions.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/filesystems.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/flow_runs.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/futures.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/base.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/container.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/kubernetes.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/process.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/input/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/input/actions.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/input/run_input.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/logging/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/logging/configuration.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/logging/filters.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/logging/formatters.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/logging/handlers.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/logging/highlighters.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/logging/loggers.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/logging/logging.yml +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/manifests.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/new_flow_engine.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/new_task_engine.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/plugins.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/profiles.toml +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/py.typed +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/pydantic/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/pydantic/main.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/results.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runner/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runner/runner.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runner/server.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runner/storage.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runner/submit.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runner/utils.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runtime/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runtime/deployment.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runtime/flow_run.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runtime/task_run.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/serializers.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/settings.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/software/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/software/base.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/software/conda.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/software/pip.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/software/python.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/states.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/task_engine.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/task_runners.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/task_server.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/types/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/annotations.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/asyncutils.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/callables.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/collections.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/compat.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/context.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/dispatch.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/engine.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/filesystem.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/hashing.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/importtools.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/math.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/names.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/processutils.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/pydantic.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/services.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/slugify.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/templating.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/text.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/timeout.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/urls.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/visualization.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/variables.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/workers/__init__.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/workers/base.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/workers/block.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/workers/process.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/workers/server.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/workers/utilities.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect_client.egg-info/SOURCES.txt +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect_client.egg-info/dependency_links.txt +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect_client.egg-info/requires.txt +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect_client.egg-info/top_level.txt +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_artifacts.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_automations.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_background_tasks.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_context.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_engine.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_exceptions.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_filesystems.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_flow_runs.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_flows_compat.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_futures.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_highlighters.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_import_interceptor.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_log_prints.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_logging.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_new_flow_engine.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_new_task_engine.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_plugins.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_serializers.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_settings.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_states.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_task_runners.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_task_server.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_variables.py +0 -0
- {prefect_client-2.20.14 → prefect_client-2.20.16}/versioneer.py +0 -0
@@ -1,5 +1,6 @@
|
|
1
1
|
import asyncio
|
2
2
|
import datetime
|
3
|
+
import ssl
|
3
4
|
import warnings
|
4
5
|
from contextlib import AsyncExitStack
|
5
6
|
from typing import (
|
@@ -275,12 +276,18 @@ class PrefectClient:
|
|
275
276
|
httpx_settings.setdefault("headers", {})
|
276
277
|
|
277
278
|
if PREFECT_API_TLS_INSECURE_SKIP_VERIFY:
|
278
|
-
|
279
|
+
# Create an unverified context for insecure connections
|
280
|
+
ctx = ssl.create_default_context()
|
281
|
+
ctx.check_hostname = False
|
282
|
+
ctx.verify_mode = ssl.CERT_NONE
|
283
|
+
httpx_settings.setdefault("verify", ctx)
|
279
284
|
else:
|
280
285
|
cert_file = PREFECT_API_SSL_CERT_FILE.value()
|
281
286
|
if not cert_file:
|
282
287
|
cert_file = certifi.where()
|
283
|
-
|
288
|
+
# Create a verified context with the certificate file
|
289
|
+
ctx = ssl.create_default_context(cafile=cert_file)
|
290
|
+
httpx_settings.setdefault("verify", ctx)
|
284
291
|
|
285
292
|
if api_version is None:
|
286
293
|
api_version = SERVER_API_VERSION
|
@@ -492,6 +499,23 @@ class PrefectClient:
|
|
492
499
|
response = await self._client.get(f"/flows/{flow_id}")
|
493
500
|
return Flow.parse_obj(response.json())
|
494
501
|
|
502
|
+
async def delete_flow(self, flow_id: UUID) -> None:
|
503
|
+
"""
|
504
|
+
Delete a flow by UUID.
|
505
|
+
Args:
|
506
|
+
flow_id: ID of the flow to be deleted
|
507
|
+
Raises:
|
508
|
+
prefect.exceptions.ObjectNotFound: If request returns 404
|
509
|
+
httpx.RequestError: If requests fails
|
510
|
+
"""
|
511
|
+
try:
|
512
|
+
await self._client.delete(f"/flows/{flow_id}")
|
513
|
+
except httpx.HTTPStatusError as e:
|
514
|
+
if e.response.status_code == status.HTTP_404_NOT_FOUND:
|
515
|
+
raise prefect.exceptions.ObjectNotFound(http_exc=e) from e
|
516
|
+
else:
|
517
|
+
raise
|
518
|
+
|
495
519
|
async def read_flows(
|
496
520
|
self,
|
497
521
|
*,
|
@@ -3438,11 +3462,19 @@ class SyncPrefectClient:
|
|
3438
3462
|
|
3439
3463
|
if PREFECT_API_TLS_INSECURE_SKIP_VERIFY:
|
3440
3464
|
httpx_settings.setdefault("verify", False)
|
3465
|
+
# Create an unverified context for insecure connections
|
3466
|
+
ctx = ssl.create_default_context()
|
3467
|
+
ctx.check_hostname = False
|
3468
|
+
ctx.verify_mode = ssl.CERT_NONE
|
3469
|
+
httpx_settings.setdefault("verify", ctx)
|
3441
3470
|
else:
|
3442
3471
|
cert_file = PREFECT_API_SSL_CERT_FILE.value()
|
3443
3472
|
if not cert_file:
|
3444
3473
|
cert_file = certifi.where()
|
3445
3474
|
httpx_settings.setdefault("verify", cert_file)
|
3475
|
+
# Create a verified context with the certificate file
|
3476
|
+
ctx = ssl.create_default_context(cafile=cert_file)
|
3477
|
+
httpx_settings.setdefault("verify", ctx)
|
3446
3478
|
|
3447
3479
|
if api_version is None:
|
3448
3480
|
api_version = SERVER_API_VERSION
|
@@ -410,6 +410,9 @@ class FlowRunPolicy(PrefectBaseModel):
|
|
410
410
|
resuming: Optional[bool] = Field(
|
411
411
|
default=False, description="Indicates if this run is resuming from a pause."
|
412
412
|
)
|
413
|
+
retry_type: Optional[Literal["in_process", "reschedule"]] = Field(
|
414
|
+
default=None, description="The type of retry this run is undergoing."
|
415
|
+
)
|
413
416
|
|
414
417
|
@root_validator
|
415
418
|
def populate_deprecated_fields(cls, values):
|
@@ -10,6 +10,7 @@ import datetime
|
|
10
10
|
import importlib.util
|
11
11
|
import inspect
|
12
12
|
import os
|
13
|
+
import sys
|
13
14
|
import tempfile
|
14
15
|
import warnings
|
15
16
|
from functools import partial, update_wrapper
|
@@ -137,6 +138,16 @@ logger = get_logger("flows")
|
|
137
138
|
if TYPE_CHECKING:
|
138
139
|
from prefect.deployments.runner import FlexibleScheduleList, RunnerDeployment
|
139
140
|
|
141
|
+
# Handle Python 3.8 compatibility for GenericAlias
|
142
|
+
if sys.version_info >= (3, 9):
|
143
|
+
from types import GenericAlias # novermin
|
144
|
+
|
145
|
+
GENERIC_ALIAS = (GenericAlias,)
|
146
|
+
else:
|
147
|
+
from typing import _GenericAlias
|
148
|
+
|
149
|
+
GENERIC_ALIAS = (_GenericAlias,)
|
150
|
+
|
140
151
|
|
141
152
|
@PrefectObjectRegistry.register_instances
|
142
153
|
class Flow(Generic[P, R]):
|
@@ -530,18 +541,22 @@ class Flow(Generic[P, R]):
|
|
530
541
|
is_v1_type(param.annotation) for param in sig.parameters.values()
|
531
542
|
)
|
532
543
|
has_v1_models = any(
|
533
|
-
|
534
|
-
|
535
|
-
|
544
|
+
(
|
545
|
+
isinstance(param.annotation, type)
|
546
|
+
and not isinstance(param.annotation, GENERIC_ALIAS)
|
547
|
+
and issubclass(param.annotation, V1BaseModel)
|
548
|
+
)
|
536
549
|
for param in sig.parameters.values()
|
537
550
|
)
|
538
551
|
has_v2_types = any(
|
539
552
|
is_v2_type(param.annotation) for param in sig.parameters.values()
|
540
553
|
)
|
541
554
|
has_v2_models = any(
|
542
|
-
|
543
|
-
|
544
|
-
|
555
|
+
(
|
556
|
+
isinstance(param.annotation, type)
|
557
|
+
and not isinstance(param.annotation, GENERIC_ALIAS)
|
558
|
+
and issubclass(param.annotation, V2BaseModel)
|
559
|
+
)
|
545
560
|
for param in sig.parameters.values()
|
546
561
|
)
|
547
562
|
|
@@ -1601,7 +1616,9 @@ flow.from_source = Flow.from_source
|
|
1601
1616
|
|
1602
1617
|
|
1603
1618
|
def select_flow(
|
1604
|
-
flows: Iterable[Flow],
|
1619
|
+
flows: Iterable[Flow],
|
1620
|
+
flow_name: Optional[str] = None,
|
1621
|
+
from_message: Optional[str] = None,
|
1605
1622
|
) -> Flow:
|
1606
1623
|
"""
|
1607
1624
|
Select the only flow in an iterable or a flow specified by name.
|
@@ -342,6 +342,10 @@ class Task(Generic[P, R]):
|
|
342
342
|
|
343
343
|
if callable(retry_delay_seconds):
|
344
344
|
self.retry_delay_seconds = retry_delay_seconds(retries)
|
345
|
+
elif not isinstance(retry_delay_seconds, (list, int, float, type(None))):
|
346
|
+
raise TypeError(
|
347
|
+
f"Invalid `retry_delay_seconds` provided; must be an int, float, list or callable. Received type {type(retry_delay_seconds)}"
|
348
|
+
)
|
345
349
|
else:
|
346
350
|
self.retry_delay_seconds = retry_delay_seconds
|
347
351
|
|
@@ -937,7 +937,7 @@ class TestDeploymentApply:
|
|
937
937
|
):
|
938
938
|
assert get_client().server_type.supports_automations()
|
939
939
|
|
940
|
-
with respx.mock(base_url=PREFECT_API_URL.value()) as router:
|
940
|
+
with respx.mock(base_url=PREFECT_API_URL.value(), using="httpx") as router:
|
941
941
|
router.post("/flows/").mock(
|
942
942
|
return_value=httpx.Response(201, json={"id": str(uuid4())})
|
943
943
|
)
|
@@ -989,7 +989,7 @@ class TestDeploymentApply:
|
|
989
989
|
):
|
990
990
|
assert get_client().server_type.supports_automations()
|
991
991
|
|
992
|
-
with respx.mock(base_url=PREFECT_API_URL.value()) as router:
|
992
|
+
with respx.mock(base_url=PREFECT_API_URL.value(), using="httpx") as router:
|
993
993
|
router.post("/flows/").mock(
|
994
994
|
return_value=httpx.Response(201, json={"id": str(uuid4())})
|
995
995
|
)
|
@@ -1036,7 +1036,8 @@ class TestDeploymentApply:
|
|
1036
1036
|
assert not get_client().server_type.supports_automations()
|
1037
1037
|
|
1038
1038
|
with respx.mock(
|
1039
|
-
|
1039
|
+
assert_all_mocked=False,
|
1040
|
+
assert_all_called=False,
|
1040
1041
|
) as router:
|
1041
1042
|
router.post("/flows/").mock(
|
1042
1043
|
return_value=httpx.Response(201, json={"id": str(uuid4())})
|
@@ -1084,7 +1085,7 @@ class TestDeploymentApply:
|
|
1084
1085
|
}
|
1085
1086
|
|
1086
1087
|
with temporary_settings(updates=updates):
|
1087
|
-
with respx.mock(base_url=PREFECT_API_URL.value()) as router:
|
1088
|
+
with respx.mock(base_url=PREFECT_API_URL.value(), using="httpx") as router:
|
1088
1089
|
router.post("/flows/").mock(
|
1089
1090
|
return_value=httpx.Response(201, json={"id": str(uuid4())})
|
1090
1091
|
)
|
@@ -1169,6 +1170,7 @@ class TestRunDeployment:
|
|
1169
1170
|
with respx.mock(
|
1170
1171
|
base_url=PREFECT_API_URL.value(),
|
1171
1172
|
assert_all_mocked=True,
|
1173
|
+
using="httpx",
|
1172
1174
|
) as router:
|
1173
1175
|
poll_responses = [
|
1174
1176
|
Response(
|
@@ -1217,6 +1219,7 @@ class TestRunDeployment:
|
|
1217
1219
|
async with respx.mock(
|
1218
1220
|
base_url=PREFECT_API_URL.value(),
|
1219
1221
|
assert_all_mocked=True,
|
1222
|
+
using="httpx",
|
1220
1223
|
) as router:
|
1221
1224
|
poll_responses = [
|
1222
1225
|
Response(
|
@@ -1330,7 +1333,7 @@ class TestRunDeployment:
|
|
1330
1333
|
}
|
1331
1334
|
|
1332
1335
|
with respx.mock(
|
1333
|
-
base_url=PREFECT_API_URL.value(), assert_all_mocked=True
|
1336
|
+
base_url=PREFECT_API_URL.value(), assert_all_mocked=True, using="httpx"
|
1334
1337
|
) as router:
|
1335
1338
|
router.get("/csrf-token", params={"client": mock.ANY}).pass_through()
|
1336
1339
|
router.get(f"/deployments/name/{d.flow_name}/{d.name}").pass_through()
|
@@ -1365,6 +1368,7 @@ class TestRunDeployment:
|
|
1365
1368
|
base_url=PREFECT_API_URL.value(),
|
1366
1369
|
assert_all_mocked=True,
|
1367
1370
|
assert_all_called=False,
|
1371
|
+
using="httpx",
|
1368
1372
|
) as router:
|
1369
1373
|
router.get("/csrf-token", params={"client": mock.ANY}).pass_through()
|
1370
1374
|
router.get(f"/deployments/name/{d.flow_name}/{d.name}").pass_through()
|
@@ -1410,6 +1414,7 @@ class TestRunDeployment:
|
|
1410
1414
|
base_url=PREFECT_API_URL.value(),
|
1411
1415
|
assert_all_mocked=True,
|
1412
1416
|
assert_all_called=False,
|
1417
|
+
using="httpx",
|
1413
1418
|
) as router:
|
1414
1419
|
router.get("/csrf-token", params={"client": mock.ANY}).pass_through()
|
1415
1420
|
router.get(f"/deployments/name/{d.flow_name}/{d.name}").pass_through()
|
@@ -1517,6 +1517,23 @@ class TestFlowParameterTypes:
|
|
1517
1517
|
"secret": SecretStr("my secret")
|
1518
1518
|
}
|
1519
1519
|
|
1520
|
+
@pytest.mark.skipif(
|
1521
|
+
sys.version_info < (3, 9), reason="Python 3.9+ required for GenericAlias"
|
1522
|
+
)
|
1523
|
+
def test_flow_signature_can_contain_generic_type_hints(self):
|
1524
|
+
"""Test that generic type hints like dict[str, str] work correctly
|
1525
|
+
|
1526
|
+
this is a regression test for https://github.com/PrefectHQ/prefect/issues/16105
|
1527
|
+
"""
|
1528
|
+
|
1529
|
+
@flow
|
1530
|
+
def my_flow(param: dict[str, str]): # novermin
|
1531
|
+
return param
|
1532
|
+
|
1533
|
+
test_data = {"foo": "bar"}
|
1534
|
+
assert my_flow(test_data) == test_data
|
1535
|
+
assert my_flow.validate_parameters({"param": test_data}) == {"param": test_data}
|
1536
|
+
|
1520
1537
|
|
1521
1538
|
class TestSubflowTaskInputs:
|
1522
1539
|
async def test_subflow_with_one_upstream_task_future(self, prefect_client):
|
@@ -3381,6 +3381,21 @@ class TestTaskMap:
|
|
3381
3381
|
|
3382
3382
|
|
3383
3383
|
class TestTaskConstructorValidation:
|
3384
|
+
async def test_task_cannot_configure_poorly_typed_retry_delay(self):
|
3385
|
+
with pytest.raises(TypeError, match="Invalid"):
|
3386
|
+
|
3387
|
+
@task(retries=42, retry_delay_seconds=dict(x=4))
|
3388
|
+
async def insanity():
|
3389
|
+
raise RuntimeError("try again!")
|
3390
|
+
|
3391
|
+
with pytest.raises(TypeError, match="Invalid"):
|
3392
|
+
|
3393
|
+
@task(retries=42, retry_delay_seconds=2)
|
3394
|
+
async def sanity():
|
3395
|
+
raise RuntimeError("try again!")
|
3396
|
+
|
3397
|
+
more_insanity = sanity.with_options(retry_delay_seconds=dict(x=4)) # noqa: F841
|
3398
|
+
|
3384
3399
|
async def test_task_cannot_configure_too_many_custom_retry_delays(self):
|
3385
3400
|
with pytest.raises(ValueError, match="Can not configure more"):
|
3386
3401
|
|
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.14 → prefect_client-2.20.16}/src/prefect/_internal/compatibility/__init__.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/compatibility/deprecated.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/__init__.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/calls.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/cancellation.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/event_loop.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/inspection.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/primitives.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/services.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/threads.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/waiters.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/__init__.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/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
|
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.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/v1_schema.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/v2_schema.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/schemas/serializers.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/schemas/validators.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/applications.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/concurrency.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/datastructures.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/dependencies/models.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/dependencies/utils.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/exception_handlers.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/middleware/__init__.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/middleware/cors.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/middleware/gzip.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/middleware/wsgi.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/openapi/__init__.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/openapi/constants.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/openapi/docs.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/openapi/models.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/openapi/utils.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/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.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/__init__.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/api_key.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/base.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/http.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/oauth2.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/utils.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/staticfiles.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
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/applications.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/authentication.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/background.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/concurrency.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/convertors.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/datastructures.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/endpoints.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/exceptions.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/formparsers.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/base.py
RENAMED
File without changes
|
{prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/cors.py
RENAMED
File without changes
|