prefect-client 3.4.25.dev3__tar.gz → 3.4.25.dev4__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-3.4.25.dev3 → prefect_client-3.4.25.dev4}/PKG-INFO +1 -1
- prefect_client-3.4.25.dev4/src/prefect/_build_info.py +5 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/__init__.py +336 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/runner/storage.py +33 -2
- prefect_client-3.4.25.dev3/src/prefect/_build_info.py +0 -5
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/.gitignore +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/LICENSE +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/README.md +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/pyproject.toml +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/.prefectignore +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/AGENTS.md +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/__main__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_experimental/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_experimental/bundles/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_experimental/bundles/execute.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_experimental/plugins/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_experimental/plugins/apply.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_experimental/plugins/manager.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_experimental/plugins/spec.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_experimental/sla/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_experimental/sla/client.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_experimental/sla/objects.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/_logging.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/compatibility/blocks.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/compatibility/migration.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/compatibility/starlette.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/concurrency/services.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/concurrency/threads.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/installation.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/integrations.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/pytz.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/retries.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/schemas/validators.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/uuid7.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/websockets.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_result_records.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_vendor/croniter/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_vendor/croniter/croniter.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_versioning.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_waiters.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/agent.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/artifacts.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/assets/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/assets/core.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/assets/materialize.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/automations.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/blocks/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/blocks/abstract.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/blocks/core.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/blocks/fields.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/blocks/notifications.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/blocks/redis.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/blocks/system.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/blocks/webhook.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/cache_policies.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/base.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/cloud.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/collections.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/constants.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_automations/client.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_deployments/client.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_flows/client.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_logs/client.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_variables/client.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/base.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/orchestration/routes.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/schemas/actions.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/schemas/filters.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/schemas/objects.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/schemas/responses.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/subscriptions.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/types/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/types/flexible_schedule_list.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/client/utilities.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/concurrency/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/concurrency/_asyncio.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/concurrency/_events.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/concurrency/_leases.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/concurrency/asyncio.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/concurrency/context.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/concurrency/services.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/concurrency/sync.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/concurrency/v1/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/concurrency/v1/_asyncio.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/concurrency/v1/_events.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/concurrency/v1/asyncio.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/concurrency/v1/context.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/concurrency/v1/services.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/concurrency/v1/sync.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/context.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/deployments/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/deployments/base.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/deployments/deployments.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/deployments/flow_runs.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/deployments/runner.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/deployments/schedules.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/deployments/steps/core.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/docker/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/docker/docker_image.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/engine.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/events/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/events/actions.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/events/cli/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/events/cli/automations.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/events/clients.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/events/filters.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/events/related.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/events/schemas/automations.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/events/schemas/events.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/events/subscribers.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/events/utilities.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/events/worker.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/exceptions.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/filesystems.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/flow_engine.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/flow_runs.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/flows.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/futures.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/infrastructure/base.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/input/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/input/actions.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/input/run_input.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/locking/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/locking/filesystem.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/locking/memory.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/locking/protocol.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/logging/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/logging/clients.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/logging/configuration.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/logging/filters.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/logging/formatters.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/logging/handlers.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/logging/highlighters.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/logging/loggers.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/logging/logging.yml +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/main.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/plugins.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/py.typed +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/results.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/runner/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/runner/_observers.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/runner/runner.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/runner/server.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/runner/submit.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/runner/utils.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/runtime/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/runtime/deployment.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/runtime/flow_run.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/runtime/task_run.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/schedules.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/serializers.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/admin.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/artifacts.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/automations.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/block_capabilities.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/block_documents.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/block_schemas.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/block_types.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/clients.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/collections.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/concurrency_limits.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/csrf_token.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/dependencies.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/deployments.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/events.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/flow_run_states.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/flow_runs.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/flows.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/logs.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/middleware.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/root.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/run_history.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/saved_searches.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/server.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/task_run_states.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/task_runs.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/task_workers.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/templates.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/ui/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/ui/flow_runs.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/ui/flows.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/ui/schemas.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/ui/task_runs.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/validation.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/variables.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/work_queues.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/server/api/workers.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/base.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/constants.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/context.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/legacy.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/_defaults.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/api.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/cli.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/client.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/cloud.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/deployments.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/experiments.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/flows.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/internal.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/logging.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/results.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/root.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/runner.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/server/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/server/api.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/server/concurrency.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/server/database.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/server/deployments.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/server/ephemeral.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/server/events.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/server/logs.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/server/root.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/server/services.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/server/tasks.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/server/ui.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/tasks.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/testing.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/models/worker.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/profiles.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/profiles.toml +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/settings/sources.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/states.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/task_engine.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/task_runners.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/task_runs.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/task_worker.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/tasks.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/telemetry/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/telemetry/run_telemetry.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/transactions.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/types/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/types/_concurrency.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/types/_datetime.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/types/_schema.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/types/entrypoint.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/types/names.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/_ast.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/_deprecated.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/_engine.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/_git.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/annotations.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/asyncutils.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/callables.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/collections.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/compat.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/context.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/dispatch.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/engine.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/filesystem.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/generics.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/hashing.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/importtools.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/math.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/names.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/processutils.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/pydantic.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/services.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/slugify.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/templating.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/text.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/timeout.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/urls.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/utilities/visualization.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/variables.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/workers/__init__.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/workers/base.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/workers/block.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/workers/cloud.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/workers/process.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/workers/server.py +0 -0
- {prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/workers/utilities.py +0 -0
|
@@ -1607,3 +1607,339 @@ class SyncPrefectClient(
|
|
|
1607
1607
|
return _get_type_adapter(list[prefect.states.State]).validate_python(
|
|
1608
1608
|
response.json()
|
|
1609
1609
|
)
|
|
1610
|
+
|
|
1611
|
+
def delete_task_run(self, task_run_id: UUID) -> None:
|
|
1612
|
+
"""
|
|
1613
|
+
Delete a task run by id.
|
|
1614
|
+
|
|
1615
|
+
Args:
|
|
1616
|
+
task_run_id: the task run ID of interest
|
|
1617
|
+
Raises:
|
|
1618
|
+
prefect.exceptions.ObjectNotFound: If request returns 404
|
|
1619
|
+
httpx.RequestError: If requests fails
|
|
1620
|
+
"""
|
|
1621
|
+
try:
|
|
1622
|
+
self._client.delete(f"/task_runs/{task_run_id}")
|
|
1623
|
+
except httpx.HTTPStatusError as e:
|
|
1624
|
+
if e.response.status_code == 404:
|
|
1625
|
+
raise prefect.exceptions.ObjectNotFound(http_exc=e) from e
|
|
1626
|
+
else:
|
|
1627
|
+
raise
|
|
1628
|
+
|
|
1629
|
+
def create_work_queue(
|
|
1630
|
+
self,
|
|
1631
|
+
name: str,
|
|
1632
|
+
description: Optional[str] = None,
|
|
1633
|
+
is_paused: Optional[bool] = None,
|
|
1634
|
+
concurrency_limit: Optional[int] = None,
|
|
1635
|
+
priority: Optional[int] = None,
|
|
1636
|
+
work_pool_name: Optional[str] = None,
|
|
1637
|
+
) -> WorkQueue:
|
|
1638
|
+
"""
|
|
1639
|
+
Create a work queue.
|
|
1640
|
+
|
|
1641
|
+
Args:
|
|
1642
|
+
name: a unique name for the work queue
|
|
1643
|
+
description: An optional description for the work queue.
|
|
1644
|
+
is_paused: Whether or not the work queue is paused.
|
|
1645
|
+
concurrency_limit: An optional concurrency limit for the work queue.
|
|
1646
|
+
priority: The queue's priority. Lower values are higher priority (1 is the highest).
|
|
1647
|
+
work_pool_name: The name of the work pool to use for this queue.
|
|
1648
|
+
|
|
1649
|
+
Raises:
|
|
1650
|
+
prefect.exceptions.ObjectAlreadyExists: If request returns 409
|
|
1651
|
+
httpx.RequestError: If request fails
|
|
1652
|
+
|
|
1653
|
+
Returns:
|
|
1654
|
+
The created work queue
|
|
1655
|
+
"""
|
|
1656
|
+
create_model = WorkQueueCreate(name=name, filter=None)
|
|
1657
|
+
if description is not None:
|
|
1658
|
+
create_model.description = description
|
|
1659
|
+
if is_paused is not None:
|
|
1660
|
+
create_model.is_paused = is_paused
|
|
1661
|
+
if concurrency_limit is not None:
|
|
1662
|
+
create_model.concurrency_limit = concurrency_limit
|
|
1663
|
+
if priority is not None:
|
|
1664
|
+
create_model.priority = priority
|
|
1665
|
+
|
|
1666
|
+
data = create_model.model_dump(mode="json")
|
|
1667
|
+
try:
|
|
1668
|
+
if work_pool_name is not None:
|
|
1669
|
+
response = self._client.post(
|
|
1670
|
+
f"/work_pools/{work_pool_name}/queues", json=data
|
|
1671
|
+
)
|
|
1672
|
+
else:
|
|
1673
|
+
response = self._client.post("/work_queues/", json=data)
|
|
1674
|
+
except httpx.HTTPStatusError as e:
|
|
1675
|
+
if e.response.status_code == status.HTTP_409_CONFLICT:
|
|
1676
|
+
raise prefect.exceptions.ObjectAlreadyExists(http_exc=e) from e
|
|
1677
|
+
elif e.response.status_code == status.HTTP_404_NOT_FOUND:
|
|
1678
|
+
raise prefect.exceptions.ObjectNotFound(http_exc=e) from e
|
|
1679
|
+
else:
|
|
1680
|
+
raise
|
|
1681
|
+
return WorkQueue.model_validate(response.json())
|
|
1682
|
+
|
|
1683
|
+
def read_work_queue_by_name(
|
|
1684
|
+
self,
|
|
1685
|
+
name: str,
|
|
1686
|
+
work_pool_name: Optional[str] = None,
|
|
1687
|
+
) -> WorkQueue:
|
|
1688
|
+
"""
|
|
1689
|
+
Read a work queue by name.
|
|
1690
|
+
|
|
1691
|
+
Args:
|
|
1692
|
+
name (str): a unique name for the work queue
|
|
1693
|
+
work_pool_name (str, optional): the name of the work pool
|
|
1694
|
+
the queue belongs to.
|
|
1695
|
+
|
|
1696
|
+
Raises:
|
|
1697
|
+
prefect.exceptions.ObjectNotFound: if no work queue is found
|
|
1698
|
+
httpx.HTTPStatusError: other status errors
|
|
1699
|
+
|
|
1700
|
+
Returns:
|
|
1701
|
+
WorkQueue: a work queue API object
|
|
1702
|
+
"""
|
|
1703
|
+
try:
|
|
1704
|
+
if work_pool_name is not None:
|
|
1705
|
+
response = self._client.get(
|
|
1706
|
+
f"/work_pools/{work_pool_name}/queues/{name}"
|
|
1707
|
+
)
|
|
1708
|
+
else:
|
|
1709
|
+
response = self._client.get(f"/work_queues/name/{name}")
|
|
1710
|
+
except httpx.HTTPStatusError as e:
|
|
1711
|
+
if e.response.status_code == status.HTTP_404_NOT_FOUND:
|
|
1712
|
+
raise prefect.exceptions.ObjectNotFound(http_exc=e) from e
|
|
1713
|
+
else:
|
|
1714
|
+
raise
|
|
1715
|
+
|
|
1716
|
+
return WorkQueue.model_validate(response.json())
|
|
1717
|
+
|
|
1718
|
+
def update_work_queue(self, id: UUID, **kwargs: Any) -> None:
|
|
1719
|
+
"""
|
|
1720
|
+
Update properties of a work queue.
|
|
1721
|
+
|
|
1722
|
+
Args:
|
|
1723
|
+
id: the ID of the work queue to update
|
|
1724
|
+
**kwargs: the fields to update
|
|
1725
|
+
|
|
1726
|
+
Raises:
|
|
1727
|
+
ValueError: if no kwargs are provided
|
|
1728
|
+
prefect.exceptions.ObjectNotFound: if request returns 404
|
|
1729
|
+
httpx.RequestError: if the request fails
|
|
1730
|
+
|
|
1731
|
+
"""
|
|
1732
|
+
if not kwargs:
|
|
1733
|
+
raise ValueError("No fields provided to update.")
|
|
1734
|
+
|
|
1735
|
+
data = WorkQueueUpdate(**kwargs).model_dump(mode="json", exclude_unset=True)
|
|
1736
|
+
try:
|
|
1737
|
+
self._client.patch(f"/work_queues/{id}", json=data)
|
|
1738
|
+
except httpx.HTTPStatusError as e:
|
|
1739
|
+
if e.response.status_code == status.HTTP_404_NOT_FOUND:
|
|
1740
|
+
raise prefect.exceptions.ObjectNotFound(http_exc=e) from e
|
|
1741
|
+
else:
|
|
1742
|
+
raise
|
|
1743
|
+
|
|
1744
|
+
def get_runs_in_work_queue(
|
|
1745
|
+
self,
|
|
1746
|
+
id: UUID,
|
|
1747
|
+
limit: int = 10,
|
|
1748
|
+
scheduled_before: Optional[datetime.datetime] = None,
|
|
1749
|
+
) -> list[FlowRun]:
|
|
1750
|
+
"""
|
|
1751
|
+
Read flow runs off a work queue.
|
|
1752
|
+
|
|
1753
|
+
Args:
|
|
1754
|
+
id: the id of the work queue to read from
|
|
1755
|
+
limit: a limit on the number of runs to return
|
|
1756
|
+
scheduled_before: a timestamp; only runs scheduled before this time will be returned.
|
|
1757
|
+
Defaults to now.
|
|
1758
|
+
|
|
1759
|
+
Raises:
|
|
1760
|
+
prefect.exceptions.ObjectNotFound: If request returns 404
|
|
1761
|
+
httpx.RequestError: If request fails
|
|
1762
|
+
|
|
1763
|
+
Returns:
|
|
1764
|
+
List[FlowRun]: a list of FlowRun objects read from the queue
|
|
1765
|
+
"""
|
|
1766
|
+
if scheduled_before is None:
|
|
1767
|
+
scheduled_before = now("UTC")
|
|
1768
|
+
|
|
1769
|
+
try:
|
|
1770
|
+
response = self._client.post(
|
|
1771
|
+
f"/work_queues/{id}/get_runs",
|
|
1772
|
+
json={
|
|
1773
|
+
"limit": limit,
|
|
1774
|
+
"scheduled_before": scheduled_before.isoformat(),
|
|
1775
|
+
},
|
|
1776
|
+
)
|
|
1777
|
+
except httpx.HTTPStatusError as e:
|
|
1778
|
+
if e.response.status_code == status.HTTP_404_NOT_FOUND:
|
|
1779
|
+
raise prefect.exceptions.ObjectNotFound(http_exc=e) from e
|
|
1780
|
+
else:
|
|
1781
|
+
raise
|
|
1782
|
+
return _get_type_adapter(list[FlowRun]).validate_python(response.json())
|
|
1783
|
+
|
|
1784
|
+
def read_work_queue(
|
|
1785
|
+
self,
|
|
1786
|
+
id: UUID,
|
|
1787
|
+
) -> WorkQueue:
|
|
1788
|
+
"""
|
|
1789
|
+
Read a work queue.
|
|
1790
|
+
|
|
1791
|
+
Args:
|
|
1792
|
+
id: the id of the work queue to load
|
|
1793
|
+
|
|
1794
|
+
Raises:
|
|
1795
|
+
prefect.exceptions.ObjectNotFound: If request returns 404
|
|
1796
|
+
httpx.RequestError: If request fails
|
|
1797
|
+
|
|
1798
|
+
Returns:
|
|
1799
|
+
WorkQueue: an instantiated WorkQueue object
|
|
1800
|
+
"""
|
|
1801
|
+
try:
|
|
1802
|
+
response = self._client.get(f"/work_queues/{id}")
|
|
1803
|
+
except httpx.HTTPStatusError as e:
|
|
1804
|
+
if e.response.status_code == status.HTTP_404_NOT_FOUND:
|
|
1805
|
+
raise prefect.exceptions.ObjectNotFound(http_exc=e) from e
|
|
1806
|
+
else:
|
|
1807
|
+
raise
|
|
1808
|
+
return WorkQueue.model_validate(response.json())
|
|
1809
|
+
|
|
1810
|
+
def read_work_queue_status(
|
|
1811
|
+
self,
|
|
1812
|
+
id: UUID,
|
|
1813
|
+
) -> WorkQueueStatusDetail:
|
|
1814
|
+
"""
|
|
1815
|
+
Read a work queue status.
|
|
1816
|
+
|
|
1817
|
+
Args:
|
|
1818
|
+
id: the id of the work queue to load
|
|
1819
|
+
|
|
1820
|
+
Raises:
|
|
1821
|
+
prefect.exceptions.ObjectNotFound: If request returns 404
|
|
1822
|
+
httpx.RequestError: If request fails
|
|
1823
|
+
|
|
1824
|
+
Returns:
|
|
1825
|
+
WorkQueueStatus: an instantiated WorkQueueStatus object
|
|
1826
|
+
"""
|
|
1827
|
+
try:
|
|
1828
|
+
response = self._client.get(f"/work_queues/{id}/status")
|
|
1829
|
+
except httpx.HTTPStatusError as e:
|
|
1830
|
+
if e.response.status_code == status.HTTP_404_NOT_FOUND:
|
|
1831
|
+
raise prefect.exceptions.ObjectNotFound(http_exc=e) from e
|
|
1832
|
+
else:
|
|
1833
|
+
raise
|
|
1834
|
+
return WorkQueueStatusDetail.model_validate(response.json())
|
|
1835
|
+
|
|
1836
|
+
def match_work_queues(
|
|
1837
|
+
self,
|
|
1838
|
+
prefixes: list[str],
|
|
1839
|
+
work_pool_name: Optional[str] = None,
|
|
1840
|
+
) -> list[WorkQueue]:
|
|
1841
|
+
"""
|
|
1842
|
+
Query the Prefect API for work queues with names with a specific prefix.
|
|
1843
|
+
|
|
1844
|
+
Args:
|
|
1845
|
+
prefixes: a list of strings used to match work queue name prefixes
|
|
1846
|
+
work_pool_name: an optional work pool name to scope the query to
|
|
1847
|
+
|
|
1848
|
+
Returns:
|
|
1849
|
+
a list of WorkQueue model representations
|
|
1850
|
+
of the work queues
|
|
1851
|
+
"""
|
|
1852
|
+
page_length = 100
|
|
1853
|
+
current_page = 0
|
|
1854
|
+
work_queues: list[WorkQueue] = []
|
|
1855
|
+
|
|
1856
|
+
while True:
|
|
1857
|
+
new_queues = self.read_work_queues(
|
|
1858
|
+
work_pool_name=work_pool_name,
|
|
1859
|
+
offset=current_page * page_length,
|
|
1860
|
+
limit=page_length,
|
|
1861
|
+
work_queue_filter=WorkQueueFilter(
|
|
1862
|
+
name=WorkQueueFilterName(startswith_=prefixes)
|
|
1863
|
+
),
|
|
1864
|
+
)
|
|
1865
|
+
if not new_queues:
|
|
1866
|
+
break
|
|
1867
|
+
work_queues += new_queues
|
|
1868
|
+
current_page += 1
|
|
1869
|
+
|
|
1870
|
+
return work_queues
|
|
1871
|
+
|
|
1872
|
+
def delete_work_queue_by_id(
|
|
1873
|
+
self,
|
|
1874
|
+
id: UUID,
|
|
1875
|
+
) -> None:
|
|
1876
|
+
"""
|
|
1877
|
+
Delete a work queue by its ID.
|
|
1878
|
+
|
|
1879
|
+
Args:
|
|
1880
|
+
id: the id of the work queue to delete
|
|
1881
|
+
|
|
1882
|
+
Raises:
|
|
1883
|
+
prefect.exceptions.ObjectNotFound: If request returns 404
|
|
1884
|
+
httpx.RequestError: If requests fails
|
|
1885
|
+
"""
|
|
1886
|
+
try:
|
|
1887
|
+
self._client.delete(
|
|
1888
|
+
f"/work_queues/{id}",
|
|
1889
|
+
)
|
|
1890
|
+
except httpx.HTTPStatusError as e:
|
|
1891
|
+
if e.response.status_code == status.HTTP_404_NOT_FOUND:
|
|
1892
|
+
raise prefect.exceptions.ObjectNotFound(http_exc=e) from e
|
|
1893
|
+
else:
|
|
1894
|
+
raise
|
|
1895
|
+
|
|
1896
|
+
def read_work_queues(
|
|
1897
|
+
self,
|
|
1898
|
+
work_pool_name: Optional[str] = None,
|
|
1899
|
+
work_queue_filter: Optional[WorkQueueFilter] = None,
|
|
1900
|
+
limit: Optional[int] = None,
|
|
1901
|
+
offset: Optional[int] = None,
|
|
1902
|
+
) -> list[WorkQueue]:
|
|
1903
|
+
"""
|
|
1904
|
+
Retrieves queues for a work pool.
|
|
1905
|
+
|
|
1906
|
+
Args:
|
|
1907
|
+
work_pool_name: Name of the work pool for which to get queues.
|
|
1908
|
+
work_queue_filter: Criteria by which to filter queues.
|
|
1909
|
+
limit: Limit for the queue query.
|
|
1910
|
+
offset: Limit for the queue query.
|
|
1911
|
+
|
|
1912
|
+
Returns:
|
|
1913
|
+
List of queues for the specified work pool.
|
|
1914
|
+
"""
|
|
1915
|
+
json: dict[str, Any] = {
|
|
1916
|
+
"work_queues": (
|
|
1917
|
+
work_queue_filter.model_dump(mode="json", exclude_unset=True)
|
|
1918
|
+
if work_queue_filter
|
|
1919
|
+
else None
|
|
1920
|
+
),
|
|
1921
|
+
"limit": limit,
|
|
1922
|
+
"offset": offset,
|
|
1923
|
+
}
|
|
1924
|
+
|
|
1925
|
+
if work_pool_name:
|
|
1926
|
+
try:
|
|
1927
|
+
response = self._client.post(
|
|
1928
|
+
f"/work_pools/{work_pool_name}/queues/filter",
|
|
1929
|
+
json=json,
|
|
1930
|
+
)
|
|
1931
|
+
except httpx.HTTPStatusError as e:
|
|
1932
|
+
if e.response.status_code == status.HTTP_404_NOT_FOUND:
|
|
1933
|
+
raise prefect.exceptions.ObjectNotFound(http_exc=e) from e
|
|
1934
|
+
else:
|
|
1935
|
+
raise
|
|
1936
|
+
else:
|
|
1937
|
+
response = self._client.post("/work_queues/filter", json=json)
|
|
1938
|
+
|
|
1939
|
+
return _get_type_adapter(list[WorkQueue]).validate_python(response.json())
|
|
1940
|
+
|
|
1941
|
+
def read_worker_metadata(self) -> dict[str, Any]:
|
|
1942
|
+
"""Reads worker metadata stored in Prefect collection registry."""
|
|
1943
|
+
response = self._client.get("collections/views/aggregate-worker-metadata")
|
|
1944
|
+
response.raise_for_status()
|
|
1945
|
+
return response.json()
|
|
@@ -184,7 +184,11 @@ class GitRepository:
|
|
|
184
184
|
elif isinstance(v, SecretStr):
|
|
185
185
|
credentials[k] = v.get_secret_value()
|
|
186
186
|
|
|
187
|
-
|
|
187
|
+
# Pass the original Block (if it is one) so we can detect its type
|
|
188
|
+
block = self._credentials if isinstance(self._credentials, Block) else None
|
|
189
|
+
return _format_token_from_credentials(
|
|
190
|
+
urlparse(self._url).netloc, credentials, block
|
|
191
|
+
)
|
|
188
192
|
|
|
189
193
|
def _add_credentials_to_url(self, url: str) -> str:
|
|
190
194
|
"""Add credentials to given url if possible."""
|
|
@@ -814,11 +818,18 @@ def create_storage_from_source(
|
|
|
814
818
|
|
|
815
819
|
|
|
816
820
|
def _format_token_from_credentials(
|
|
817
|
-
netloc: str,
|
|
821
|
+
netloc: str,
|
|
822
|
+
credentials: dict[str, Any] | GitCredentials,
|
|
823
|
+
block: Block | None = None,
|
|
818
824
|
) -> str:
|
|
819
825
|
"""
|
|
820
826
|
Formats the credentials block for the git provider.
|
|
821
827
|
|
|
828
|
+
Args:
|
|
829
|
+
netloc: The network location (hostname) of the git repository
|
|
830
|
+
credentials: Dictionary containing credential information
|
|
831
|
+
block: Optional Block object to determine credential type
|
|
832
|
+
|
|
822
833
|
BitBucket supports the following syntax:
|
|
823
834
|
git clone "https://x-token-auth:{token}@bitbucket.org/yourRepoOwnerHere/RepoNameHere"
|
|
824
835
|
git clone https://username:<token>@bitbucketserver.com/scm/projectname/teamsinspace.git
|
|
@@ -842,6 +853,26 @@ def _format_token_from_credentials(
|
|
|
842
853
|
if username:
|
|
843
854
|
return f"{username}:{user_provided_token}"
|
|
844
855
|
|
|
856
|
+
# Check if this is a GitLab credentials block by inspecting the block type
|
|
857
|
+
# This handles self-hosted GitLab instances that don't have "gitlab" in the hostname
|
|
858
|
+
if block is not None:
|
|
859
|
+
block_type_slug = getattr(block, "get_block_type_slug", lambda: None)()
|
|
860
|
+
if block_type_slug == "gitlab-credentials":
|
|
861
|
+
# If token already contains ":", it's likely a deploy token in username:token format
|
|
862
|
+
# Deploy tokens should not have oauth2: prefix (GitLab 16.3.4+ rejects them)
|
|
863
|
+
# See: https://github.com/PrefectHQ/prefect/issues/10832
|
|
864
|
+
if ":" in user_provided_token and not user_provided_token.startswith(
|
|
865
|
+
"oauth2:"
|
|
866
|
+
):
|
|
867
|
+
return user_provided_token
|
|
868
|
+
|
|
869
|
+
# For personal access tokens, add oauth2: prefix
|
|
870
|
+
return (
|
|
871
|
+
f"oauth2:{user_provided_token}"
|
|
872
|
+
if not user_provided_token.startswith("oauth2:")
|
|
873
|
+
else user_provided_token
|
|
874
|
+
)
|
|
875
|
+
|
|
845
876
|
if "bitbucketserver" in netloc:
|
|
846
877
|
# If they pass a BitBucketCredentials block and we don't have both a username and at
|
|
847
878
|
# least one of a password or token and they don't provide a header themselves,
|
|
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-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_experimental/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_experimental/plugins/apply.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_experimental/plugins/spec.py
RENAMED
|
File without changes
|
{prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_experimental/sla/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_experimental/sla/client.py
RENAMED
|
File without changes
|
{prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_experimental/sla/objects.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-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/concurrency/api.py
RENAMED
|
File without changes
|
{prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/concurrency/calls.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
|
{prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/installation.py
RENAMED
|
File without changes
|
{prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/integrations.py
RENAMED
|
File without changes
|
{prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/pydantic/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/pydantic/schemas.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/schemas/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/schemas/bases.py
RENAMED
|
File without changes
|
{prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/schemas/fields.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_internal/websockets.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_vendor/croniter/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/_vendor/croniter/croniter.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
|
{prefect_client-3.4.25.dev3 → prefect_client-3.4.25.dev4}/src/prefect/blocks/notifications.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
|