prefect-client 3.8.9.dev1__tar.gz → 3.8.9.dev3__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.8.9.dev1 → prefect_client-3.8.9.dev3}/PKG-INFO +1 -1
- prefect_client-3.8.9.dev3/src/prefect/_build_info.py +5 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/server_maintenance.py +12 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/deployments/base.py +6 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/AGENTS.md +4 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/server.py +7 -2
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/storage.py +95 -32
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/workers/base.py +10 -7
- prefect_client-3.8.9.dev1/src/prefect/_build_info.py +0 -5
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/.gitignore +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/LICENSE +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/README.md +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/hatch_build.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/pyproject.toml +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/.prefectignore +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/AGENTS.md +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/__main__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/_launchers.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/bundles/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/bundles/execute.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/plugins/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/plugins/apply.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/plugins/manager.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/plugins/spec.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/sla/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/sla/client.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/sla/objects.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_flow_run_suspension.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/_logging.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/analytics/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/analytics/ci_detection.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/analytics/client.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/analytics/device_id.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/analytics/emit.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/analytics/enabled.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/analytics/events.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/analytics/milestones.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/analytics/notice.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/analytics/service.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/ast_utils.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/attempt_control.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/buildx.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/compatibility/backports.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/compatibility/blocks.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/compatibility/deprecated_paths.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/compatibility/migration.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/compatibility/starlette.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/concurrency/services.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/concurrency/threads.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/control_listener.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/deprecated.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/engine.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/git.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/infrastructure_exit_codes.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/installation.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/integrations.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/launchers.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/lazy.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/metrics.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/observability.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/observers.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/plugins/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/plugins/apply.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/plugins/collections.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/plugins/diagnostics.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/plugins/manager.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/plugins/spec.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/plugins/startup.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/pydantic/validated_func.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/pytz.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/result_records.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/retries.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/schema.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/schemas/_registry.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/schemas/validators.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/send_entrypoint_logs.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/states.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/testing.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/urls.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/uuid7.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/version_checking.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/versioning.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/waiters.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/websockets.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_sdk/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_sdk/fetcher.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_sdk/generator.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_sdk/models.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_sdk/naming.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_sdk/renderer.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_sdk/schema_converter.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_sdk/templates/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_sdk/templates/sdk.py.jinja +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_sdk/types.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_sdk/unions.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_vendor/croniter/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_vendor/croniter/croniter.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/agent.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/analytics/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/artifacts.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/assets/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/assets/core.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/assets/materialize.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/automations.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/blocks/AGENTS.md +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/blocks/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/blocks/abstract.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/blocks/core.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/blocks/fields.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/blocks/notifications.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/blocks/redis.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/blocks/system.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/blocks/webhook.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/bundles/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/bundles/_file_collector.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/bundles/_ignore_filter.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/bundles/_path_resolver.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/bundles/_zip_builder.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/bundles/_zip_extractor.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/bundles/execute.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/cache_policies.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/AGENTS.md +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/attribution.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/base.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/cloud.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/collections.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/constants.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_automations/client.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_deployments/client.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_events/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_events/client.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_flows/client.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_logs/client.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_variables/client.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/base.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/orchestration/routes.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/schemas/actions.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/schemas/events.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/schemas/filters.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/schemas/objects.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/schemas/responses.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/schemas/worker_channel.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/subscriptions.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/types/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/types/flexible_schedule_list.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/client/utilities.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/concurrency/AGENTS.md +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/concurrency/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/concurrency/_asyncio.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/concurrency/_events.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/concurrency/_leases.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/concurrency/_sync.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/concurrency/asyncio.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/concurrency/context.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/concurrency/services.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/concurrency/sync.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/concurrency/v1/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/concurrency/v1/_asyncio.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/concurrency/v1/_events.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/concurrency/v1/asyncio.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/concurrency/v1/context.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/concurrency/v1/services.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/concurrency/v1/sync.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/context.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/deployments/AGENTS.md +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/deployments/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/deployments/deployments.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/deployments/flow_runs.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/deployments/runner.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/deployments/schedules.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/deployments/steps/core.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/docker/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/docker/_buildx.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/docker/docker_image.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/engine.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/events/AGENTS.md +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/events/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/events/actions.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/events/clients.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/events/filters.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/events/related.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/events/schemas/automations.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/events/schemas/events.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/events/subscribers.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/events/utilities.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/events/worker.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/exceptions.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/filesystems.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/flow_engine.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/flow_runs.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/flows.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/futures.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/infrastructure/base.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/input/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/input/actions.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/input/run_input.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/locking/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/locking/_filelock.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/locking/filesystem.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/locking/memory.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/locking/protocol.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/logging/AGENTS.md +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/logging/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/logging/clients.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/logging/configuration.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/logging/filters.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/logging/formatters.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/logging/handlers.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/logging/highlighters.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/logging/loggers.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/logging/logging.yml +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/main.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/plugins.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/py.typed +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/results.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_cancel_finalizer.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_cancellation_manager.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_control_channel.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_deployment_registry.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_event_emitter.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_flow_resolver.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_flow_run_executor.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_hook_runner.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_limit_manager.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_process_manager.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_scheduled_run_poller.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_starter_bundle.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_starter_direct.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_starter_engine.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_state_proposer.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_uv_command.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_workspace_hook_runner.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_workspace_resolver.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_workspace_runtime.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_workspace_runtime_bootstrap.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_workspace_starter.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/_workspace_supervisor.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runner/runner.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runtime/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runtime/deployment.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runtime/flow_run.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/runtime/task_run.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/schedules.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/serializers.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/_ui_static.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/admin.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/artifacts.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/automations.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/background_workers.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/block_capabilities.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/block_documents.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/block_schemas.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/block_types.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/clients.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/collections.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/concurrency_limits.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/csrf_token.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/dependencies.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/deployments.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/events.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/flow_run_states.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/flow_runs.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/flows.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/logs.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/middleware.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/root.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/run_history.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/saved_searches.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/server.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/task_run_states.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/task_runs.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/task_workers.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/templates.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/ui/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/ui/flow_runs.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/ui/flows.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/ui/schemas.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/ui/task_runs.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/validation.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/variables.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/work_queues.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/server/api/workers.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/AGENTS.md +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/_types.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/base.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/constants.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/context.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/legacy.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/_defaults.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/api.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/cli.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/client.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/cloud.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/deployments.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/events.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/experiments.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/flows.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/internal.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/logging.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/plugins.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/results.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/root.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/runner.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/server/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/server/api.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/server/concurrency.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/server/database.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/server/deployments.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/server/docket.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/server/ephemeral.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/server/events.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/server/logs.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/server/root.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/server/services.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/server/tasks.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/server/ui.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/server/worker_channel.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/tasks.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/telemetry.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/testing.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/models/worker.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/profiles.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/profiles.toml +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/settings/sources.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/states.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/task_engine.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/task_runners.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/task_runs.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/task_worker.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/tasks.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/telemetry/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/telemetry/run_telemetry.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/transactions.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/types/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/types/_concurrency.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/types/_datetime.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/types/entrypoint.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/types/names.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/AGENTS.md +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/annotations.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/asyncutils/AGENTS.md +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/asyncutils/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/callables/AGENTS.md +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/callables/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/collections.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/compat.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/context.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/dispatch.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/engine/AGENTS.md +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/engine/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/filesystem/AGENTS.md +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/filesystem/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/generics.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/hashing.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/importtools.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/math.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/names.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/processutils/AGENTS.md +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/processutils/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/pydantic.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/schema_tools/AGENTS.md +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/services.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/slugify.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/templating/AGENTS.md +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/templating/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/text.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/timeout.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/urls.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/utilities/visualization.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/variables.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/workers/AGENTS.md +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/workers/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/workers/_cleanup.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/workers/_cleanup_handlers.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/workers/_worker_channel/__init__.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/workers/_worker_channel/_protocol.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/workers/_worker_channel/_state.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/workers/_worker_channel/_sync.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/workers/_worker_channel/_transport.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/workers/block.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/workers/cloud.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/workers/process.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/workers/server.py +0 -0
- {prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/workers/utilities.py +0 -0
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/server_maintenance.py
RENAMED
|
@@ -39,6 +39,18 @@ def maintenance_backoff_ends_at() -> datetime.datetime | None:
|
|
|
39
39
|
return _backoff_ends_at
|
|
40
40
|
|
|
41
41
|
|
|
42
|
+
def polling_window_start(last_polled: datetime.datetime) -> datetime.datetime:
|
|
43
|
+
"""
|
|
44
|
+
When the polling window of a process that last polled at `last_polled`
|
|
45
|
+
starts: the later of `last_polled` and the end of the latest maintenance
|
|
46
|
+
back-off, since a poll cannot complete while it waits out maintenance.
|
|
47
|
+
"""
|
|
48
|
+
backoff_ends_at = maintenance_backoff_ends_at()
|
|
49
|
+
if backoff_ends_at is not None and backoff_ends_at > last_polled:
|
|
50
|
+
return backoff_ends_at
|
|
51
|
+
return last_polled
|
|
52
|
+
|
|
53
|
+
|
|
42
54
|
def reset_maintenance_backoff() -> None:
|
|
43
55
|
"""Forget any recorded maintenance back-off (for tests)."""
|
|
44
56
|
global _backoff_ends_at
|
|
@@ -47,6 +47,10 @@ Thin facade over single-responsibility extracted classes. New behavior belongs i
|
|
|
47
47
|
|
|
48
48
|
These will be removed once internal callers are migrated. Direct ProcessWorker flow runs already use `FlowRunExecutorContext`; generated commands use `WorkspaceResolvingEngineCommandStarter`, while explicitly configured commands use `EngineCommandStarter`. Only the ad hoc bundle path still calls deprecated `Runner.execute_bundle()`. Keep lifecycle behavior in the extracted classes and do not route direct worker execution back through Runner.
|
|
49
49
|
|
|
50
|
+
## Webserver Health Check
|
|
51
|
+
|
|
52
|
+
The health check must not count a maintenance wait as a missed poll. Requests answered with `Prefect-Maintenance: true` retry indefinitely, so a poll can block for an entire Cloud maintenance window. `perform_health_check()` in `server.py` measures from `polling_window_start()` (`prefect._internal.server_maintenance`), the same rule the worker health check uses. `last_polled` is `None` until the first poll completes, so the health check measures from its own creation until then.
|
|
53
|
+
|
|
50
54
|
## EventEmitter WebSocket Degradation
|
|
51
55
|
|
|
52
56
|
`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.
|
|
@@ -8,6 +8,7 @@ from fastapi import APIRouter, FastAPI, status
|
|
|
8
8
|
from fastapi.responses import JSONResponse
|
|
9
9
|
from typing_extensions import Literal
|
|
10
10
|
|
|
11
|
+
from prefect._internal.server_maintenance import polling_window_start
|
|
11
12
|
from prefect.logging import get_logger
|
|
12
13
|
from prefect.settings import (
|
|
13
14
|
PREFECT_RUNNER_POLL_FREQUENCY,
|
|
@@ -46,9 +47,13 @@ def perform_health_check(
|
|
|
46
47
|
* PREFECT_RUNNER_POLL_FREQUENCY.value()
|
|
47
48
|
)
|
|
48
49
|
|
|
50
|
+
# Until the first poll completes, measure from when the health check
|
|
51
|
+
# started: startup and the first poll may be waiting out API maintenance.
|
|
52
|
+
started_at = now_fn("UTC")
|
|
53
|
+
|
|
49
54
|
def _health_check():
|
|
50
|
-
|
|
51
|
-
poll_delay = (
|
|
55
|
+
last_polled = runner.last_polled or started_at
|
|
56
|
+
poll_delay = (now_fn("UTC") - polling_window_start(last_polled)).total_seconds()
|
|
52
57
|
|
|
53
58
|
if TYPE_CHECKING:
|
|
54
59
|
assert delay_threshold is not None
|
|
@@ -375,20 +375,40 @@ class GitRepository:
|
|
|
375
375
|
except Exception:
|
|
376
376
|
return False
|
|
377
377
|
|
|
378
|
+
async def _has_commit(self) -> bool:
|
|
379
|
+
"""
|
|
380
|
+
Check if the commit SHA resolves to a commit in the local repository.
|
|
381
|
+
"""
|
|
382
|
+
try:
|
|
383
|
+
await run_process(
|
|
384
|
+
["git", "cat-file", "-e", f"{self._commit_sha}^{{commit}}"],
|
|
385
|
+
cwd=self.destination,
|
|
386
|
+
)
|
|
387
|
+
except Exception:
|
|
388
|
+
return False
|
|
389
|
+
return True
|
|
390
|
+
|
|
378
391
|
async def is_current_commit(self) -> bool:
|
|
379
392
|
"""
|
|
380
|
-
Check if
|
|
393
|
+
Check if `HEAD` is the commit referenced by the commit SHA.
|
|
394
|
+
|
|
395
|
+
Returns `False` if the commit SHA does not resolve to a commit in the
|
|
396
|
+
local repository.
|
|
381
397
|
"""
|
|
382
398
|
if not self._commit_sha:
|
|
383
399
|
raise ValueError("No commit SHA provided")
|
|
384
400
|
try:
|
|
385
|
-
|
|
386
|
-
["git", "rev-parse",
|
|
401
|
+
head = await run_process(
|
|
402
|
+
["git", "rev-parse", "HEAD"],
|
|
403
|
+
cwd=self.destination,
|
|
404
|
+
)
|
|
405
|
+
target = await run_process(
|
|
406
|
+
["git", "rev-parse", "--verify", f"{self._commit_sha}^{{commit}}"],
|
|
387
407
|
cwd=self.destination,
|
|
388
408
|
)
|
|
389
|
-
return result.stdout.decode().strip() == self._commit_sha
|
|
390
409
|
except Exception:
|
|
391
410
|
return False
|
|
411
|
+
return head.stdout.decode().strip() == target.stdout.decode().strip()
|
|
392
412
|
|
|
393
413
|
async def pull_code(self) -> None:
|
|
394
414
|
"""
|
|
@@ -454,31 +474,28 @@ class GitRepository:
|
|
|
454
474
|
|
|
455
475
|
# If the commit is already checked out, skip the pull
|
|
456
476
|
if self._commit_sha and await self.is_current_commit():
|
|
477
|
+
await self._update_submodules()
|
|
457
478
|
return
|
|
458
479
|
|
|
459
|
-
# If checking out a specific commit, fetch
|
|
480
|
+
# If checking out a specific commit, fetch it unless it is already
|
|
481
|
+
# available locally, unshallowing the repository if necessary
|
|
460
482
|
elif self._commit_sha:
|
|
461
|
-
if await self.
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
cwd=self.destination,
|
|
478
|
-
)
|
|
479
|
-
self._logger.debug(
|
|
480
|
-
f"Successfully checked out commit {self._commit_sha}"
|
|
481
|
-
)
|
|
483
|
+
if not await self._has_commit():
|
|
484
|
+
if await self.is_shallow_clone():
|
|
485
|
+
cmd += ["fetch", "origin", "--unshallow", self._commit_sha]
|
|
486
|
+
else:
|
|
487
|
+
cmd += ["fetch", "origin", self._commit_sha]
|
|
488
|
+
try:
|
|
489
|
+
await run_process(cmd, cwd=self.destination)
|
|
490
|
+
self._logger.debug("Successfully fetched latest changes")
|
|
491
|
+
except subprocess.CalledProcessError as exc:
|
|
492
|
+
self._logger.error(
|
|
493
|
+
f"Failed to fetch latest changes with exit code {exc}"
|
|
494
|
+
)
|
|
495
|
+
_rmtree_including_read_only(self.destination)
|
|
496
|
+
await self._clone_repo()
|
|
497
|
+
|
|
498
|
+
await self._checkout_commit(self._commit_sha)
|
|
482
499
|
|
|
483
500
|
# Otherwise, pull the latest changes from the branch
|
|
484
501
|
else:
|
|
@@ -501,6 +518,57 @@ class GitRepository:
|
|
|
501
518
|
else:
|
|
502
519
|
await self._clone_repo()
|
|
503
520
|
|
|
521
|
+
async def _checkout_commit(self, commit_sha: str) -> None:
|
|
522
|
+
"""
|
|
523
|
+
Checks out the commit SHA, updating submodules if they are included.
|
|
524
|
+
"""
|
|
525
|
+
await run_process(
|
|
526
|
+
["git", "checkout", commit_sha],
|
|
527
|
+
cwd=self.destination,
|
|
528
|
+
)
|
|
529
|
+
await self._update_submodules()
|
|
530
|
+
self._logger.debug(f"Successfully checked out commit {commit_sha}")
|
|
531
|
+
|
|
532
|
+
async def _update_submodules(self) -> None:
|
|
533
|
+
"""
|
|
534
|
+
Updates submodules to the revisions recorded in `HEAD` if they are included.
|
|
535
|
+
"""
|
|
536
|
+
if not self._include_submodules:
|
|
537
|
+
return
|
|
538
|
+
try:
|
|
539
|
+
await run_process(
|
|
540
|
+
[
|
|
541
|
+
"git",
|
|
542
|
+
*self._git_config,
|
|
543
|
+
"submodule",
|
|
544
|
+
"update",
|
|
545
|
+
"--init",
|
|
546
|
+
"--recursive",
|
|
547
|
+
],
|
|
548
|
+
cwd=self.destination,
|
|
549
|
+
)
|
|
550
|
+
except subprocess.CalledProcessError as exc:
|
|
551
|
+
# Hide the command used to avoid leaking credentials from the git config
|
|
552
|
+
parsed_url = urlparse(self._url)
|
|
553
|
+
exc_chain = (
|
|
554
|
+
None
|
|
555
|
+
if self._credentials or parsed_url.password or parsed_url.username
|
|
556
|
+
else exc
|
|
557
|
+
)
|
|
558
|
+
sanitized_stderr = strip_auth_from_urls_in_text(
|
|
559
|
+
_decode_stderr(exc),
|
|
560
|
+
extra_secrets=_url_auth_secrets(
|
|
561
|
+
self._url, self._repository_url_with_credentials
|
|
562
|
+
),
|
|
563
|
+
).strip()
|
|
564
|
+
error_message = (
|
|
565
|
+
f"Failed to update submodules with exit code {exc.returncode}."
|
|
566
|
+
)
|
|
567
|
+
if sanitized_stderr:
|
|
568
|
+
tail = " | ".join(sanitized_stderr.splitlines()[-3:])
|
|
569
|
+
error_message += f" git stderr: {tail}"
|
|
570
|
+
raise RuntimeError(error_message) from exc_chain
|
|
571
|
+
|
|
504
572
|
async def _clone_repo(self):
|
|
505
573
|
"""
|
|
506
574
|
Clones the repository into the local destination.
|
|
@@ -583,12 +651,7 @@ class GitRepository:
|
|
|
583
651
|
["git", "fetch", "origin", self._commit_sha],
|
|
584
652
|
cwd=self.destination,
|
|
585
653
|
)
|
|
586
|
-
|
|
587
|
-
await run_process(
|
|
588
|
-
["git", "checkout", self._commit_sha],
|
|
589
|
-
cwd=self.destination,
|
|
590
|
-
)
|
|
591
|
-
self._logger.debug(f"Successfully checked out commit {self._commit_sha}")
|
|
654
|
+
await self._checkout_commit(self._commit_sha)
|
|
592
655
|
|
|
593
656
|
# Once repository is cloned and the repo is in sparse-checkout mode then grow the working directory
|
|
594
657
|
if self._directories:
|
|
@@ -38,7 +38,7 @@ from prefect._internal.infrastructure_exit_codes import get_infrastructure_exit_
|
|
|
38
38
|
from prefect._internal.launchers import resolve_bundle_step_with_launcher
|
|
39
39
|
from prefect._internal.observers import FlowRunCancellingObserver
|
|
40
40
|
from prefect._internal.schemas.validators import return_v_or_none
|
|
41
|
-
from prefect._internal.server_maintenance import
|
|
41
|
+
from prefect._internal.server_maintenance import polling_window_start
|
|
42
42
|
from prefect.client.orchestration import PrefectClient, get_client
|
|
43
43
|
from prefect.client.schemas.objects import Flow as APIFlow
|
|
44
44
|
from prefect.client.schemas.objects import (
|
|
@@ -137,13 +137,8 @@ def _is_within_polling_window(
|
|
|
137
137
|
it sends, so the window counts from the later of `last_polled_time` and the
|
|
138
138
|
end of the latest maintenance back-off.
|
|
139
139
|
"""
|
|
140
|
-
window_start = last_polled_time
|
|
141
|
-
backoff_ends_at = maintenance_backoff_ends_at()
|
|
142
|
-
if backoff_ends_at is not None and backoff_ends_at > window_start:
|
|
143
|
-
window_start = backoff_ends_at
|
|
144
|
-
|
|
145
140
|
seconds_since_window_start = (
|
|
146
|
-
prefect.types._datetime.now("UTC") -
|
|
141
|
+
prefect.types._datetime.now("UTC") - polling_window_start(last_polled_time)
|
|
147
142
|
).total_seconds()
|
|
148
143
|
return seconds_since_window_start <= query_interval_seconds * 30
|
|
149
144
|
|
|
@@ -1548,6 +1543,14 @@ class BaseWorker(abc.ABC, Generic[C, V, R]):
|
|
|
1548
1543
|
" in progress."
|
|
1549
1544
|
)
|
|
1550
1545
|
break
|
|
1546
|
+
except RuntimeError as exc:
|
|
1547
|
+
if "already holding" not in str(exc):
|
|
1548
|
+
raise
|
|
1549
|
+
self._logger.warning(
|
|
1550
|
+
f"Duplicate submission of flow run '{flow_run.id}' detected. Worker"
|
|
1551
|
+
" will not re-submit flow run."
|
|
1552
|
+
)
|
|
1553
|
+
continue
|
|
1551
1554
|
else:
|
|
1552
1555
|
run_logger = self.get_flow_run_logger(flow_run)
|
|
1553
1556
|
run_logger.info(
|
|
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.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/_launchers.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/bundles/execute.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/plugins/apply.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/plugins/manager.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/plugins/spec.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/sla/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/sla/client.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_experimental/sla/objects.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/analytics/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/analytics/client.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/analytics/device_id.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/analytics/emit.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/analytics/enabled.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/analytics/events.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/analytics/notice.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/analytics/service.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/attempt_control.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
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/concurrency/api.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/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.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/concurrency/threads.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/concurrency/waiters.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/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.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/installation.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/integrations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/observability.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/plugins/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/plugins/apply.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/plugins/collections.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/plugins/diagnostics.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/plugins/manager.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/plugins/spec.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/plugins/startup.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/pydantic/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/pydantic/schemas.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/pydantic/v1_schema.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/pydantic/v2_schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/result_records.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/schemas/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/schemas/_registry.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/schemas/bases.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/schemas/fields.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/schemas/serializers.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/schemas/validators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_internal/version_checking.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_sdk/schema_converter.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_sdk/templates/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_sdk/templates/sdk.py.jinja
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_vendor/croniter/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.8.9.dev1 → prefect_client-3.8.9.dev3}/src/prefect/_vendor/croniter/croniter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|