prefect-client 3.7.5.dev3__tar.gz → 3.7.5.dev5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/PKG-INFO +1 -1
- prefect_client-3.7.5.dev5/src/prefect/_build_info.py +5 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/concurrency/threads.py +9 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/AGENTS.md +2 -2
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/_event_emitter.py +24 -16
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/background_workers.py +2 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/flow_runs.py +78 -5
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/server.py +17 -14
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/_types.py +1 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/server/services.py +6 -0
- prefect_client-3.7.5.dev3/src/prefect/_build_info.py +0 -5
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/.gitignore +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/LICENSE +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/README.md +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/hatch_build.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/pyproject.toml +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/.prefectignore +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/AGENTS.md +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/__main__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/_launchers.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/bundles/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/bundles/execute.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/plugins/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/plugins/apply.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/plugins/manager.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/plugins/spec.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/sla/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/sla/client.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/sla/objects.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_flow_run_suspension.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/_logging.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/analytics/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/analytics/ci_detection.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/analytics/client.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/analytics/device_id.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/analytics/emit.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/analytics/enabled.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/analytics/events.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/analytics/milestones.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/analytics/notice.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/analytics/service.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/ast_utils.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/buildx.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/compatibility/backports.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/compatibility/blocks.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/compatibility/deprecated_paths.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/compatibility/migration.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/compatibility/starlette.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/concurrency/services.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/control_listener.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/deprecated.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/engine.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/git.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/infrastructure_exit_codes.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/installation.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/integrations.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/launchers.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/lazy.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/metrics.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/observability.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/observers.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/plugins/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/plugins/apply.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/plugins/collections.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/plugins/diagnostics.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/plugins/manager.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/plugins/spec.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/plugins/startup.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/pydantic/validated_func.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/pytz.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/result_records.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/retries.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/schema.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/schemas/_registry.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/schemas/validators.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/send_entrypoint_logs.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/states.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/testing.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/urls.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/uuid7.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/version_checking.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/versioning.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/waiters.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/websockets.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_sdk/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_sdk/fetcher.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_sdk/generator.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_sdk/models.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_sdk/naming.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_sdk/renderer.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_sdk/schema_converter.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_sdk/templates/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_sdk/templates/sdk.py.jinja +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_sdk/types.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_sdk/unions.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_vendor/croniter/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_vendor/croniter/croniter.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/agent.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/analytics/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/artifacts.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/assets/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/assets/core.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/assets/materialize.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/automations.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/blocks/AGENTS.md +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/blocks/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/blocks/abstract.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/blocks/core.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/blocks/fields.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/blocks/notifications.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/blocks/redis.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/blocks/system.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/blocks/webhook.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/bundles/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/bundles/_file_collector.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/bundles/_ignore_filter.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/bundles/_path_resolver.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/bundles/_zip_builder.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/bundles/_zip_extractor.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/bundles/execute.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/cache_policies.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/AGENTS.md +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/attribution.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/base.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/cloud.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/collections.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/constants.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_automations/client.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_deployments/client.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_events/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_events/client.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_flows/client.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_logs/client.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_variables/client.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/base.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/orchestration/routes.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/schemas/actions.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/schemas/events.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/schemas/filters.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/schemas/objects.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/schemas/responses.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/schemas/worker_channel.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/subscriptions.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/types/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/types/flexible_schedule_list.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/client/utilities.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/concurrency/AGENTS.md +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/concurrency/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/concurrency/_asyncio.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/concurrency/_events.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/concurrency/_leases.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/concurrency/_sync.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/concurrency/asyncio.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/concurrency/context.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/concurrency/services.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/concurrency/sync.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/concurrency/v1/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/concurrency/v1/_asyncio.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/concurrency/v1/_events.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/concurrency/v1/asyncio.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/concurrency/v1/context.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/concurrency/v1/services.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/concurrency/v1/sync.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/context.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/deployments/AGENTS.md +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/deployments/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/deployments/base.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/deployments/deployments.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/deployments/flow_runs.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/deployments/runner.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/deployments/schedules.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/deployments/steps/core.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/docker/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/docker/_buildx.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/docker/docker_image.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/engine.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/events/AGENTS.md +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/events/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/events/actions.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/events/clients.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/events/filters.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/events/related.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/events/schemas/automations.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/events/schemas/events.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/events/subscribers.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/events/utilities.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/events/worker.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/exceptions.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/filesystems.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/flow_engine.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/flow_runs.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/flows.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/futures.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/infrastructure/base.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/input/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/input/actions.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/input/run_input.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/locking/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/locking/_filelock.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/locking/filesystem.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/locking/memory.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/locking/protocol.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/logging/AGENTS.md +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/logging/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/logging/clients.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/logging/configuration.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/logging/filters.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/logging/formatters.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/logging/handlers.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/logging/highlighters.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/logging/loggers.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/logging/logging.yml +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/main.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/plugins.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/py.typed +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/results.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/_cancel_finalizer.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/_cancellation_manager.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/_control_channel.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/_deployment_registry.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/_flow_resolver.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/_flow_run_executor.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/_hook_runner.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/_limit_manager.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/_process_manager.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/_scheduled_run_poller.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/_starter_bundle.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/_starter_direct.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/_starter_engine.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/_state_proposer.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/_workspace_resolver.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/_workspace_starter.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/runner.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/server.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/storage.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runtime/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runtime/deployment.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runtime/flow_run.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runtime/task_run.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/schedules.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/serializers.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/_ui_static.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/admin.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/artifacts.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/automations.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/block_capabilities.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/block_documents.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/block_schemas.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/block_types.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/clients.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/collections.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/concurrency_limits.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/csrf_token.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/dependencies.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/deployments.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/events.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/flow_run_states.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/flows.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/logs.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/middleware.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/root.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/run_history.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/saved_searches.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/task_run_states.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/task_runs.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/task_workers.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/templates.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/ui/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/ui/flow_runs.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/ui/flows.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/ui/schemas.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/ui/task_runs.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/validation.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/variables.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/work_queues.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/workers.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/AGENTS.md +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/base.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/constants.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/context.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/legacy.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/_defaults.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/api.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/cli.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/client.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/cloud.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/deployments.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/events.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/experiments.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/flows.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/internal.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/logging.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/plugins.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/results.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/root.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/runner.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/server/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/server/api.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/server/concurrency.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/server/database.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/server/deployments.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/server/docket.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/server/ephemeral.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/server/events.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/server/logs.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/server/root.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/server/tasks.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/server/ui.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/server/worker_channel.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/tasks.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/telemetry.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/testing.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/models/worker.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/profiles.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/profiles.toml +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/settings/sources.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/states.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/task_engine.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/task_runners.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/task_runs.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/task_worker.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/tasks.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/telemetry/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/telemetry/run_telemetry.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/transactions.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/types/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/types/_concurrency.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/types/_datetime.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/types/entrypoint.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/types/names.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/AGENTS.md +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/annotations.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/asyncutils/AGENTS.md +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/asyncutils/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/callables/AGENTS.md +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/callables/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/collections.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/compat.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/context.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/dispatch.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/engine/AGENTS.md +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/engine/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/filesystem/AGENTS.md +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/filesystem/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/generics.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/hashing.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/importtools.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/math.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/names.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/processutils/AGENTS.md +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/processutils/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/pydantic.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/schema_tools/AGENTS.md +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/services.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/slugify.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/templating/AGENTS.md +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/templating/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/text.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/timeout.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/urls.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/utilities/visualization.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/variables.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/workers/AGENTS.md +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/workers/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/workers/_cleanup.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/workers/_cleanup_handlers.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/workers/_worker_channel/__init__.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/workers/_worker_channel/_protocol.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/workers/_worker_channel/_state.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/workers/_worker_channel/_sync.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/workers/_worker_channel/_transport.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/workers/base.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/workers/block.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/workers/cloud.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/workers/process.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/workers/server.py +0 -0
- {prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/workers/utilities.py +0 -0
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/concurrency/threads.py
RENAMED
|
@@ -38,9 +38,18 @@ def _reset_after_fork_in_child():
|
|
|
38
38
|
|
|
39
39
|
This handler is called by os.register_at_fork() in the child process after fork().
|
|
40
40
|
"""
|
|
41
|
+
global _global_loop, _run_sync_loop
|
|
42
|
+
|
|
41
43
|
for instance in list(_active_instances):
|
|
42
44
|
instance.reset_for_fork()
|
|
43
45
|
|
|
46
|
+
# Clear global references so get_global_loop() / get_run_sync_loop() create
|
|
47
|
+
# fresh instances. After fork the old EventLoopThread objects have a stale
|
|
48
|
+
# Thread whose is_alive() still returns True (the dead thread's tstate lock
|
|
49
|
+
# is held), so the "is the thread alive?" guard in the getters never fires.
|
|
50
|
+
_global_loop = None
|
|
51
|
+
_run_sync_loop = None
|
|
52
|
+
|
|
44
53
|
|
|
45
54
|
# Register fork handler if supported (POSIX systems)
|
|
46
55
|
if hasattr(os, "register_at_fork"):
|
|
@@ -15,7 +15,7 @@ Thin facade over single-responsibility extracted classes. New behavior belongs i
|
|
|
15
15
|
| CancelFinalizer | _cancel_finalizer.py | Persist Cancelled state after kill; fall back to Crashed if state cannot be confirmed |
|
|
16
16
|
| ControlChannel | _control_channel.py | Runner-side TCP loopback IPC for delivering cancel intent to child processes before kill |
|
|
17
17
|
| HookRunner | _hook_runner.py | on_cancellation / on_crashed hook execution |
|
|
18
|
-
| EventEmitter | _event_emitter.py | Event emission via EventsClient; degrades to NullEventsClient on WebSocket
|
|
18
|
+
| EventEmitter | _event_emitter.py | Event emission via EventsClient; degrades to NullEventsClient on any WebSocket connection failure |
|
|
19
19
|
| LimitManager | _limit_manager.py | Concurrency limiting |
|
|
20
20
|
| DeploymentRegistry | _deployment_registry.py | Deployment/flow/storage/bundle maps |
|
|
21
21
|
| ScheduledRunPoller | _scheduled_run_poller.py | Poll loop, run discovery, scheduling |
|
|
@@ -49,7 +49,7 @@ These will be removed once internal callers (notably ProcessWorker) are migrated
|
|
|
49
49
|
|
|
50
50
|
## EventEmitter WebSocket Degradation
|
|
51
51
|
|
|
52
|
-
`EventEmitter.__aenter__` catches
|
|
52
|
+
`EventEmitter.__aenter__` catches connection failures and silently swaps the failed client for a `NullEventsClient` — events are non-critical telemetry (the runner emits only `prefect.runner.cancelled-flow-run`), so the flow run must not crash when the events WebSocket is unreachable. Two failure classes are caught (`_NONFATAL_CONNECTION_EXCEPTIONS`): permanent rejections (`websockets.exceptions.InvalidStatus`, i.e. HTTP 4xx — e.g. a client ≤3.6.13 connecting to a server ≥3.6.14 with `PREFECT_SERVER_API_AUTH_STRING` configured) and transient failures (`RETRYABLE_EXCEPTIONS` from `events/clients.py`: `ConnectionClosed`, `TimeoutError`, `OSError`) that outlive the events client's own reconnection attempts. A `WARNING` is logged. If `__aenter__` raises, `__aexit__` is **not** called on the original client (it was never successfully entered); the replacement `NullEventsClient` is entered instead.
|
|
53
53
|
|
|
54
54
|
## AsyncExitStack LIFO Ordering
|
|
55
55
|
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/runner/_event_emitter.py
RENAMED
|
@@ -5,7 +5,7 @@ from typing import TYPE_CHECKING, Any, Callable
|
|
|
5
5
|
from cachetools import TTLCache
|
|
6
6
|
from websockets.exceptions import InvalidStatus as _WsInvalidStatus
|
|
7
7
|
|
|
8
|
-
from prefect.events.clients import NullEventsClient
|
|
8
|
+
from prefect.events.clients import RETRYABLE_EXCEPTIONS, NullEventsClient
|
|
9
9
|
from prefect.events.related import tags_as_related_resources
|
|
10
10
|
from prefect.events.schemas.events import Event, RelatedResource, Resource
|
|
11
11
|
from prefect.logging import get_logger
|
|
@@ -18,12 +18,19 @@ if TYPE_CHECKING:
|
|
|
18
18
|
from prefect.client.schemas.responses import DeploymentResponse
|
|
19
19
|
from prefect.events.clients import EventsClient
|
|
20
20
|
|
|
21
|
-
#
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
#
|
|
25
|
-
#
|
|
26
|
-
|
|
21
|
+
# Connection failures that must not crash the flow run. The events WebSocket
|
|
22
|
+
# carries non-critical telemetry, so a failure to connect degrades to
|
|
23
|
+
# NullEventsClient rather than taking the flow run down with it.
|
|
24
|
+
# - _WsInvalidStatus: the server rejected the handshake (HTTP 401/403), e.g. a
|
|
25
|
+
# client <=3.6.13 connecting to a server >=3.6.14 that has
|
|
26
|
+
# PREFECT_SERVER_API_AUTH_STRING configured. A permanent failure.
|
|
27
|
+
# - RETRYABLE_EXCEPTIONS: transient failures (handshake timeout, dropped
|
|
28
|
+
# connection, network errors) that the events client already retries; once
|
|
29
|
+
# those retries are exhausted the error must still not be fatal here.
|
|
30
|
+
_NONFATAL_CONNECTION_EXCEPTIONS: tuple[type[Exception], ...] = (
|
|
31
|
+
_WsInvalidStatus,
|
|
32
|
+
*RETRYABLE_EXCEPTIONS,
|
|
33
|
+
)
|
|
27
34
|
|
|
28
35
|
|
|
29
36
|
def _default_get_events_client() -> "EventsClient":
|
|
@@ -60,17 +67,18 @@ class EventEmitter:
|
|
|
60
67
|
try:
|
|
61
68
|
await self._events_client.__aenter__()
|
|
62
69
|
except _NONFATAL_CONNECTION_EXCEPTIONS as exc:
|
|
63
|
-
# The events WebSocket
|
|
64
|
-
#
|
|
65
|
-
# >=3.6.14
|
|
66
|
-
#
|
|
67
|
-
#
|
|
68
|
-
#
|
|
70
|
+
# The events WebSocket could not be established -- either rejected by
|
|
71
|
+
# the server (HTTP 401/403, e.g. a client <=3.6.13 connecting to a
|
|
72
|
+
# server >=3.6.14 with PREFECT_SERVER_API_AUTH_STRING configured) or a
|
|
73
|
+
# transient connection failure that outlived the events client's own
|
|
74
|
+
# retries. Events are non-critical telemetry, so degrade gracefully
|
|
75
|
+
# instead of crashing the flow run.
|
|
69
76
|
self._logger.warning(
|
|
70
77
|
"Unable to connect to the events WebSocket (%s). "
|
|
71
|
-
"Event data will not be emitted for this runner
|
|
72
|
-
"Upgrade the Prefect client to >=3.6.14 to
|
|
73
|
-
"
|
|
78
|
+
"Event data will not be emitted for this runner; the flow run "
|
|
79
|
+
"will continue. Upgrade the Prefect client to >=3.6.14 to "
|
|
80
|
+
"restore event support if the server has authentication "
|
|
81
|
+
"configured.",
|
|
74
82
|
exc,
|
|
75
83
|
)
|
|
76
84
|
# __aenter__ failed, so __aexit__ must NOT be called on the original
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/server/api/background_workers.py
RENAMED
|
@@ -14,6 +14,7 @@ from prefect.server.models.work_queues import mark_work_queues_ready
|
|
|
14
14
|
from prefect.server.services.cancellation_cleanup import (
|
|
15
15
|
cancel_child_task_runs,
|
|
16
16
|
cancel_subflow_run,
|
|
17
|
+
handle_cancelling_timeout,
|
|
17
18
|
)
|
|
18
19
|
from prefect.server.services.db_vacuum import (
|
|
19
20
|
vacuum_events_with_retention_overrides,
|
|
@@ -40,6 +41,7 @@ task_functions: list[Callable[..., Any]] = [
|
|
|
40
41
|
delete_task_run_logs,
|
|
41
42
|
delete_flow_run_logs,
|
|
42
43
|
# Find-and-flood pattern tasks used by perpetual services
|
|
44
|
+
handle_cancelling_timeout,
|
|
43
45
|
cancel_child_task_runs,
|
|
44
46
|
cancel_subflow_run,
|
|
45
47
|
fail_expired_pause,
|
|
@@ -13,13 +13,14 @@ from uuid import UUID
|
|
|
13
13
|
import orjson
|
|
14
14
|
import sqlalchemy as sa
|
|
15
15
|
from docket import Depends as DocketDepends
|
|
16
|
-
from docket import Retry
|
|
16
|
+
from docket import Docket, Retry
|
|
17
17
|
from fastapi import (
|
|
18
18
|
Body,
|
|
19
19
|
Depends,
|
|
20
20
|
HTTPException,
|
|
21
21
|
Path,
|
|
22
22
|
Query,
|
|
23
|
+
Request,
|
|
23
24
|
Response,
|
|
24
25
|
)
|
|
25
26
|
from fastapi.encoders import jsonable_encoder
|
|
@@ -53,6 +54,9 @@ from prefect.server.schemas.responses import (
|
|
|
53
54
|
FlowRunPaginationResponse,
|
|
54
55
|
OrchestrationResult,
|
|
55
56
|
)
|
|
57
|
+
from prefect.server.services.cancellation_cleanup import (
|
|
58
|
+
maybe_schedule_cancelling_timeout_check_for_state,
|
|
59
|
+
)
|
|
56
60
|
from prefect.server.utilities.server import PrefectRouter
|
|
57
61
|
from prefect.types import DateTime
|
|
58
62
|
from prefect.types._datetime import earliest_possible_datetime, now
|
|
@@ -66,9 +70,41 @@ logger: "logging.Logger" = get_logger("server.api")
|
|
|
66
70
|
router: PrefectRouter = PrefectRouter(prefix="/flow_runs", tags=["Flow Runs"])
|
|
67
71
|
|
|
68
72
|
|
|
73
|
+
def _get_request_docket(request: Request) -> Docket | None:
|
|
74
|
+
return getattr(request.app.state, "docket", None)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
async def _maybe_schedule_cancelling_timeout_check_for_state(
|
|
78
|
+
*,
|
|
79
|
+
request: Request,
|
|
80
|
+
flow_run_id: UUID,
|
|
81
|
+
state: schemas.states.State | None,
|
|
82
|
+
) -> None:
|
|
83
|
+
docket = _get_request_docket(request)
|
|
84
|
+
if docket is None:
|
|
85
|
+
return
|
|
86
|
+
|
|
87
|
+
try:
|
|
88
|
+
await maybe_schedule_cancelling_timeout_check_for_state(
|
|
89
|
+
docket=docket,
|
|
90
|
+
flow_run_id=flow_run_id,
|
|
91
|
+
state=state,
|
|
92
|
+
)
|
|
93
|
+
except Exception:
|
|
94
|
+
logger.exception(
|
|
95
|
+
"Failed to schedule CANCELLING timeout check; allowing accepted "
|
|
96
|
+
"state transition to proceed",
|
|
97
|
+
extra={
|
|
98
|
+
"flow_run_id": str(flow_run_id),
|
|
99
|
+
"flow_run_state_id": str(state.id) if state and state.id else None,
|
|
100
|
+
},
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
|
|
69
104
|
@router.post("/")
|
|
70
105
|
async def create_flow_run(
|
|
71
106
|
flow_run: schemas.actions.FlowRunCreate,
|
|
107
|
+
request: Request,
|
|
72
108
|
db: PrefectDBInterface = Depends(provide_database_interface),
|
|
73
109
|
response: Response = None, # type: ignore
|
|
74
110
|
created_by: Optional[schemas.core.CreatedBy] = Depends(dependencies.get_created_by),
|
|
@@ -124,13 +160,27 @@ async def create_flow_run(
|
|
|
124
160
|
flow_run=flow_run_object,
|
|
125
161
|
orchestration_parameters=orchestration_parameters,
|
|
126
162
|
)
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
163
|
+
created = model.created >= right_now
|
|
164
|
+
timeout_check_state = (
|
|
165
|
+
schemas.states.State.from_orm_without_result(model.state)
|
|
166
|
+
if created and model.state
|
|
167
|
+
else None
|
|
168
|
+
)
|
|
169
|
+
flow_run_id = model.id
|
|
170
|
+
flow_run_response = schemas.responses.FlowRunResponse.model_validate(
|
|
131
171
|
model, from_attributes=True
|
|
132
172
|
)
|
|
133
173
|
|
|
174
|
+
await _maybe_schedule_cancelling_timeout_check_for_state(
|
|
175
|
+
request=request,
|
|
176
|
+
flow_run_id=flow_run_id,
|
|
177
|
+
state=timeout_check_state,
|
|
178
|
+
)
|
|
179
|
+
if created:
|
|
180
|
+
response.status_code = status.HTTP_201_CREATED
|
|
181
|
+
|
|
182
|
+
return flow_run_response
|
|
183
|
+
|
|
134
184
|
|
|
135
185
|
@router.patch("/{id:uuid}", status_code=status.HTTP_204_NO_CONTENT)
|
|
136
186
|
async def update_flow_run(
|
|
@@ -669,6 +719,7 @@ async def bulk_delete_flow_runs(
|
|
|
669
719
|
|
|
670
720
|
@router.post("/bulk_set_state")
|
|
671
721
|
async def bulk_set_flow_run_state(
|
|
722
|
+
request: Request,
|
|
672
723
|
flow_runs: Optional[schemas.filters.FlowRunFilter] = Body(
|
|
673
724
|
None, description="Filter criteria for flow runs to update"
|
|
674
725
|
),
|
|
@@ -718,6 +769,7 @@ async def bulk_set_flow_run_state(
|
|
|
718
769
|
|
|
719
770
|
# Process flow runs sequentially to avoid session conflicts
|
|
720
771
|
for flow_run in db_flow_runs:
|
|
772
|
+
state_to_schedule: schemas.states.State | None = None
|
|
721
773
|
async with db.session_context(
|
|
722
774
|
begin_transaction=True, with_for_update=True
|
|
723
775
|
) as session:
|
|
@@ -739,6 +791,11 @@ async def bulk_set_flow_run_state(
|
|
|
739
791
|
details=orchestration_result.details,
|
|
740
792
|
)
|
|
741
793
|
)
|
|
794
|
+
if (
|
|
795
|
+
orchestration_result.status
|
|
796
|
+
== schemas.responses.SetStateStatus.ACCEPT
|
|
797
|
+
):
|
|
798
|
+
state_to_schedule = orchestration_result.state
|
|
742
799
|
except Exception as e:
|
|
743
800
|
results.append(
|
|
744
801
|
FlowRunOrchestrationResult(
|
|
@@ -748,6 +805,14 @@ async def bulk_set_flow_run_state(
|
|
|
748
805
|
details=schemas.responses.StateAbortDetails(reason=str(e)),
|
|
749
806
|
)
|
|
750
807
|
)
|
|
808
|
+
continue
|
|
809
|
+
|
|
810
|
+
if state_to_schedule is not None:
|
|
811
|
+
await _maybe_schedule_cancelling_timeout_check_for_state(
|
|
812
|
+
request=request,
|
|
813
|
+
flow_run_id=flow_run.id,
|
|
814
|
+
state=state_to_schedule,
|
|
815
|
+
)
|
|
751
816
|
|
|
752
817
|
return FlowRunBulkSetStateResponse(results=results)
|
|
753
818
|
|
|
@@ -755,6 +820,7 @@ async def bulk_set_flow_run_state(
|
|
|
755
820
|
@router.post("/{id:uuid}/set_state")
|
|
756
821
|
async def set_flow_run_state(
|
|
757
822
|
response: Response,
|
|
823
|
+
request: Request,
|
|
758
824
|
flow_run_id: UUID = Path(..., description="The flow run id", alias="id"),
|
|
759
825
|
state: schemas.actions.StateCreate = Body(..., description="The intended state."),
|
|
760
826
|
force: bool = Body(
|
|
@@ -796,6 +862,13 @@ async def set_flow_run_state(
|
|
|
796
862
|
client_version=client_version,
|
|
797
863
|
)
|
|
798
864
|
|
|
865
|
+
if orchestration_result.status == schemas.responses.SetStateStatus.ACCEPT:
|
|
866
|
+
await _maybe_schedule_cancelling_timeout_check_for_state(
|
|
867
|
+
request=request,
|
|
868
|
+
flow_run_id=flow_run_id,
|
|
869
|
+
state=orchestration_result.state,
|
|
870
|
+
)
|
|
871
|
+
|
|
799
872
|
# set the 201 if a new state was created
|
|
800
873
|
if orchestration_result.state and orchestration_result.state.timestamp >= right_now:
|
|
801
874
|
response.status_code = status.HTTP_201_CREATED
|
|
@@ -10,6 +10,7 @@ import base64
|
|
|
10
10
|
import contextlib
|
|
11
11
|
import gc
|
|
12
12
|
import hmac
|
|
13
|
+
import importlib.metadata
|
|
13
14
|
import logging
|
|
14
15
|
import mimetypes
|
|
15
16
|
import os
|
|
@@ -41,6 +42,7 @@ from fastapi.middleware.gzip import GZipMiddleware
|
|
|
41
42
|
from fastapi.openapi.utils import get_openapi
|
|
42
43
|
from fastapi.responses import JSONResponse, RedirectResponse
|
|
43
44
|
from fastapi.staticfiles import StaticFiles
|
|
45
|
+
from packaging.version import Version
|
|
44
46
|
from starlette.exceptions import HTTPException
|
|
45
47
|
from typing_extensions import Self
|
|
46
48
|
|
|
@@ -73,6 +75,12 @@ from prefect.utilities.hashing import hash_objects
|
|
|
73
75
|
|
|
74
76
|
logfire: Any | None = configure_logfire()
|
|
75
77
|
|
|
78
|
+
# FastAPI < 0.137 copies routes when including a router; 0.137+ keeps a
|
|
79
|
+
# reference to the original via _IncludedRouter.
|
|
80
|
+
_FASTAPI_COPIES_ROUTES_ON_INCLUDE: bool = Version(
|
|
81
|
+
importlib.metadata.version("fastapi")
|
|
82
|
+
) < Version("0.137.0")
|
|
83
|
+
|
|
76
84
|
TITLE = "Prefect Server"
|
|
77
85
|
API_TITLE = "Prefect REST API"
|
|
78
86
|
UI_TITLE = "Prefect REST API UI"
|
|
@@ -491,21 +499,16 @@ def create_api_app(
|
|
|
491
499
|
|
|
492
500
|
for router in API_ROUTERS:
|
|
493
501
|
api_app.include_router(router, dependencies=dependencies)
|
|
494
|
-
if final:
|
|
495
|
-
#
|
|
496
|
-
#
|
|
497
|
-
#
|
|
498
|
-
#
|
|
499
|
-
# router. This is because the dependencies may change if the same router is
|
|
500
|
-
# included multiple times, but it also means that we are holding onto an
|
|
501
|
-
# entire set of Pydantic models on the original routers for the duration of
|
|
502
|
-
# the server process that will never be used.
|
|
502
|
+
if final and _FASTAPI_COPIES_ROUTES_ON_INCLUDE:
|
|
503
|
+
# When including a router, older versions of FastAPI (< 0.137) copy
|
|
504
|
+
# the routes and build entirely new Pydantic models. Since Prefect
|
|
505
|
+
# does not reuse routers, we can delete the originals to reclaim
|
|
506
|
+
# ~50-55 MB of memory.
|
|
503
507
|
#
|
|
504
|
-
#
|
|
505
|
-
#
|
|
506
|
-
#
|
|
507
|
-
#
|
|
508
|
-
# of introducing this change).
|
|
508
|
+
# FastAPI 0.137+ wraps included routers in an _IncludedRouter that
|
|
509
|
+
# references the original router for request matching, so the
|
|
510
|
+
# originals must be kept. The duplication no longer occurs in this
|
|
511
|
+
# case either, so the optimisation is unnecessary.
|
|
509
512
|
del router.routes
|
|
510
513
|
|
|
511
514
|
if final:
|
|
@@ -138,6 +138,7 @@ SettingAccessor: TypeAlias = Literal[
|
|
|
138
138
|
"server.memoize_block_auto_registration",
|
|
139
139
|
"server.metrics_enabled",
|
|
140
140
|
"server.register_blocks_on_start",
|
|
141
|
+
"server.services.cancellation_cleanup.cancelling_timeout_seconds",
|
|
141
142
|
"server.services.cancellation_cleanup.enabled",
|
|
142
143
|
"server.services.cancellation_cleanup.loop_seconds",
|
|
143
144
|
"server.services.cleanup_reconciler.batch_size",
|
|
@@ -44,6 +44,12 @@ class ServerServicesCancellationCleanupSettings(ServicesBaseSetting):
|
|
|
44
44
|
),
|
|
45
45
|
)
|
|
46
46
|
|
|
47
|
+
cancelling_timeout_seconds: float = Field(
|
|
48
|
+
default=300,
|
|
49
|
+
gt=0,
|
|
50
|
+
description="The cancellation cleanup service will enqueue worker cleanup for flow runs that remain in CANCELLING longer than this many seconds. Defaults to `300`.",
|
|
51
|
+
)
|
|
52
|
+
|
|
47
53
|
|
|
48
54
|
_VALID_VACUUM_TYPES = frozenset({"events", "flow_runs"})
|
|
49
55
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/_launchers.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/bundles/execute.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/plugins/apply.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/plugins/manager.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/plugins/spec.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/sla/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/sla/client.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_experimental/sla/objects.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/analytics/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/analytics/client.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/analytics/device_id.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/analytics/emit.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/analytics/enabled.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/analytics/events.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/analytics/notice.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/analytics/service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/concurrency/api.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/concurrency/calls.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/concurrency/waiters.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/control_listener.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/installation.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/integrations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/observability.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/plugins/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/plugins/apply.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/plugins/collections.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/plugins/diagnostics.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/plugins/manager.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/plugins/spec.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/plugins/startup.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/pydantic/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/pydantic/schemas.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/pydantic/v1_schema.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/pydantic/v2_schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/result_records.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/schemas/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/schemas/_registry.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/schemas/bases.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/schemas/fields.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/schemas/serializers.py
RENAMED
|
File without changes
|
{prefect_client-3.7.5.dev3 → prefect_client-3.7.5.dev5}/src/prefect/_internal/schemas/validators.py
RENAMED
|
File without changes
|
|
File without changes
|