prefect 3.4.19.dev5__tar.gz → 3.4.20.dev2__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-3.4.19.dev5 → prefect-3.4.20.dev2}/PKG-INFO +1 -1
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/pyproject.toml +1 -1
- prefect-3.4.20.dev2/src/prefect/_build_info.py +5 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/server.py +140 -12
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/schemas/filters.py +18 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/events/filters.py +19 -0
- prefect-3.4.20.dev2/src/prefect/runner/_observers.py +193 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/runner/runner.py +35 -17
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/concurrency_limits.py +16 -11
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/root.py +17 -0
- prefect-3.4.20.dev2/src/prefect/server/database/_migrations/versions/postgresql/2025_09_17_091213_9e83011d1f2a_migrate_v1_concurrency_limits_to_v2.py +188 -0
- prefect-3.4.20.dev2/src/prefect/server/database/_migrations/versions/sqlite/2025_09_17_091213_9e83011d1f2a_migrate_v1_concurrency_limits_to_v2.py +188 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/filters.py +137 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/orchestration/core_policy.py +29 -31
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/schemas/filters.py +112 -0
- prefect-3.4.20.dev2/src/prefect/server/utilities/text_search_parser.py +144 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/root.py +3 -2
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/task_engine.py +2 -0
- prefect-3.4.19.dev5/src/prefect/_build_info.py +0 -5
- prefect-3.4.19.dev5/src/prefect/runner/_observers.py +0 -60
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/.gitignore +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/LICENSE +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/README.md +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/.prefectignore +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/AGENTS.md +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/__main__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_experimental/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_experimental/bundles/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_experimental/bundles/execute.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_experimental/lineage.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_experimental/sla/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_experimental/sla/client.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_experimental/sla/objects.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/_logging.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/compatibility/blocks.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/compatibility/migration.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/compatibility/starlette.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/concurrency/services.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/concurrency/threads.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/installation.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/integrations.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/pytz.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/retries.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/schemas/validators.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/uuid7.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_internal/websockets.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_result_records.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_vendor/croniter/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_vendor/croniter/croniter.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_versioning.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/_waiters.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/agent.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/artifacts.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/assets/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/assets/core.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/assets/materialize.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/automations.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/blocks/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/blocks/abstract.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/blocks/core.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/blocks/fields.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/blocks/notifications.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/blocks/redis.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/blocks/system.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/blocks/webhook.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cache_policies.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/_prompts.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/_types.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/_utilities.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/artifact.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/block.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/cloud/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/cloud/ip_allowlist.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/cloud/webhook.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/concurrency_limit.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/config.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/dashboard.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/deploy/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/deploy/_actions.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/deploy/_commands.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/deploy/_config.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/deploy/_core.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/deploy/_models.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/deploy/_schedules.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/deploy/_sla.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/deploy/_storage.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/deploy/_triggers.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/deployment.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/dev.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/events.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/flow.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/flow_run.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/global_concurrency_limit.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/profile.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/root.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/shell.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/task.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/task_run.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/transfer/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/transfer/_dag.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/transfer/_exceptions.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/transfer/_migratable_resources/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/transfer/_migratable_resources/automations.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/transfer/_migratable_resources/base.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/transfer/_migratable_resources/blocks.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/transfer/_migratable_resources/concurrency_limits.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/transfer/_migratable_resources/deployments.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/transfer/_migratable_resources/flows.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/transfer/_migratable_resources/variables.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/transfer/_migratable_resources/work_pools.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/transfer/_migratable_resources/work_queues.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/variable.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/work_pool.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/work_queue.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/cli/worker.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/base.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/cloud.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/collections.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/constants.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_automations/client.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_deployments/client.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_flows/client.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_logs/client.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_variables/client.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/base.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/orchestration/routes.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/schemas/actions.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/schemas/objects.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/schemas/responses.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/subscriptions.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/types/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/types/flexible_schedule_list.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/client/utilities.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/concurrency/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/concurrency/_asyncio.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/concurrency/_events.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/concurrency/_leases.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/concurrency/asyncio.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/concurrency/context.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/concurrency/services.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/concurrency/sync.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/concurrency/v1/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/concurrency/v1/_asyncio.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/concurrency/v1/_events.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/concurrency/v1/asyncio.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/concurrency/v1/context.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/concurrency/v1/services.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/concurrency/v1/sync.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/context.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/base.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/deployments.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/flow_runs.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/recipes/azure/prefect.yaml +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/recipes/docker/prefect.yaml +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/recipes/docker-azure/prefect.yaml +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/recipes/docker-gcs/prefect.yaml +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/recipes/docker-git/prefect.yaml +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/recipes/docker-s3/prefect.yaml +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/recipes/gcs/prefect.yaml +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/recipes/git/prefect.yaml +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/recipes/local/prefect.yaml +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/recipes/s3/prefect.yaml +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/runner.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/schedules.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/steps/core.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/deployments/templates/prefect.yaml +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/docker/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/docker/docker_image.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/engine.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/events/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/events/actions.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/events/cli/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/events/cli/automations.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/events/clients.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/events/related.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/events/schemas/automations.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/events/schemas/events.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/events/utilities.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/events/worker.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/exceptions.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/filesystems.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/flow_engine.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/flow_runs.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/flows.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/futures.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/infrastructure/base.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/input/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/input/actions.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/input/run_input.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/locking/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/locking/filesystem.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/locking/memory.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/locking/protocol.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/logging/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/logging/clients.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/logging/configuration.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/logging/filters.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/logging/formatters.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/logging/handlers.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/logging/highlighters.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/logging/loggers.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/logging/logging.yml +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/main.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/plugins.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/py.typed +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/results.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/runner/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/runner/server.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/runner/storage.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/runner/submit.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/runner/utils.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/runtime/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/runtime/deployment.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/runtime/flow_run.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/runtime/task_run.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/schedules.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/serializers.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/AGENTS.md +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/admin.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/artifacts.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/automations.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/block_capabilities.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/block_documents.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/block_schemas.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/block_types.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/clients.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/collections.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/csrf_token.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/dependencies.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/deployments.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/events.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/flow_run_states.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/flow_runs.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/flows.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/logs.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/middleware.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/run_history.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/saved_searches.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/server.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/task_run_states.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/task_runs.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/task_workers.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/templates.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/ui/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/ui/flow_runs.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/ui/flows.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/ui/schemas.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/ui/task_runs.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/validation.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/variables.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/work_queues.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/api/workers.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/collection_blocks_data.json +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/concurrency/lease_storage/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/concurrency/lease_storage/filesystem.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/concurrency/lease_storage/memory.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/MIGRATION-NOTES.md +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/env.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/script.py.mako +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2021_01_20_122127_25f4b90a7a42_initial_migration.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_02_13_125213_5f376def75c3_block_data.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_02_13_125213_679e695af6ba_add_configurations.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_02_17_140821_5bff7878e700_add_agents_and_work_queue.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_02_19_205543_d9d98a9ebb6f_rename_block_data_table.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_02_20_103844_4799f657a6a1_add_block_spec_table.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_02_21_111050_d115556a8ab6_index_flowrun_flow_runner_type.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_02_21_150017_b68b3cad6b8a_add_block_spec_id_to_blocks.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_03_10_102713_2e7e1428ffce_index_flow_created.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_04_20_113011_605ebb4e9155_add_flow_run_state_name.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_04_21_095519_14dc68cc5853_backfill_state_name.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_04_23_132803_d38c5e6a9115_rename_block_to_blockbasis_and_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_05_10_145956_1c9390e2f9c6_replace_version_with_checksum_and_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_05_12_202952_dc7a3c6fd3e9_add_flow_run_alerts.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_05_26_135743_724e6dcc6b5d_add_block_schema_capabilities.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_05_28_081821_2fe6fe6ca16e_adds_block_schema_references_and_block_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_05_30_112549_cdcb4018dd0e_rename_run_alerts_to_run_notifications.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_06_04_133535_d60c18774a5d_add_indexes_for_partial_name_matches.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_06_08_121753_3a7c41d3b464_adds_description_and_code_example_to_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_06_13_104234_61c76ee09e02_add_anonymous_column_for_block_documents.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_06_17_204409_d335ad57d5ba_add_block_schema_indexes.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_06_20_123921_7296741dff68_add_protected_column_for_block_types.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_06_21_093732_29ad9bef6147_adds_indexes_for_block_filtering.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_06_29_135432_813ddf14e2de_add_descriptions_to_deployments.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_06_29_152219_2f46fc3f3beb_remove_name_column_for_notification_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_07_06_152528_4cdc2ba709a4_migrates_block_schemas_with_new_secrets_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_07_07_112809_e905fd199258_removes_debugprintnotification_block_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_07_11_170700_112c68143fc3_add_infrastructure_document_id_to_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_07_14_114039_0f27d462bf6d_removing_default_storage_block_document.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_07_19_160058_bb4dc90d3e29_renames_existing_block_types.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_07_21_133134_e085c9cbf8ce_remove_flow_runners.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_07_21_205820_0cf7311d6ea6_add_crashed_state_type.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_07_25_214717_4ff2f2bf81f4_adds_block_type_slug.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_07_25_233637_add97ce1937d_update_deployments_to_include_more_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_07_29_181713_fa985d474982_add_index_to_flow_run_infrastructure_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_08_01_211251_97e212ea6545_add_deployment_version.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_08_06_145817_60e428f92a75_expand_deployment_schema_for_improved_ux.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_08_07_134410_77eb737fc759_add_work_queue_name_to_runs.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_08_07_154550_7737221bf8a4_fix_concurrency_limit_tag_index_name.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_08_18_102804_2d5e000696f1_adds_block_schema_version.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_10_12_102048_22b7cb02e593_add_state_timestamp.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_10_14_172612_ad4b1b4d1e9d_index_deployment_created.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_10_19_093902_6d548701edef_add_created_by.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_10_19_165110_8ea825da948d_track_retries_restarts.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_10_20_101423_3ced59d8806b_add_last_polled.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_10_31_161719_41e5ed9e1034_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_11_05_180555_54c1876c68ae_add_index_for_scheduled_deployments.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_11_10_171740_8caf7c1fd82c_add_coalesced_start_time_indices.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_11_18_161056_5d526270ddb4_add_flowrun_infrastructure_pid.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_11_23_092449_5e4f924ff96c_add_paused_state_type.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2022_11_24_143620_f7587d6c5776_add_worker_tables.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_01_08_180142_d481d5058a19_rename_worker_pools_to_work_pools.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_01_25_164028_9326a6aee18b_add_cancelling_to_state_type_enum.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_01_26_045500_2882cd2df463_implement_artifact_table.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_01_26_045501_2882cd2df464_create_migration_index.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_01_26_045501_2882cd2df465_migrate_artifact_data.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_01_26_045502_2882cd2df466_cleanup_artifact_migration.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_01_26_152801_0a1250a5aa25_expand_work_queue_table.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_01_31_110543_f98ae6d8e2cc_work_queue_data_migration.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_01_31_133052_2a88656f4a23_clean_up_work_queue_migration.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_02_08_151958_cfdfec5d7557_remove_artifact_fk.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_03_01_154651_7d918a392297_remove_flowrun_deployment_fk.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_03_15_153039_4a1a0e4f89de_add_artifact_description_col.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_03_20_175243_aa84ac237ce8_remove_artifact_uq.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_03_20_185238_d20618ce678e_add_artifact_collection_table.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_03_20_185610_46bd82c6279a_add_index_on_artifact.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_04_04_132534_3bf47e3ce2dd_add_index_on_log.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_04_04_172310_6a1eb3d442e4_add_cols_to_artifact_collection.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_04_05_130406_43c94d4c7aa3_add_pull_steps_column_to_deployment.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_04_05_134520_310dda75f561_add_variables.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_04_06_122716_15f5083c16bd_migrate_artifact_data.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_08_02_133838_5f623ddbf7fe_create_concurrency_limit_v2_table.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_09_06_085747_50f8c182c3ca_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_09_20_134544_db0eb3973a54_adds_enforce_parameter_schema_column_to_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_09_21_130125_4e9a6f93eb6c_make_slot_decay_per_second_not_nullable.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_09_25_121806_05ea6f882b1d_remove_flow_run_id_requirement_from_task_run.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_10_12_224511_bfe653bbf62e_add_last_polled_to_deployment.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_10_30_075026_cef24af2ec34_add_block_type_name_to_block_document.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_11_20_084708_9c493c02ca6d_add_trgm_index_to_block_document_name.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_12_07_095320_733ca1903976_create_flow_run_input_table.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2023_12_07_121416_7c453555d3a5_make_flowruninput_flow_run_id_a_foreign_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2024_01_05_101034_6b63c51c31b4_add_sender_to_flowruninput.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2024_01_22_120615_8cf4d4933848_create_deployment_schedule_and_add_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2024_03_05_122228_121699507574_add_job_variables_column_to_flow_runs.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2024_03_13_111215_7a653837d9ba_create_csrf_token_toble.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2024_04_03_112409_aeea5ee6f070_automations_models.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2024_04_04_094418_bd6efa529f03_add_deployment_version_to_flow_run.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2024_04_09_125658_916718e8330f_automation_event_follower.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2024_04_09_132036_954db7517015_trigger_in_index.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2024_04_10_194742_15768c2ec702_add_events_and_event_resources_tables.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2024_04_23_094748_7ae9e431e67a_work_status_fields.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2024_04_25_155240_8905262ec07f_worker_status_field.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2024_05_01_105401_b23c83a12cb4_add_catchup_fields_to_deploymentschedule.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2024_05_21_101457_94622c1663e8_json_variables.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2024_07_15_145240_7495a5013e7e_adding_scope_to_followers.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2024_08_14_150111_97429116795e_add_deployment_concurrency_limit.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2024_09_11_090317_555ed31b284d_add_concurrency_options.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2024_09_16_152051_eaec5004771f_add_deployment_to_global_concurrency_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2024_11_15_150706_68a44144428d_add_labels_column_to_flow_flowrun_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2024_12_04_165333_5d03c01be85e_sync_orm_models_and_migrations.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2025_02_03_125146_c163acd7e8e3_add_parameters_column_to_deployment_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2025_02_05_152418_a03d00b8e275_add_slug_column_to_deployment_schedule.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2025_03_19_143502_b5f5644500d2_add_storage_configuration_to_work_pool.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2025_03_19_145033_06b7c293bc69_create_new_deployment_version_table.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2025_04_04_092158_7a73514ca2d6_add_ix_events__event_related_occurred_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2025_04_29_112902_4160a4841eed_remove_flow_run_notifications.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2025_05_04_193249_1c9bb7f78263_add_scope_leader_idx_to_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2025_06_12_144500_add_automation_tags_aa1234567890.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/postgresql/2025_06_13_160644_3b86c5ea017a_drop_task_run_state_id_foreign_key_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_01_20_115236_9725c1cbee35_initial_migration.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_02_04_093838_619bea85701a_block_data.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_02_15_211737_28ae48128c75_add_configurations.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_02_17_151416_7c91cb86dc4e_add_agents_and_work_queues.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_02_19_210255_4c4a6a138053_rename_block_data_table.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_02_20_103610_e1ff4973a9eb_add_block_spec_table.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_02_21_111238_f327e877e423_index_flowrun_flow_runner_type.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_02_21_145916_c8ff35f94028_add_block_spec_id_to_blocks.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_03_10_102500_71a57ec351d1_index_flow_created.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_04_19_181604_7f5f335cace3_add_flow_run_state_name.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_04_21_113057_db6bde582447_backfill_state_name.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_04_23_114831_fd966d4ad99c_rename_block_to_blockbasis_and_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_04_25_135207_b75d279ba985_replace_version_with_checksum.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_05_12_203158_888a0bb0df7b_add_flow_run_alerts.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_05_19_165808_33439667aeea_add_block_schema_capabilities.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_05_28_081650_e73c6f1fe752_adds_block_schema_referecnes_and_block_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_05_30_100855_d76326ed0d06_rename_run_alerts_to_run_notifications.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_06_04_104048_f65b6ad0b869_add_indexes_for_partial_name_matches.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_06_08_121702_84892301571a_adds_description_and_code_example_to_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_06_13_103943_2d900af9cd07_add_anonymous_column_for_block_documents.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_06_17_204530_9e2a1c08c6f1_add_block_schema_indexes.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_06_20_123823_dff8da7a6c2c_add_protected_column_for_block_types.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_06_21_093640_a205b458d997_adds_indexes_for_block_filtering.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_06_29_133432_3bd87ecdac38_add_descriptions_to_deployments.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_06_29_151832_42762c37b7bc_remove_name_column_for_notification_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_07_06_142824_e2dae764a603_migrates_block_schemas_with_new_secrets_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_07_07_111208_061c7e518b40_removes_debugprintnotification_block_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_07_11_113314_638cbcc2a158_add_infrastructure_block_id_to_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_07_14_113138_56be24fdb383_removing_default_storage_block_document.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_07_19_153432_628a873f0d1a_renames_existing_block_types.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_07_20_113451_2fe8ef6a6514_remove_flow_runners.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_07_25_142515_f335f9633eec_adds_block_type_slug.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_07_25_151028_88c2112b668f_update_deployments_to_include_more_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_07_29_181111_905134444e17_add_index_to_flow_run_infrastructure_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_08_01_211039_24bb2e4a195c_add_deployment_version.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_08_06_130009_296e2665785f_expand_deployment_schema_for_improved_ux.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_08_07_134138_575634b7acd4_add_work_queue_name_to_runs.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_08_07_154319_53c19b31aa09_fix_name_on_concurrency_limit_tag_idx.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_08_18_102527_e757138e954a_adds_block_schema_version.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_10_12_102048_22b7cb02e593_add_state_timestamp.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_10_14_172612_ad4b1b4d1e9d_index_deployment_created.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_10_19_093542_fa319f214160_add_created_by.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_10_19_155810_af52717cf201_track_retries_restarts.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_10_20_101423_3ced59d8806b_add_last_polled.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_11_05_180619_a0284438370e_add_index_for_scheduled_deployments.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_11_10_165921_4f90ad6349bd_add_coalesced_start_time_indices.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_11_18_161332_7201de756d85_add_flowrun_infrastructure_pid.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2022_11_24_143302_fe77ad0dda06_add_worker_tables.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_01_08_175327_bb38729c471a_rename_worker_pools_to_work_pools.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_01_12_000042_f92143d30c24_implement_artifact_table.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_01_12_000043_f92143d30c25_create_migration_index.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_01_12_000043_f92143d30c26_migrate_artifact_data.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_01_12_000044_f92143d30c27_cleanup_artifact_migration.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_01_25_114348_b9bda9f142f1_expand_work_queue_table.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_01_31_105442_1678f2fb8b33_work_queue_data_migration.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_01_31_132409_bfe42b7090d6_clean_up_work_queue_migration.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_02_08_152028_8d148e44e669_remove_artifact_fk.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_03_01_165551_f3df94dca3cc_remove_flowrun_deployment_fk.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_03_15_123850_cf1159bd0d3c_add_artifact_description_col.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_03_20_153925_1d7441c031d0_remove_uq_from_artifact_table.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_03_20_184534_b9aafc3ab936_add_artifact_collection_table.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_03_20_194204_422f8ba9541d_add_artifact_idx.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_04_04_115150_553920ec20e9_add_index_on_log.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_04_04_172555_3e1eb8281d5e_add_cols_to_artifact_collection.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_04_05_120713_340f457b315f_add_column_to_deployments_for_pull_steps.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_04_05_134301_3d46e23593d6_add_variables.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_04_06_122659_2dbcec43c857_migrate_artifact_data.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_08_02_113813_5b0bd3b41a23_create_concurrency_limit_v2_table.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_09_06_084729_c2d001b7dd06_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_09_20_134145_ef674d598dd3_adds_enforce_parameter_schema_column_to_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_09_21_121806_8167af8df781_make_slot_decay_per_second_not_nullable.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_09_25_121806_8167af8df781_remove_flow_run_id_requirement_from_task_run.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_10_12_175815_f3165ae0a213_add_last_polled_to_deployment.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_10_30_075026_cef24af2ec34_add_block_type_name_to_block_document.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_10_30_103720_22ef3915ccd8_index_and_backfill_block_type_name.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_11_20_084708_9c493c02ca6d_add_trgm_index_to_block_document_name.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_12_07_095112_a299308852a7_create_flow_run_input_table.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2023_12_07_121624_35659cc49969_make_flowruninput_flow_run_id_a_foreign_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2024_01_05_101041_c63a0a6dc787_add_sender_to_flowruninput.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2024_01_22_120214_265eb1a2da4c_create_deployment_schedule_and_add_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2024_03_05_115258_342220764f0b_add_job_variables_column_to_flow_runs.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2024_03_13_111316_bacc60edce16_create_csrf_token_toble.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2024_04_03_111618_07ed05dfd4ec_automations_models.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2024_04_04_114538_8644a9595a08_add_deployment_version_to_flow_run.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2024_04_09_125712_cc510aec4689_automation_event_follower.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2024_04_09_131832_2b6c2b548f95_trigger_in_index.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2024_04_10_104304_824e9edafa60_adds_events_tables.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2024_04_23_094701_75c8f17b8b51_work_status_fields.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2024_04_25_155120_a8e62d4c72cf_worker_status_field.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2024_05_01_103824_20fbd53b3cef_add_catchup_fields_to_deploymentschedule.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2024_05_21_123101_2ac65f1758c2_json_variables.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2024_07_15_145350_354f1ede7e9f_adding_scope_to_followers.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2024_08_14_145052_f93e1439f022_add_deployment_concurrency_limit.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2024_09_11_090106_7d6350aea855_add_concurrency_options.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2024_09_16_162719_4ad4658cbefe_add_deployment_to_global_concurrency_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2024_11_15_151042_5952a5498b51_add_labels_column_to_flow_flowrun_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2024_12_04_144924_a49711513ad4_sync_orm_models_and_migrations.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2025_02_03_125228_67f886da208e_add_parameters_column_to_deployment_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2025_02_05_152431_07ecde74d74d_add_slug_column_to_deployment_schedule.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2025_03_19_142603_3457c6ca2360_add_storage_configuration_to_work_pool.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2025_03_19_145018_bbca16f6f218_create_new_deployment_version_table.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2025_04_28_133722_7655f31c5157_remove_flow_run_notifications.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2025_05_04_193544_3c841a1800a1_add_scope_leader_idx_to_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2025_06_12_144500_add_automation_tags_bb2345678901.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/_migrations/versions/sqlite/2025_06_13_164506_8bb517bae6f9_drop_task_run_state_id_foreign_key_.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/alembic.ini +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/alembic_commands.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/configurations.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/dependencies.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/interface.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/orm_models.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/query_components.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/sql/postgres/get-runs-from-worker-queues.sql.jinja +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/database/sql/sqlite/get-runs-from-worker-queues.sql.jinja +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/actions.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/clients.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/counting.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/jinja_filters.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/messaging.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/models/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/models/automations.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/models/composite_trigger_child_firing.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/ordering/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/ordering/db.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/ordering/memory.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/pipeline.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/schemas/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/schemas/automations.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/schemas/events.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/schemas/labelling.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/services/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/services/actions.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/services/event_logger.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/services/event_persister.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/services/triggers.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/storage/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/storage/database.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/stream.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/events/triggers.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/exceptions.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/logs/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/logs/messaging.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/logs/stream.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/artifacts.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/block_documents.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/block_registration.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/block_schemas.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/block_types.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/concurrency_limits.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/concurrency_limits_v2.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/configuration.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/csrf_token.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/deployments.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/events.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/flow_run_input.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/flow_run_states.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/flow_runs.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/flows.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/logs.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/saved_searches.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/task_run_states.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/task_runs.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/task_workers.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/variables.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/work_queues.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/models/workers.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/orchestration/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/orchestration/dependencies.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/orchestration/global_policy.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/orchestration/instrumentation_policies.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/orchestration/policies.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/orchestration/rules.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/schemas/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/schemas/actions.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/schemas/core.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/schemas/graph.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/schemas/internal.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/schemas/responses.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/schemas/schedules.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/schemas/sorting.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/schemas/states.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/schemas/statuses.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/schemas/ui.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/services/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/services/base.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/services/cancellation_cleanup.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/services/foreman.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/services/late_runs.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/services/pause_expirations.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/services/repossessor.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/services/scheduler.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/services/task_run_recorder.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/services/telemetry.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/task_queue.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/404-CGnjnzcd.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/404-CGnjnzcd.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/AppRouterView-B8bK-hU9.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/AppRouterView-B8bK-hU9.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/AppRouterView-jW8a5PTn.css +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Artifact-CRjdjQ-g.css +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Artifact-Czv7z7zE.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Artifact-Czv7z7zE.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/ArtifactKey-BDhdxpsO.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/ArtifactKey-BDhdxpsO.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Artifacts-D0tTBMrp.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Artifacts-D0tTBMrp.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Automation-Q2-2__VL.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Automation-Q2-2__VL.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/AutomationCreate-C_MrlM1J.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/AutomationCreate-C_MrlM1J.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/AutomationEdit-D1JHwT66.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/AutomationEdit-D1JHwT66.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/AutomationWizard-Blh7nUVF.css +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/AutomationWizard.vue_vue_type_script_setup_true_lang-CaSl_iYH.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/AutomationWizard.vue_vue_type_script_setup_true_lang-CaSl_iYH.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Automations-6OuUWvKJ.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Automations-6OuUWvKJ.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Automations-kevE_7lB.css +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/BlockEdit-CBsgd8OK.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/BlockEdit-CBsgd8OK.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/BlockView-C344XKdF.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/BlockView-C344XKdF.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Blocks-RNV_WboM.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Blocks-RNV_WboM.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/BlocksCatalog-D4_iOnMO.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/BlocksCatalog-D4_iOnMO.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/BlocksCatalogCreate-DVelmp27.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/BlocksCatalogCreate-DVelmp27.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/BlocksCatalogView-TFY7pbMR.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/BlocksCatalogView-TFY7pbMR.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/ConcurrencyLimit-g7W9xyHa.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/ConcurrencyLimit-g7W9xyHa.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/ConcurrencyLimits-2YXhce0U.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/ConcurrencyLimits-2YXhce0U.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/ConcurrencyLimits-BepjUWPD.css +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Dashboard-BBxxiOdF.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Dashboard-BBxxiOdF.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Dashboard-jojjFjuH.css +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Deployment-BRu6eqPg.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Deployment-BRu6eqPg.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Deployment-BXCR3zS7.css +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/DeploymentDuplicate-aqG7VjMf.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/DeploymentDuplicate-aqG7VjMf.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/DeploymentEdit-C408BuBF.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/DeploymentEdit-C408BuBF.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Deployments-DCgWBXFn.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Deployments-DCgWBXFn.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Event-D0fhk51i.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Event-D0fhk51i.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Events-DwBr0OvW.css +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Events-DwpI2YYG.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Events-DwpI2YYG.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Flow-B5bcVf8c.css +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Flow-jP5eJNrJ.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Flow-jP5eJNrJ.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/FlowRun-CrGsvBik.css +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/FlowRun-Cw7o1i6A.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/FlowRun-Cw7o1i6A.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/FlowRunCreate-DEUIg9MM.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/FlowRunCreate-DEUIg9MM.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Flows-CTaEIacF.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Flows-CTaEIacF.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Runs-C_wdCuCF.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Runs-C_wdCuCF.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Runs-DWzLEJoO.css +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/RunsPageWithDefaultFilter-CDapVdTS-BlLd3-p0.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/RunsPageWithDefaultFilter-CDapVdTS-BlLd3-p0.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Settings-DTjaFxCR.css +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Settings-Kv6Klncd.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Settings-Kv6Klncd.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/TaskRun-Cf9paLwA.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/TaskRun-Cf9paLwA.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/TaskRun-CqNaY9YA.css +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Unauthenticated-CCVUDHUL.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Unauthenticated-CCVUDHUL.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Variables--lNXeNib.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/Variables--lNXeNib.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/WorkPool-BtM-yFpt.css +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/WorkPool-JY-AZSSv.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/WorkPool-JY-AZSSv.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/WorkPoolCreate-BpHXac-y.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/WorkPoolCreate-BpHXac-y.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/WorkPoolEdit-p-mH-q1q.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/WorkPoolEdit-p-mH-q1q.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/WorkPoolQueue-BAwszk9p.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/WorkPoolQueue-BAwszk9p.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/WorkPoolQueue-CHGh2RsG.css +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/WorkPoolQueueCreate-CRxrDWHw.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/WorkPoolQueueCreate-CRxrDWHw.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/WorkPoolQueueEdit-RfZbNOGo.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/WorkPoolQueueEdit-RfZbNOGo.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/WorkPools-C3puCe3d.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/WorkPools-C3puCe3d.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/WorkQueueToWorkPoolQueueRedirect-L0NJih1T-CcocMBO0.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/WorkQueueToWorkPoolQueueRedirect-L0NJih1T-CcocMBO0.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/_commonjsHelpers-Cpj98o6Y.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/_commonjsHelpers-Cpj98o6Y.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/api-D0hrn_eh.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/api-D0hrn_eh.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/index-B0cSqUYc.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/index-B0cSqUYc.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/index-ChiJwLBB.css +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/mapper-yP6FSD6p.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/mapper-yP6FSD6p.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/useCan-D7kwgq6x.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/useCan-D7kwgq6x.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/usePageTitle-CARQDM5z.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/usePageTitle-CARQDM5z.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/usePrefectApi-BNalMfzZ.js +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/assets/usePrefectApi-BNalMfzZ.js.map +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/decorative_iso-pixel-grid_dark.svg +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/decorative_iso-pixel-grid_light.svg +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/android-chrome-192x192.png +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/android-chrome-512x512.png +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/apple-touch-icon.png +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/browserconfig.xml +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/cancelled.svg +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/completed.svg +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/crashed.svg +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/failed.svg +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/favicon-16x16-dark.png +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/favicon-16x16.png +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/favicon-32x32-dark.png +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/favicon-32x32.png +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/favicon-dark.ico +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/favicon.ico +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/mstile-150x150.png +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/pending.svg +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/running.svg +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/safari-pinned-tab.svg +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/scheduled.svg +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/ico/site.webmanifest +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/index.html +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/marketing-banner-bg-dark.svg +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/marketing-banner-bg-light.svg +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/ui/robots.txt +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/utilities/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/utilities/database.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/utilities/encryption.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/utilities/http.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/utilities/leasing.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/utilities/messaging/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/utilities/messaging/_consumer_names.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/utilities/messaging/memory.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/utilities/names.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/utilities/postgres_listener.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/utilities/schemas/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/utilities/schemas/bases.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/utilities/schemas/serializers.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/utilities/server.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/utilities/subscriptions.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/server/utilities/user_templates.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/base.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/constants.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/context.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/legacy.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/_defaults.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/api.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/cli.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/client.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/cloud.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/deployments.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/experiments.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/flows.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/internal.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/logging.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/results.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/runner.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/server/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/server/api.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/server/concurrency.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/server/database.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/server/deployments.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/server/ephemeral.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/server/events.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/server/logs.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/server/root.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/server/services.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/server/tasks.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/server/ui.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/tasks.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/testing.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/models/worker.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/profiles.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/profiles.toml +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/settings/sources.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/states.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/task_runners.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/task_runs.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/task_worker.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/tasks.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/telemetry/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/telemetry/run_telemetry.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/testing/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/testing/cli.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/testing/docker.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/testing/fixtures.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/testing/standard_test_suites/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/testing/standard_test_suites/blocks.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/testing/utilities.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/transactions.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/types/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/types/_concurrency.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/types/_datetime.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/types/entrypoint.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/types/names.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/_ast.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/_deprecated.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/_engine.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/_git.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/annotations.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/asyncutils.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/callables.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/collections.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/compat.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/context.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/dispatch.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/engine.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/filesystem.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/generics.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/hashing.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/importtools.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/math.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/names.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/processutils.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/pydantic.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/services.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/slugify.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/templating.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/text.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/timeout.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/urls.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/utilities/visualization.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/variables.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/workers/__init__.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/workers/base.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/workers/block.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/workers/cloud.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/workers/process.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/workers/server.py +0 -0
- {prefect-3.4.19.dev5 → prefect-3.4.20.dev2}/src/prefect/workers/utilities.py +0 -0
|
@@ -43,6 +43,7 @@ from prefect.settings import (
|
|
|
43
43
|
PREFECT_SERVER_LOGGING_LEVEL,
|
|
44
44
|
PREFECT_UI_ENABLED,
|
|
45
45
|
Profile,
|
|
46
|
+
get_current_settings,
|
|
46
47
|
load_current_profile,
|
|
47
48
|
load_profiles,
|
|
48
49
|
save_profiles,
|
|
@@ -222,6 +223,84 @@ def prestart_check(base_url: str) -> None:
|
|
|
222
223
|
)
|
|
223
224
|
|
|
224
225
|
|
|
226
|
+
def _validate_multi_worker(workers: int) -> None:
|
|
227
|
+
"""
|
|
228
|
+
Validates the configuration for running multiple Prefect server workers.
|
|
229
|
+
|
|
230
|
+
Multi-worker mode requires specific infrastructure components to ensure proper
|
|
231
|
+
coordination and data consistency across worker processes:
|
|
232
|
+
|
|
233
|
+
- **Database**: PostgreSQL is required (SQLite causes database locking issues)
|
|
234
|
+
- **Messaging**: Redis is required for event messaging (in-memory messaging
|
|
235
|
+
doesn't work across processes)
|
|
236
|
+
|
|
237
|
+
Args:
|
|
238
|
+
workers: The number of worker processes to run. Must be >= 1.
|
|
239
|
+
|
|
240
|
+
Raises:
|
|
241
|
+
exit_with_error: If the configuration is invalid.
|
|
242
|
+
"""
|
|
243
|
+
from prefect.server.utilities.database import get_dialect
|
|
244
|
+
|
|
245
|
+
if workers == 1:
|
|
246
|
+
return
|
|
247
|
+
|
|
248
|
+
if workers < 1:
|
|
249
|
+
exit_with_error("Number of workers must be >= 1")
|
|
250
|
+
|
|
251
|
+
settings = get_current_settings()
|
|
252
|
+
|
|
253
|
+
try:
|
|
254
|
+
dialect = get_dialect(
|
|
255
|
+
settings.server.database.connection_url.get_secret_value()
|
|
256
|
+
)
|
|
257
|
+
except Exception as e:
|
|
258
|
+
exit_with_error(f"Unable to validate database configuration: {e}")
|
|
259
|
+
|
|
260
|
+
if dialect.name != "postgresql":
|
|
261
|
+
exit_with_error(
|
|
262
|
+
"Multi-worker mode (--workers > 1) is not supported with SQLite database."
|
|
263
|
+
)
|
|
264
|
+
|
|
265
|
+
try:
|
|
266
|
+
messaging_cache = settings.server.events.messaging_cache
|
|
267
|
+
messaging_broker = settings.server.events.messaging_broker
|
|
268
|
+
causal_ordering = settings.server.events.causal_ordering
|
|
269
|
+
lease_storage = settings.server.concurrency.lease_storage
|
|
270
|
+
except Exception as e:
|
|
271
|
+
exit_with_error(f"Unable to validate messaging configuration: {e}")
|
|
272
|
+
|
|
273
|
+
if (
|
|
274
|
+
messaging_cache == "prefect.server.utilities.messaging.memory"
|
|
275
|
+
or messaging_broker == "prefect.server.utilities.messaging.memory"
|
|
276
|
+
or causal_ordering == "prefect.server.events.ordering.memory"
|
|
277
|
+
or lease_storage == "prefect.server.concurrency.lease_storage.memory"
|
|
278
|
+
):
|
|
279
|
+
error_message = textwrap.dedent(
|
|
280
|
+
"""
|
|
281
|
+
Multi-worker mode (--workers > 1) requires Redis for messaging and lease storage.
|
|
282
|
+
|
|
283
|
+
Please configure the following settings to use Redis:
|
|
284
|
+
|
|
285
|
+
prefect config set PREFECT_MESSAGING_BROKER="prefect_redis.messaging"
|
|
286
|
+
prefect config set PREFECT_MESSAGING_CACHE="prefect_redis.messaging"
|
|
287
|
+
prefect config set PREFECT_SERVER_EVENTS_CAUSAL_ORDERING="prefect_redis.ordering"
|
|
288
|
+
prefect config set PREFECT_SERVER_CONCURRENCY_LEASE_STORAGE="prefect_redis.lease_storage"
|
|
289
|
+
|
|
290
|
+
You'll also need to configure your Redis connection:
|
|
291
|
+
|
|
292
|
+
export PREFECT_REDIS_MESSAGING_HOST="your-redis-host"
|
|
293
|
+
export PREFECT_REDIS_MESSAGING_PORT="6379"
|
|
294
|
+
export PREFECT_REDIS_MESSAGING_DB="0"
|
|
295
|
+
|
|
296
|
+
For complete setup instructions, see:
|
|
297
|
+
https://docs.prefect.io/v3/how-to-guides/self-hosted/server-cli#multi-worker-api-server
|
|
298
|
+
https://docs.prefect.io/v3/advanced/self-hosted#redis-setup
|
|
299
|
+
"""
|
|
300
|
+
).strip()
|
|
301
|
+
exit_with_error(error_message)
|
|
302
|
+
|
|
303
|
+
|
|
225
304
|
@server_app.command()
|
|
226
305
|
def start(
|
|
227
306
|
host: str = SettingsOption(PREFECT_SERVER_API_HOST),
|
|
@@ -240,6 +319,11 @@ def start(
|
|
|
240
319
|
background: bool = typer.Option(
|
|
241
320
|
False, "--background", "-b", help="Run the server in the background"
|
|
242
321
|
),
|
|
322
|
+
workers: int = typer.Option(
|
|
323
|
+
1,
|
|
324
|
+
"--workers",
|
|
325
|
+
help="Number of worker processes to run. Only runs the webserver API and UI",
|
|
326
|
+
),
|
|
243
327
|
):
|
|
244
328
|
"""
|
|
245
329
|
Start a Prefect server instance
|
|
@@ -251,6 +335,10 @@ def start(
|
|
|
251
335
|
except Exception:
|
|
252
336
|
pass
|
|
253
337
|
|
|
338
|
+
if workers > 1:
|
|
339
|
+
no_services = True
|
|
340
|
+
_validate_multi_worker(workers)
|
|
341
|
+
|
|
254
342
|
server_settings = {
|
|
255
343
|
"PREFECT_API_SERVICES_SCHEDULER_ENABLED": str(scheduler),
|
|
256
344
|
"PREFECT_SERVER_ANALYTICS_ENABLED": str(analytics),
|
|
@@ -297,12 +385,30 @@ def start(
|
|
|
297
385
|
app.console.print(generate_welcome_blurb(base_url, ui_enabled=ui))
|
|
298
386
|
app.console.print("\n")
|
|
299
387
|
|
|
388
|
+
if workers > 1:
|
|
389
|
+
app.console.print(
|
|
390
|
+
f"Starting server with {workers} worker processes.\n", style="blue"
|
|
391
|
+
)
|
|
392
|
+
|
|
300
393
|
if background:
|
|
301
394
|
_run_in_background(
|
|
302
|
-
pid_file,
|
|
395
|
+
pid_file,
|
|
396
|
+
server_settings,
|
|
397
|
+
host,
|
|
398
|
+
port,
|
|
399
|
+
keep_alive_timeout,
|
|
400
|
+
no_services,
|
|
401
|
+
workers,
|
|
303
402
|
)
|
|
304
403
|
else:
|
|
305
|
-
_run_in_foreground(
|
|
404
|
+
_run_in_foreground(
|
|
405
|
+
server_settings,
|
|
406
|
+
host,
|
|
407
|
+
port,
|
|
408
|
+
keep_alive_timeout,
|
|
409
|
+
no_services,
|
|
410
|
+
workers,
|
|
411
|
+
)
|
|
306
412
|
|
|
307
413
|
|
|
308
414
|
def _run_in_background(
|
|
@@ -312,6 +418,7 @@ def _run_in_background(
|
|
|
312
418
|
port: int,
|
|
313
419
|
keep_alive_timeout: int,
|
|
314
420
|
no_services: bool,
|
|
421
|
+
workers: int,
|
|
315
422
|
) -> None:
|
|
316
423
|
command = [
|
|
317
424
|
sys.executable,
|
|
@@ -327,6 +434,8 @@ def _run_in_background(
|
|
|
327
434
|
str(port),
|
|
328
435
|
"--timeout-keep-alive",
|
|
329
436
|
str(keep_alive_timeout),
|
|
437
|
+
"--workers",
|
|
438
|
+
str(workers),
|
|
330
439
|
]
|
|
331
440
|
logger.debug("Opening server process with command: %s", shlex.join(command))
|
|
332
441
|
|
|
@@ -356,6 +465,7 @@ def _run_in_foreground(
|
|
|
356
465
|
port: int,
|
|
357
466
|
keep_alive_timeout: int,
|
|
358
467
|
no_services: bool,
|
|
468
|
+
workers: int,
|
|
359
469
|
) -> None:
|
|
360
470
|
from prefect.server.api.server import create_app
|
|
361
471
|
|
|
@@ -363,16 +473,34 @@ def _run_in_foreground(
|
|
|
363
473
|
with temporary_settings(
|
|
364
474
|
{getattr(prefect.settings, k): v for k, v in server_settings.items()}
|
|
365
475
|
):
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
476
|
+
if workers == 1:
|
|
477
|
+
uvicorn.run(
|
|
478
|
+
app=create_app(final=True, webserver_only=no_services),
|
|
479
|
+
app_dir=str(prefect.__module_path__.parent),
|
|
480
|
+
host=host,
|
|
481
|
+
port=port,
|
|
482
|
+
timeout_keep_alive=keep_alive_timeout,
|
|
483
|
+
log_level=server_settings.get(
|
|
484
|
+
"PREFECT_SERVER_LOGGING_LEVEL", "info"
|
|
485
|
+
).lower(),
|
|
486
|
+
)
|
|
487
|
+
|
|
488
|
+
else:
|
|
489
|
+
os.environ["PREFECT__SERVER_FINAL"] = "1"
|
|
490
|
+
os.environ["PREFECT__SERVER_WEBSERVER_ONLY"] = "1"
|
|
491
|
+
|
|
492
|
+
uvicorn.run(
|
|
493
|
+
app="prefect.server.api.server:create_app",
|
|
494
|
+
factory=True,
|
|
495
|
+
host=host,
|
|
496
|
+
port=port,
|
|
497
|
+
timeout_keep_alive=keep_alive_timeout,
|
|
498
|
+
log_level=server_settings.get(
|
|
499
|
+
"PREFECT_SERVER_LOGGING_LEVEL", "info"
|
|
500
|
+
).lower(),
|
|
501
|
+
workers=workers,
|
|
502
|
+
)
|
|
503
|
+
|
|
376
504
|
finally:
|
|
377
505
|
app.console.print("Server stopped!")
|
|
378
506
|
|
|
@@ -612,6 +612,21 @@ class LogFilterTaskRunId(PrefectBaseModel):
|
|
|
612
612
|
)
|
|
613
613
|
|
|
614
614
|
|
|
615
|
+
class LogFilterTextSearch(PrefectBaseModel):
|
|
616
|
+
"""Filter by text search across log content."""
|
|
617
|
+
|
|
618
|
+
query: str = Field(
|
|
619
|
+
description="Text search query string",
|
|
620
|
+
examples=[
|
|
621
|
+
"error",
|
|
622
|
+
"error -debug",
|
|
623
|
+
'"connection timeout"',
|
|
624
|
+
"+required -excluded",
|
|
625
|
+
],
|
|
626
|
+
max_length=200,
|
|
627
|
+
)
|
|
628
|
+
|
|
629
|
+
|
|
615
630
|
class LogFilter(PrefectBaseModel, OperatorMixin):
|
|
616
631
|
"""Filter logs. Only logs matching all criteria will be returned"""
|
|
617
632
|
|
|
@@ -627,6 +642,9 @@ class LogFilter(PrefectBaseModel, OperatorMixin):
|
|
|
627
642
|
task_run_id: Optional[LogFilterTaskRunId] = Field(
|
|
628
643
|
default=None, description="Filter criteria for `Log.task_run_id`"
|
|
629
644
|
)
|
|
645
|
+
text: Optional[LogFilterTextSearch] = Field(
|
|
646
|
+
default=None, description="Filter criteria for text search across log content"
|
|
647
|
+
)
|
|
630
648
|
|
|
631
649
|
|
|
632
650
|
class FilterSet(PrefectBaseModel):
|
|
@@ -231,6 +231,21 @@ class EventIDFilter(EventDataFilter):
|
|
|
231
231
|
return True
|
|
232
232
|
|
|
233
233
|
|
|
234
|
+
class EventTextFilter(EventDataFilter):
|
|
235
|
+
"""Filter by text search across event content."""
|
|
236
|
+
|
|
237
|
+
query: str = Field(
|
|
238
|
+
description="Text search query string",
|
|
239
|
+
examples=[
|
|
240
|
+
"error",
|
|
241
|
+
"error -debug",
|
|
242
|
+
'"connection timeout"',
|
|
243
|
+
"+required -excluded",
|
|
244
|
+
],
|
|
245
|
+
max_length=200,
|
|
246
|
+
)
|
|
247
|
+
|
|
248
|
+
|
|
234
249
|
class EventOrder(AutoEnum):
|
|
235
250
|
ASC = "ASC"
|
|
236
251
|
DESC = "DESC"
|
|
@@ -263,6 +278,10 @@ class EventFilter(EventDataFilter):
|
|
|
263
278
|
default_factory=lambda: EventIDFilter(id=[]),
|
|
264
279
|
description="Filter criteria for the events' ID",
|
|
265
280
|
)
|
|
281
|
+
text: Optional[EventTextFilter] = Field(
|
|
282
|
+
default=None,
|
|
283
|
+
description="Filter criteria for text search across event content",
|
|
284
|
+
)
|
|
266
285
|
|
|
267
286
|
order: EventOrder = Field(
|
|
268
287
|
default=EventOrder.DESC,
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import asyncio
|
|
4
|
+
import uuid
|
|
5
|
+
from contextlib import AsyncExitStack
|
|
6
|
+
from typing import Any, Protocol
|
|
7
|
+
|
|
8
|
+
from prefect.client.orchestration import PrefectClient, get_client
|
|
9
|
+
from prefect.client.schemas.filters import (
|
|
10
|
+
FlowRunFilter,
|
|
11
|
+
FlowRunFilterId,
|
|
12
|
+
FlowRunFilterState,
|
|
13
|
+
FlowRunFilterStateName,
|
|
14
|
+
FlowRunFilterStateType,
|
|
15
|
+
)
|
|
16
|
+
from prefect.client.schemas.objects import StateType
|
|
17
|
+
from prefect.events.clients import PrefectEventSubscriber, get_events_subscriber
|
|
18
|
+
from prefect.events.filters import EventFilter, EventNameFilter
|
|
19
|
+
from prefect.logging.loggers import get_logger
|
|
20
|
+
from prefect.utilities.services import critical_service_loop
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class OnCancellingCallback(Protocol):
|
|
24
|
+
def __call__(self, flow_run_id: uuid.UUID) -> None: ...
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class FlowRunCancellingObserver:
|
|
28
|
+
def __init__(
|
|
29
|
+
self, on_cancelling: OnCancellingCallback, polling_interval: float = 10
|
|
30
|
+
):
|
|
31
|
+
"""
|
|
32
|
+
Observer that cancels flow runs when they are marked as cancelling.
|
|
33
|
+
|
|
34
|
+
Will use a websocket connection to listen for cancelling flow run events by default with a fallback
|
|
35
|
+
to polling when the websocket connection is lost.
|
|
36
|
+
|
|
37
|
+
Args:
|
|
38
|
+
on_cancelling: Callback to call when a flow run is marked as cancelling.
|
|
39
|
+
flow_run_ids: List of flow run IDs to poll when websocket connection is lost.
|
|
40
|
+
polling_interval: Interval in seconds to poll for cancelling flow runs when websocket connection is lost.
|
|
41
|
+
"""
|
|
42
|
+
self.logger = get_logger("FlowRunCancellingObserver")
|
|
43
|
+
self.on_cancelling = on_cancelling
|
|
44
|
+
self.polling_interval = polling_interval
|
|
45
|
+
self._in_flight_flow_run_ids: set[uuid.UUID] = set()
|
|
46
|
+
self._events_subscriber: PrefectEventSubscriber | None
|
|
47
|
+
self._exit_stack = AsyncExitStack()
|
|
48
|
+
self._consumer_task: asyncio.Task[None] | None = None
|
|
49
|
+
self._polling_task: asyncio.Task[None] | None = None
|
|
50
|
+
self._is_shutting_down = False
|
|
51
|
+
self._client: PrefectClient | None = None
|
|
52
|
+
self._cancelling_flow_run_ids: set[uuid.UUID] = set()
|
|
53
|
+
|
|
54
|
+
def add_in_flight_flow_run_id(self, flow_run_id: uuid.UUID):
|
|
55
|
+
self.logger.debug("Adding in-flight flow run ID: %s", flow_run_id)
|
|
56
|
+
self._in_flight_flow_run_ids.add(flow_run_id)
|
|
57
|
+
|
|
58
|
+
def remove_in_flight_flow_run_id(self, flow_run_id: uuid.UUID):
|
|
59
|
+
self.logger.debug("Removing in-flight flow run ID: %s", flow_run_id)
|
|
60
|
+
self._in_flight_flow_run_ids.discard(flow_run_id)
|
|
61
|
+
|
|
62
|
+
async def _consume_events(self):
|
|
63
|
+
if self._events_subscriber is None:
|
|
64
|
+
raise RuntimeError(
|
|
65
|
+
"Events subscriber not initialized. Please use `async with` to initialize the observer."
|
|
66
|
+
)
|
|
67
|
+
async for event in self._events_subscriber:
|
|
68
|
+
try:
|
|
69
|
+
flow_run_id = uuid.UUID(
|
|
70
|
+
event.resource["prefect.resource.id"].replace(
|
|
71
|
+
"prefect.flow-run.", ""
|
|
72
|
+
)
|
|
73
|
+
)
|
|
74
|
+
self.on_cancelling(flow_run_id)
|
|
75
|
+
except ValueError:
|
|
76
|
+
self.logger.debug(
|
|
77
|
+
"Received event with invalid flow run ID: %s",
|
|
78
|
+
event.resource["prefect.resource.id"],
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
def _start_polling_task(self, task: asyncio.Task[None]):
|
|
82
|
+
if task.cancelled():
|
|
83
|
+
# If the consumer task was cancelled, the observer is shutting down
|
|
84
|
+
# and we don't need to start the polling task
|
|
85
|
+
return
|
|
86
|
+
if exc := task.exception():
|
|
87
|
+
self.logger.debug(
|
|
88
|
+
"The FlowRunCancellingObserver websocket failed with an exception. Switching to polling mode.",
|
|
89
|
+
exc_info=exc,
|
|
90
|
+
)
|
|
91
|
+
self._polling_task = asyncio.create_task(
|
|
92
|
+
critical_service_loop(
|
|
93
|
+
workload=self._check_for_cancelled_flow_runs,
|
|
94
|
+
interval=self.polling_interval,
|
|
95
|
+
jitter_range=0.3,
|
|
96
|
+
)
|
|
97
|
+
)
|
|
98
|
+
self._polling_task.add_done_callback(
|
|
99
|
+
lambda task: self.logger.error(
|
|
100
|
+
"Cancellation polling task failed. Execution will continue, but flow run cancellation will fail.",
|
|
101
|
+
exc_info=task.exception(),
|
|
102
|
+
)
|
|
103
|
+
if task.exception()
|
|
104
|
+
else self.logger.debug("Polling task completed")
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
async def _check_for_cancelled_flow_runs(self):
|
|
108
|
+
if self._is_shutting_down:
|
|
109
|
+
return
|
|
110
|
+
if self._client is None:
|
|
111
|
+
raise RuntimeError(
|
|
112
|
+
"Client not initialized. Please use `async with` to initialize the observer."
|
|
113
|
+
)
|
|
114
|
+
|
|
115
|
+
self.logger.debug("Checking for cancelled flow runs")
|
|
116
|
+
named_cancelling_flow_runs = await self._client.read_flow_runs(
|
|
117
|
+
flow_run_filter=FlowRunFilter(
|
|
118
|
+
state=FlowRunFilterState(
|
|
119
|
+
type=FlowRunFilterStateType(any_=[StateType.CANCELLED]),
|
|
120
|
+
name=FlowRunFilterStateName(any_=["Cancelling"]),
|
|
121
|
+
),
|
|
122
|
+
# Avoid duplicate cancellation calls
|
|
123
|
+
id=FlowRunFilterId(
|
|
124
|
+
any_=list(
|
|
125
|
+
self._in_flight_flow_run_ids - self._cancelling_flow_run_ids
|
|
126
|
+
)
|
|
127
|
+
),
|
|
128
|
+
),
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
typed_cancelling_flow_runs = await self._client.read_flow_runs(
|
|
132
|
+
flow_run_filter=FlowRunFilter(
|
|
133
|
+
state=FlowRunFilterState(
|
|
134
|
+
type=FlowRunFilterStateType(any_=[StateType.CANCELLING]),
|
|
135
|
+
),
|
|
136
|
+
# Avoid duplicate cancellation calls
|
|
137
|
+
id=FlowRunFilterId(
|
|
138
|
+
any_=list(
|
|
139
|
+
self._in_flight_flow_run_ids - self._cancelling_flow_run_ids
|
|
140
|
+
)
|
|
141
|
+
),
|
|
142
|
+
),
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
cancelling_flow_runs = named_cancelling_flow_runs + typed_cancelling_flow_runs
|
|
146
|
+
|
|
147
|
+
if cancelling_flow_runs:
|
|
148
|
+
self.logger.info(
|
|
149
|
+
"Found %s flow runs awaiting cancellation.", len(cancelling_flow_runs)
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
for flow_run in cancelling_flow_runs:
|
|
153
|
+
self._cancelling_flow_run_ids.add(flow_run.id)
|
|
154
|
+
self.on_cancelling(flow_run.id)
|
|
155
|
+
|
|
156
|
+
async def __aenter__(self):
|
|
157
|
+
self._events_subscriber = await self._exit_stack.enter_async_context(
|
|
158
|
+
get_events_subscriber(
|
|
159
|
+
filter=EventFilter(
|
|
160
|
+
event=EventNameFilter(name=["prefect.flow-run.Cancelling"])
|
|
161
|
+
),
|
|
162
|
+
)
|
|
163
|
+
)
|
|
164
|
+
self._client = await self._exit_stack.enter_async_context(get_client())
|
|
165
|
+
self._consumer_task = asyncio.create_task(self._consume_events())
|
|
166
|
+
self._consumer_task.add_done_callback(self._start_polling_task)
|
|
167
|
+
return self
|
|
168
|
+
|
|
169
|
+
async def __aexit__(self, *exc_info: Any):
|
|
170
|
+
self.logger.debug("Shutting down FlowRunCancellingObserver")
|
|
171
|
+
self._is_shutting_down = True
|
|
172
|
+
await self._exit_stack.__aexit__(*exc_info)
|
|
173
|
+
if self._consumer_task is not None:
|
|
174
|
+
self._consumer_task.cancel()
|
|
175
|
+
try:
|
|
176
|
+
await self._consumer_task
|
|
177
|
+
except asyncio.CancelledError:
|
|
178
|
+
pass
|
|
179
|
+
except Exception:
|
|
180
|
+
self.logger.warning(
|
|
181
|
+
"Consumer task exited with exception", exc_info=True
|
|
182
|
+
)
|
|
183
|
+
pass
|
|
184
|
+
|
|
185
|
+
if self._polling_task is not None:
|
|
186
|
+
self._polling_task.cancel()
|
|
187
|
+
try:
|
|
188
|
+
await self._polling_task
|
|
189
|
+
except asyncio.CancelledError:
|
|
190
|
+
pass
|
|
191
|
+
except Exception:
|
|
192
|
+
self.logger.warning("Polling task exited with exception", exc_info=True)
|
|
193
|
+
pass
|
|
@@ -228,6 +228,7 @@ class Runner:
|
|
|
228
228
|
|
|
229
229
|
self._exit_stack = AsyncExitStack()
|
|
230
230
|
self._limiter: anyio.CapacityLimiter | None = None
|
|
231
|
+
self._cancelling_observer: FlowRunCancellingObserver | None = None
|
|
231
232
|
self._client: PrefectClient = get_client()
|
|
232
233
|
self._submitting_flow_run_ids: set[UUID] = set()
|
|
233
234
|
self._cancelling_flow_run_ids: set[UUID] = set()
|
|
@@ -259,6 +260,24 @@ class Runner:
|
|
|
259
260
|
self.__flow_run_process_map_lock = asyncio.Lock()
|
|
260
261
|
return self.__flow_run_process_map_lock
|
|
261
262
|
|
|
263
|
+
async def _add_flow_run_process_map_entry(
|
|
264
|
+
self, flow_run_id: UUID, process_map_entry: ProcessMapEntry
|
|
265
|
+
):
|
|
266
|
+
async with self._flow_run_process_map_lock:
|
|
267
|
+
self._flow_run_process_map[flow_run_id] = process_map_entry
|
|
268
|
+
|
|
269
|
+
if TYPE_CHECKING:
|
|
270
|
+
assert self._cancelling_observer is not None
|
|
271
|
+
self._cancelling_observer.add_in_flight_flow_run_id(flow_run_id)
|
|
272
|
+
|
|
273
|
+
async def _remove_flow_run_process_map_entry(self, flow_run_id: UUID):
|
|
274
|
+
async with self._flow_run_process_map_lock:
|
|
275
|
+
self._flow_run_process_map.pop(flow_run_id, None)
|
|
276
|
+
|
|
277
|
+
if TYPE_CHECKING:
|
|
278
|
+
assert self._cancelling_observer is not None
|
|
279
|
+
self._cancelling_observer.remove_in_flight_flow_run_id(flow_run_id)
|
|
280
|
+
|
|
262
281
|
@sync_compatible
|
|
263
282
|
async def add_deployment(
|
|
264
283
|
self,
|
|
@@ -594,12 +613,11 @@ class Runner:
|
|
|
594
613
|
if self.heartbeat_seconds is not None:
|
|
595
614
|
await self._emit_flow_run_heartbeat(flow_run)
|
|
596
615
|
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
)
|
|
616
|
+
# Only add the process to the map if it is still running
|
|
617
|
+
if process.returncode is None:
|
|
618
|
+
await self._add_flow_run_process_map_entry(
|
|
619
|
+
flow_run.id, ProcessMapEntry(pid=process.pid, flow_run=flow_run)
|
|
620
|
+
)
|
|
603
621
|
|
|
604
622
|
while True:
|
|
605
623
|
# Wait until flow run execution is complete and the process has been removed from the map
|
|
@@ -641,14 +659,14 @@ class Runner:
|
|
|
641
659
|
if self.heartbeat_seconds is not None:
|
|
642
660
|
await self._emit_flow_run_heartbeat(flow_run)
|
|
643
661
|
|
|
644
|
-
self.
|
|
645
|
-
pid=process.pid, flow_run=flow_run
|
|
662
|
+
await self._add_flow_run_process_map_entry(
|
|
663
|
+
flow_run.id, ProcessMapEntry(pid=process.pid, flow_run=flow_run)
|
|
646
664
|
)
|
|
647
665
|
self._flow_run_bundle_map[flow_run.id] = bundle
|
|
648
666
|
|
|
649
667
|
await anyio.to_thread.run_sync(process.join)
|
|
650
668
|
|
|
651
|
-
self.
|
|
669
|
+
await self._remove_flow_run_process_map_entry(flow_run.id)
|
|
652
670
|
|
|
653
671
|
flow_run_logger = self._get_flow_run_logger(flow_run)
|
|
654
672
|
if process.exitcode is None:
|
|
@@ -1263,10 +1281,10 @@ class Runner:
|
|
|
1263
1281
|
)
|
|
1264
1282
|
|
|
1265
1283
|
if readiness_result and not isinstance(readiness_result, Exception):
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1284
|
+
await self._add_flow_run_process_map_entry(
|
|
1285
|
+
flow_run.id,
|
|
1286
|
+
ProcessMapEntry(pid=readiness_result.pid, flow_run=flow_run),
|
|
1287
|
+
)
|
|
1270
1288
|
# Heartbeats are opt-in and only emitted if a heartbeat frequency is set
|
|
1271
1289
|
if self.heartbeat_seconds is not None:
|
|
1272
1290
|
await self._emit_flow_run_heartbeat(flow_run)
|
|
@@ -1321,8 +1339,7 @@ class Runner:
|
|
|
1321
1339
|
finally:
|
|
1322
1340
|
self._release_limit_slot(flow_run.id)
|
|
1323
1341
|
|
|
1324
|
-
|
|
1325
|
-
self._flow_run_process_map.pop(flow_run.id, None)
|
|
1342
|
+
await self._remove_flow_run_process_map_entry(flow_run.id)
|
|
1326
1343
|
|
|
1327
1344
|
if status_code != 0 and not self._rescheduling:
|
|
1328
1345
|
await self._propose_crashed_state(
|
|
@@ -1496,11 +1513,12 @@ class Runner:
|
|
|
1496
1513
|
if not hasattr(self, "_loop") or not self._loop:
|
|
1497
1514
|
self._loop = asyncio.get_event_loop()
|
|
1498
1515
|
|
|
1499
|
-
await self._exit_stack.enter_async_context(
|
|
1516
|
+
self._cancelling_observer = await self._exit_stack.enter_async_context(
|
|
1500
1517
|
FlowRunCancellingObserver(
|
|
1501
1518
|
on_cancelling=lambda flow_run_id: self._runs_task_group.start_soon(
|
|
1502
1519
|
self._cancel_run, flow_run_id
|
|
1503
|
-
)
|
|
1520
|
+
),
|
|
1521
|
+
polling_interval=self.query_seconds,
|
|
1504
1522
|
)
|
|
1505
1523
|
)
|
|
1506
1524
|
await self._exit_stack.enter_async_context(self._client)
|
|
@@ -8,6 +8,7 @@ continues to work for backward compatibility.
|
|
|
8
8
|
|
|
9
9
|
from __future__ import annotations
|
|
10
10
|
|
|
11
|
+
import logging
|
|
11
12
|
from datetime import timedelta
|
|
12
13
|
from typing import List, Optional, Sequence
|
|
13
14
|
from uuid import UUID
|
|
@@ -17,6 +18,7 @@ from fastapi import Body, Depends, HTTPException, Path, Response, status
|
|
|
17
18
|
import prefect.server.api.dependencies as dependencies
|
|
18
19
|
import prefect.server.models as models
|
|
19
20
|
import prefect.server.schemas as schemas
|
|
21
|
+
from prefect.logging.loggers import get_logger
|
|
20
22
|
from prefect.server.api.concurrency_limits_v2 import MinimalConcurrencyLimitResponse
|
|
21
23
|
from prefect.server.concurrency.lease_storage import (
|
|
22
24
|
ConcurrencyLimitLeaseMetadata,
|
|
@@ -25,7 +27,6 @@ from prefect.server.concurrency.lease_storage import (
|
|
|
25
27
|
from prefect.server.database import PrefectDBInterface, provide_database_interface
|
|
26
28
|
from prefect.server.models import concurrency_limits
|
|
27
29
|
from prefect.server.models import concurrency_limits_v2 as cl_v2_models
|
|
28
|
-
from prefect.server.utilities.leasing import ResourceLease
|
|
29
30
|
from prefect.server.utilities.server import PrefectRouter
|
|
30
31
|
from prefect.settings import PREFECT_TASK_RUN_TAG_CONCURRENCY_SLOT_WAIT_SECONDS
|
|
31
32
|
from prefect.types._concurrency import ConcurrencyLeaseHolder
|
|
@@ -33,7 +34,7 @@ from prefect.types._concurrency import ConcurrencyLeaseHolder
|
|
|
33
34
|
router: PrefectRouter = PrefectRouter(
|
|
34
35
|
prefix="/concurrency_limits", tags=["Concurrency Limits"]
|
|
35
36
|
)
|
|
36
|
-
|
|
37
|
+
logger: logging.Logger = get_logger(__name__)
|
|
37
38
|
# V1 clients cannot renew leases; use a long TTL
|
|
38
39
|
V1_LEASE_TTL = timedelta(days=100 * 365) # ~100 years
|
|
39
40
|
|
|
@@ -597,7 +598,7 @@ async def decrement_concurrency_limits_v1(
|
|
|
597
598
|
|
|
598
599
|
# Find and revoke lease for V2 limits
|
|
599
600
|
if v2_limits:
|
|
600
|
-
|
|
601
|
+
leases_ids_to_revoke: set[UUID] = set()
|
|
601
602
|
|
|
602
603
|
for limit in v2_limits:
|
|
603
604
|
holders = await lease_storage.list_holders_for_limit(limit.id)
|
|
@@ -605,15 +606,19 @@ async def decrement_concurrency_limits_v1(
|
|
|
605
606
|
if holder.id == task_run_id:
|
|
606
607
|
lease = await lease_storage.read_lease(lease_id)
|
|
607
608
|
if lease:
|
|
608
|
-
|
|
609
|
+
leases_ids_to_revoke.add(lease.id)
|
|
609
610
|
|
|
610
|
-
for
|
|
611
|
-
await
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
611
|
+
for lease_id in leases_ids_to_revoke:
|
|
612
|
+
lease = await lease_storage.read_lease(lease_id)
|
|
613
|
+
if lease:
|
|
614
|
+
await cl_v2_models.bulk_decrement_active_slots(
|
|
615
|
+
session=session,
|
|
616
|
+
concurrency_limit_ids=lease.resource_ids,
|
|
617
|
+
slots=lease.metadata.slots if lease.metadata else 0,
|
|
618
|
+
)
|
|
619
|
+
await lease_storage.revoke_lease(lease.id)
|
|
620
|
+
else:
|
|
621
|
+
logger.warning(f"Lease {lease_id} not found during decrement")
|
|
617
622
|
|
|
618
623
|
results.extend(
|
|
619
624
|
[
|