prefect-client 3.9.1.dev3__tar.gz → 3.9.1.dev4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/PKG-INFO +1 -1
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/AGENTS.md +10 -1
- prefect_client-3.9.1.dev4/src/prefect/_build_info.py +5 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/concurrency/services.py +3 -2
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/events/AGENTS.md +1 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/events/schemas/automations.py +11 -3
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/infrastructure/provisioners/ecs.py +86 -19
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/runner.py +10 -4
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/storage.py +18 -7
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/background_workers.py +25 -19
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/ui/flow_runs.py +1 -1
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/task_runners.py +28 -12
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/types/_datetime.py +2 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/templating/AGENTS.md +1 -0
- prefect_client-3.9.1.dev3/src/prefect/_build_info.py +0 -5
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/.gitignore +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/LICENSE +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/README.md +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/hatch_build.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/pyproject.toml +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/.prefectignore +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/__main__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/_launchers.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/bundles/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/bundles/execute.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/plugins/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/plugins/apply.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/plugins/manager.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/plugins/spec.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/sla/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/sla/client.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/sla/objects.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_flow_run_suspension.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/_logging.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/_observation_delivery.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/analytics/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/analytics/ci_detection.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/analytics/client.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/analytics/device_id.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/analytics/emit.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/analytics/enabled.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/analytics/events.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/analytics/milestones.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/analytics/notice.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/analytics/service.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/ast_utils.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/attempt_control.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/buildx.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/compatibility/backports.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/compatibility/blocks.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/compatibility/deprecated_paths.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/compatibility/migration.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/compatibility/starlette.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/concurrency/threads.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/control_listener.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/deprecated.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/engine.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/git.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/infrastructure_exit_codes.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/installation.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/integrations.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/launchers.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/lazy.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/metrics.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/observability.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/observers.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/plugins/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/plugins/apply.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/plugins/collections.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/plugins/diagnostics.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/plugins/manager.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/plugins/spec.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/plugins/startup.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/pydantic/validated_func.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/pytz.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/result_records.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/retries.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/schema.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/schemas/_registry.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/schemas/validators.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/send_entrypoint_logs.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/server_maintenance.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/states.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/testing.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/urls.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/uuid7.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/version_checking.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/versioning.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/waiters.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/websockets.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_sdk/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_sdk/fetcher.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_sdk/generator.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_sdk/models.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_sdk/naming.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_sdk/renderer.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_sdk/schema_converter.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_sdk/templates/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_sdk/templates/sdk.py.jinja +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_sdk/types.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_sdk/unions.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_vendor/croniter/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_vendor/croniter/croniter.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/agent.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/analytics/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/artifacts.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/assets/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/assets/core.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/assets/materialize.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/automations.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/blocks/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/blocks/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/blocks/abstract.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/blocks/core.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/blocks/fields.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/blocks/notifications.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/blocks/redis.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/blocks/system.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/blocks/webhook.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/bundles/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/bundles/_file_collector.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/bundles/_ignore_filter.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/bundles/_path_resolver.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/bundles/_zip_builder.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/bundles/_zip_extractor.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/bundles/execute.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/cache_policies.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/attribution.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/base.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/cloud.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/collections.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/constants.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_automations/client.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_deployments/client.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_events/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_events/client.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_flows/client.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_logs/client.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_variables/client.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/base.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/orchestration/routes.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/schemas/actions.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/schemas/events.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/schemas/filters.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/schemas/objects.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/schemas/responses.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/schemas/worker_channel.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/subscriptions.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/types/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/types/flexible_schedule_list.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/client/utilities.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/concurrency/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/concurrency/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/concurrency/_asyncio.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/concurrency/_events.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/concurrency/_leases.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/concurrency/_sync.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/concurrency/asyncio.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/concurrency/context.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/concurrency/services.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/concurrency/sync.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/concurrency/v1/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/concurrency/v1/_asyncio.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/concurrency/v1/_events.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/concurrency/v1/asyncio.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/concurrency/v1/context.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/concurrency/v1/services.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/concurrency/v1/sync.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/context.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/deployments/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/deployments/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/deployments/base.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/deployments/deployments.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/deployments/flow_runs.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/deployments/runner.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/deployments/schedules.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/deployments/steps/core.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/docker/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/docker/_buildx.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/docker/docker_image.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/engine.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/events/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/events/actions.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/events/clients.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/events/filters.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/events/related.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/events/schemas/events.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/events/subscribers.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/events/utilities.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/events/worker.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/exceptions.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/filesystems.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/flow_engine.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/flow_runs.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/flows.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/futures.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/infrastructure/base.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/input/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/input/actions.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/input/run_input.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/locking/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/locking/_filelock.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/locking/filesystem.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/locking/memory.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/locking/protocol.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/logging/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/logging/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/logging/clients.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/logging/configuration.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/logging/filters.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/logging/formatters.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/logging/handlers.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/logging/highlighters.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/logging/loggers.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/logging/logging.yml +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/main.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/plugins.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/py.typed +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/results.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_cancel_finalizer.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_cancellation_manager.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_control_channel.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_deployment_registry.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_event_emitter.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_flow_resolver.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_flow_run_executor.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_hook_runner.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_limit_manager.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_process_manager.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_scheduled_run_poller.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_starter_bundle.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_starter_direct.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_starter_engine.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_state_proposer.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_uv_command.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_workspace_hook_runner.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_workspace_resolver.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_workspace_runtime.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_workspace_runtime_bootstrap.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_workspace_starter.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/_workspace_supervisor.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runner/server.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runtime/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runtime/deployment.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runtime/flow_run.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/runtime/task_run.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/schedules.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/serializers.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/_ui_static.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/admin.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/artifacts.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/automations.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/block_capabilities.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/block_documents.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/block_schemas.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/block_types.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/clients.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/collections.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/concurrency_limits.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/csrf_token.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/dependencies.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/deployments.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/events.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/flow_run_states.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/flow_runs.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/flows.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/logs.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/middleware.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/observed_states.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/root.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/run_history.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/saved_searches.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/server.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/task_run_states.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/task_runs.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/task_workers.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/templates.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/ui/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/ui/flows.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/ui/schemas.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/ui/task_runs.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/validation.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/variables.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/work_queues.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/workers.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/_types.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/base.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/constants.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/context.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/legacy.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/_defaults.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/api.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/cli.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/client.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/cloud.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/deployments.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/events.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/experiments.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/flows.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/internal.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/logging.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/plugins.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/results.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/root.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/runner.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/server/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/server/api.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/server/concurrency.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/server/database.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/server/deployments.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/server/docket.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/server/ephemeral.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/server/events.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/server/logs.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/server/root.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/server/services.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/server/tasks.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/server/ui.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/server/worker_channel.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/tasks.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/telemetry.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/testing.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/models/worker.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/profiles.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/profiles.toml +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/settings/sources.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/states.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/task_engine.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/task_runs.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/task_worker.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/tasks.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/telemetry/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/telemetry/run_telemetry.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/transactions.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/types/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/types/_concurrency.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/types/_datetime_deprecations.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/types/entrypoint.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/types/names.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/annotations.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/asyncutils/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/asyncutils/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/callables/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/callables/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/collections.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/compat.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/context.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/dispatch.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/engine/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/engine/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/filesystem/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/filesystem/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/generics.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/hashing.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/importtools.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/math.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/names.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/processutils/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/processutils/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/pydantic.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/schema_tools/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/services.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/slugify.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/templating/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/text.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/timeout.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/urls.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/visualization.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/variables.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/workers/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/workers/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/workers/_cleanup.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/workers/_cleanup_handlers.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/workers/_worker_channel/__init__.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/workers/_worker_channel/_protocol.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/workers/_worker_channel/_state.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/workers/_worker_channel/_sync.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/workers/_worker_channel/_transport.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/workers/base.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/workers/block.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/workers/cloud.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/workers/process.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/workers/server.py +0 -0
- {prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/workers/utilities.py +0 -0
|
@@ -6,6 +6,10 @@ The foundation for building and executing workflows with Python. This covers the
|
|
|
6
6
|
|
|
7
7
|
There is no formal public/private boundary beyond the `_` prefix convention. Modules and functions prefixed with `_` are internal. Everything else is considered public and requires backward compatibility.
|
|
8
8
|
|
|
9
|
+
## Runtime Parameter Defaults
|
|
10
|
+
|
|
11
|
+
Runtime flow/task parameter values must come from `utilities.callables.get_call_parameters` or `get_parameter_defaults`: raw signature defaults can be `pydantic.Field(...)` objects. These helpers unwrap `FieldInfo` defaults; schema generation intentionally retains `FieldInfo` to preserve metadata.
|
|
12
|
+
|
|
9
13
|
## Entry Points
|
|
10
14
|
|
|
11
15
|
- `flows.py` / `tasks.py` — `@flow` and `@task` decorator definitions. The primary user-facing API.
|
|
@@ -25,7 +29,8 @@ There is no formal public/private boundary beyond the `_` prefix convention. Mod
|
|
|
25
29
|
- **Sync and async must stay in sync.** Both `flow_engine.py` and `task_engine.py` have sync and async paths. Any behavior change must be applied to both.
|
|
26
30
|
- **Event and log WebSocket subscribers are parallel implementations.** `events/clients.py::PrefectEventSubscriber` and `logging/clients.py::PrefectLogsSubscriber` duplicate the same reconnect/backoff/dedup logic, including the `reconnect_on_clean_close` option (used by `events/subscribers.py::FlowRunSubscriber` so a clean disconnect doesn't hide a terminal event). Mirror any reconnection-behavior change across both.
|
|
27
31
|
- **Flow run observers own their stream recovery.** `_internal/observers.py` observers create subscribers with `reconnection_attempts=0` and delegate polling fallback, reconnect backoff, and setup deadlines to `_internal/_observation_delivery.py::ObservationDelivery`. Subscribers close any socket left by a failed or cancelled `__aenter__`, since callers never exit a context that failed to enter.
|
|
28
|
-
- **Use `whenever` compat helpers for all datetime conversions on Python 3.13+.** `types/_datetime.py` provides `now()`, `_whenever_to_stdlib()`, `_whenever_zdt_from_py()`, and `_whenever_pdt_from_py()` to abstract over API differences across supported whenever releases. Version-specific code is guarded by feature-detection flags (`_WHENEVER_NEW_API` for ≥ 0.10.0, `_SYSTEM_TZ` for ≥ 0.11), not version checks. Never call `DateTime.now()` or `pendulum.now()` directly — use `now()` from `types/_datetime.py` instead. Avoid no-argument `datetime.datetime.now()` because it returns a tz-naive datetime that raises `TypeError` when compared to the tz-aware datetimes produced by `now()`. Explicitly timezone-aware stdlib calls such as `datetime.now(ZoneInfo("UTC"))` are allowed when needed to preserve timezone information. Never call `ZonedDateTime.from_py_datetime()`, `PlainDateTime.from_py_datetime()`, or `.py_datetime()` directly — use the helpers instead. Likewise avoid `.assume_system_tz()`/`.to_system_tz()` (deprecated in 0.11; the warning fails tests under `filterwarnings = error`) — use `in_local_tz()` — and direct `DateTimeDelta` imports (removed in 0.11) — use the `Interval` alias. Violations will silently break on whichever whenever version the helpers weren't written for.
|
|
32
|
+
- **Use `whenever` compat helpers for all datetime conversions on Python 3.13+.** `prefect-client` depends on `whenever` only on Python 3.13+, so modules it ships must keep `whenever` imports behind `sys.version_info >= (3, 13)`; only server code that the client build strips may import it unconditionally (see `client/AGENTS.md`). `types/_datetime.py` provides `now()`, `_whenever_to_stdlib()`, `_whenever_zdt_from_py()`, and `_whenever_pdt_from_py()` to abstract over API differences across supported whenever releases. Version-specific code is guarded by feature-detection flags (`_WHENEVER_NEW_API` for ≥ 0.10.0, `_SYSTEM_TZ` for ≥ 0.11), not version checks. Never call `DateTime.now()` or `pendulum.now()` directly — use `now()` from `types/_datetime.py` instead. Avoid no-argument `datetime.datetime.now()` because it returns a tz-naive datetime that raises `TypeError` when compared to the tz-aware datetimes produced by `now()`. Explicitly timezone-aware stdlib calls such as `datetime.now(ZoneInfo("UTC"))` are allowed when needed to preserve timezone information. Never call `ZonedDateTime.from_py_datetime()`, `PlainDateTime.from_py_datetime()`, or `.py_datetime()` directly — use the helpers instead. Likewise avoid `.assume_system_tz()`/`.to_system_tz()` (deprecated in 0.11; the warning fails tests under `filterwarnings = error`) — use `in_local_tz()` — and direct `DateTimeDelta` imports (removed in 0.11) — use the `Interval` alias. Violations will silently break on whichever whenever version the helpers weren't written for.
|
|
33
|
+
- **Call Pendulum-only members via `types/_datetime.py::_pendulum_call` on Python 3.11/3.12.** Prefect's `DateTime`/`Date`/`Duration` wrap Pendulum-only members (and some shared stdlib methods like `replace`) with user-facing deprecation warnings; `_pendulum_call` bypasses them so users only see warnings for their own calls. `pyproject.toml` ignores these warnings in pytest, so direct calls from Prefect code pass tests silently unless covered by the guards in `tests/test_datetime.py`.
|
|
29
34
|
- **Flow and task engines advance state differently.** The flow engine makes blocking API calls to the server to propose and advance states. The task engine emits `prefect.task_run.*` events (delivered via WebSockets) but advances state locally through `set_state` calls with polling/backoff — do not assume the two engines work the same way.
|
|
30
35
|
- **Flow state transitions go through the server.** The flow engine proposes states to the server, which accepts or rejects them via orchestration rules. The task engine, by contrast, manages state transitions locally via `set_state` and emits `prefect.task_run.*` events — it does not propose states to the server.
|
|
31
36
|
- **`ProcessPoolTaskRunner` requires picklable data across subprocess boundaries.** `PrefectFuture` objects are not picklable and cannot be passed to worker subprocesses. Any `wait_for` futures must be waited on in the parent process and converted to `State` objects before submission. The subprocess task engine handles `State` objects via `resolve_to_final_result`, which raises `UpstreamTaskError` for non-completed upstreams.
|
|
@@ -69,3 +74,7 @@ Use `get_logger()` from `prefect.logging` instead of raw `logging.getLogger()`
|
|
|
69
74
|
- `docker/` → `DockerImage` class for building and pushing Docker images during deployment
|
|
70
75
|
- `telemetry/` → OS-level resource metric collection and run telemetry
|
|
71
76
|
- `testing/` → Test utilities shipped with the SDK: `prefect_test_harness`, assertion helpers, and reusable fixtures (see testing/AGENTS.md)
|
|
77
|
+
|
|
78
|
+
## Multi-pass Templating
|
|
79
|
+
|
|
80
|
+
When applying `utilities.templating.apply_values` in stages, use `remove_notset=False` on passes that must preserve placeholders for later values. The default drops unresolved whole-value dict entries and list items and blanks unresolved inline placeholders. This matters when deployment preparation applies environment values before build/push outputs exist; only remove unresolved values when the caller has reached its final resolution pass.
|
|
@@ -271,8 +271,9 @@ class _QueueServiceBase(abc.ABC, Generic[T]):
|
|
|
271
271
|
|
|
272
272
|
self._stop(at_exit=at_exit)
|
|
273
273
|
|
|
274
|
-
|
|
275
|
-
|
|
274
|
+
# `_done_event` is unset if the service never started in this process, e.g.
|
|
275
|
+
# in a child process after `reset_for_fork`
|
|
276
|
+
if self._done_event is None or self._done_event.is_set():
|
|
276
277
|
future: concurrent.futures.Future[bool] = concurrent.futures.Future()
|
|
277
278
|
future.set_result(False)
|
|
278
279
|
return future
|
|
@@ -8,6 +8,7 @@ Client-side event system for emitting, subscribing to, and defining automations
|
|
|
8
8
|
- Events follow the CloudEvents-inspired schema: `Event` with `Resource` and `RelatedResource`.
|
|
9
9
|
- Automations combine triggers (event, metric, compound, sequence) with actions.
|
|
10
10
|
- **Metric triggers are Cloud-only.** OSS's `ServerTriggerTypes` excludes `MetricTrigger`, so `POST /automations` returns 422. For "alert if a flow takes too long" on OSS, use a proactive `EventTrigger` (`after={prefect.flow-run.Running}`, terminal states in `expect`, SLO in `within`).
|
|
11
|
+
- **Automation schemas must read values this version doesn't know.** Cloud can add action types and metric names before a client release knows about them, so unknown actions parse as `UnknownAction` and unknown metric names stay `str` in `MetricTriggerQuery.name`. Code that reads automations must handle these variants (e.g. no `.value` on a metric name without an `isinstance` check), and `prefect transfer` skips automations that use them instead of copying them.
|
|
11
12
|
- **Event name prefixes differ by backend.** OSS emits `prefect.*`; Cloud emits `prefect-cloud.*` for automation/action lifecycle events (e.g., `prefect-cloud.automation.triggered`). Cross-backend tooling that filters events must match both.
|
|
12
13
|
- `DeploymentTriggerTypes` are the subset of triggers usable in `prefect.yaml` deployment definitions.
|
|
13
14
|
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/events/schemas/automations.py
RENAMED
|
@@ -290,9 +290,16 @@ class MetricTriggerQuery(PrefectBaseModel):
|
|
|
290
290
|
to Metric automations, that specify the query configurations
|
|
291
291
|
and breaching conditions for the Automation"""
|
|
292
292
|
|
|
293
|
-
|
|
293
|
+
# Prefect Cloud can add metrics before a client release knows about them.
|
|
294
|
+
# Reading an automation that uses one keeps its name as a string instead of
|
|
295
|
+
# failing, so updating the automation sends the name back unchanged.
|
|
296
|
+
name: Union[PrefectMetric, str] = Field(
|
|
294
297
|
...,
|
|
295
|
-
|
|
298
|
+
union_mode="left_to_right",
|
|
299
|
+
description=(
|
|
300
|
+
"The name of the metric to query. Names this version of Prefect does "
|
|
301
|
+
"not recognize are kept as strings."
|
|
302
|
+
),
|
|
296
303
|
)
|
|
297
304
|
threshold: float = Field(
|
|
298
305
|
...,
|
|
@@ -357,7 +364,8 @@ class MetricTrigger(ResourceTrigger):
|
|
|
357
364
|
return textwrap.indent(
|
|
358
365
|
"\n".join(
|
|
359
366
|
[
|
|
360
|
-
f"Metric: {m.name.value
|
|
367
|
+
f"Metric: {m.name.value if isinstance(m.name, PrefectMetric) else m.name} "
|
|
368
|
+
f"{m.operator.value} {m.threshold} for {m.range}",
|
|
361
369
|
]
|
|
362
370
|
),
|
|
363
371
|
prefix=" " * indent,
|
|
@@ -1005,7 +1005,25 @@ class ExecutionRoleResource:
|
|
|
1005
1005
|
],
|
|
1006
1006
|
}
|
|
1007
1007
|
)
|
|
1008
|
-
|
|
1008
|
+
# `AmazonECSTaskExecutionRolePolicy` allows creating log streams and
|
|
1009
|
+
# putting log events, but not creating the log group that the ECS worker
|
|
1010
|
+
# asks for with `awslogs-create-group` when CloudWatch logs are enabled.
|
|
1011
|
+
self._logs_policy_name = "PrefectEcsTaskExecutionRoleLogsPolicy"
|
|
1012
|
+
self._logs_policy_document = json.dumps(
|
|
1013
|
+
{
|
|
1014
|
+
"Version": "2012-10-17",
|
|
1015
|
+
"Statement": [
|
|
1016
|
+
{
|
|
1017
|
+
"Sid": "AllowCreateLogGroup",
|
|
1018
|
+
"Effect": "Allow",
|
|
1019
|
+
"Action": "logs:CreateLogGroup",
|
|
1020
|
+
"Resource": "*",
|
|
1021
|
+
}
|
|
1022
|
+
],
|
|
1023
|
+
}
|
|
1024
|
+
)
|
|
1025
|
+
self._requires_role_provisioning = None
|
|
1026
|
+
self._requires_logs_policy_provisioning = None
|
|
1009
1027
|
|
|
1010
1028
|
async def get_task_count(self) -> int:
|
|
1011
1029
|
"""
|
|
@@ -1014,27 +1032,58 @@ class ExecutionRoleResource:
|
|
|
1014
1032
|
Returns:
|
|
1015
1033
|
int: The number of tasks to be provisioned.
|
|
1016
1034
|
"""
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
"""
|
|
1021
|
-
Check if this resource requires provisioning.
|
|
1035
|
+
role_count = 1 if await self._role_requires_provisioning() else 0
|
|
1036
|
+
logs_policy_count = 1 if await self._logs_policy_requires_provisioning() else 0
|
|
1037
|
+
return role_count + logs_policy_count
|
|
1022
1038
|
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
"""
|
|
1026
|
-
if self._requires_provisioning is None:
|
|
1039
|
+
async def _role_requires_provisioning(self) -> bool:
|
|
1040
|
+
if self._requires_role_provisioning is None:
|
|
1027
1041
|
try:
|
|
1028
1042
|
await anyio.to_thread.run_sync(
|
|
1029
1043
|
partial(
|
|
1030
1044
|
self._iam_client.get_role, RoleName=self._execution_role_name
|
|
1031
1045
|
)
|
|
1032
1046
|
)
|
|
1033
|
-
self.
|
|
1047
|
+
self._requires_role_provisioning = False
|
|
1034
1048
|
except self._iam_client.exceptions.NoSuchEntityException:
|
|
1035
|
-
self.
|
|
1049
|
+
self._requires_role_provisioning = True
|
|
1036
1050
|
|
|
1037
|
-
return self.
|
|
1051
|
+
return self._requires_role_provisioning
|
|
1052
|
+
|
|
1053
|
+
async def _logs_policy_requires_provisioning(self) -> bool:
|
|
1054
|
+
"""
|
|
1055
|
+
Checked separately from role creation so that roles provisioned before
|
|
1056
|
+
the logs policy existed get it when provisioning is run again.
|
|
1057
|
+
"""
|
|
1058
|
+
if self._requires_logs_policy_provisioning is None:
|
|
1059
|
+
if await self._role_requires_provisioning():
|
|
1060
|
+
self._requires_logs_policy_provisioning = True
|
|
1061
|
+
else:
|
|
1062
|
+
try:
|
|
1063
|
+
await anyio.to_thread.run_sync(
|
|
1064
|
+
partial(
|
|
1065
|
+
self._iam_client.get_role_policy,
|
|
1066
|
+
RoleName=self._execution_role_name,
|
|
1067
|
+
PolicyName=self._logs_policy_name,
|
|
1068
|
+
)
|
|
1069
|
+
)
|
|
1070
|
+
self._requires_logs_policy_provisioning = False
|
|
1071
|
+
except self._iam_client.exceptions.NoSuchEntityException:
|
|
1072
|
+
self._requires_logs_policy_provisioning = True
|
|
1073
|
+
|
|
1074
|
+
return self._requires_logs_policy_provisioning
|
|
1075
|
+
|
|
1076
|
+
async def requires_provisioning(self) -> bool:
|
|
1077
|
+
"""
|
|
1078
|
+
Check if this resource requires provisioning.
|
|
1079
|
+
|
|
1080
|
+
Returns:
|
|
1081
|
+
bool: True if provisioning is required, False otherwise.
|
|
1082
|
+
"""
|
|
1083
|
+
return (
|
|
1084
|
+
await self._role_requires_provisioning()
|
|
1085
|
+
or await self._logs_policy_requires_provisioning()
|
|
1086
|
+
)
|
|
1038
1087
|
|
|
1039
1088
|
async def get_planned_actions(self) -> List[str]:
|
|
1040
1089
|
"""
|
|
@@ -1044,12 +1093,18 @@ class ExecutionRoleResource:
|
|
|
1044
1093
|
Optional[str]: A description of the planned actions for provisioning the resource,
|
|
1045
1094
|
or None if provisioning is not required.
|
|
1046
1095
|
"""
|
|
1047
|
-
|
|
1048
|
-
|
|
1096
|
+
actions: list[str] = []
|
|
1097
|
+
if await self._role_requires_provisioning():
|
|
1098
|
+
actions.append(
|
|
1049
1099
|
"Creating an IAM role assigned to ECS tasks:"
|
|
1050
1100
|
f" [blue]{self._execution_role_name}[/]"
|
|
1051
|
-
|
|
1052
|
-
|
|
1101
|
+
)
|
|
1102
|
+
if await self._logs_policy_requires_provisioning():
|
|
1103
|
+
actions.append(
|
|
1104
|
+
"Allowing the ECS task execution role to create CloudWatch log"
|
|
1105
|
+
f" groups: [blue]{self._logs_policy_name}[/]"
|
|
1106
|
+
)
|
|
1107
|
+
return actions
|
|
1053
1108
|
|
|
1054
1109
|
async def provision(
|
|
1055
1110
|
self,
|
|
@@ -1064,8 +1119,8 @@ class ExecutionRoleResource:
|
|
|
1064
1119
|
infrastructure for.
|
|
1065
1120
|
advance: A callback function to indicate progress.
|
|
1066
1121
|
"""
|
|
1067
|
-
|
|
1068
|
-
|
|
1122
|
+
console = current_console.get()
|
|
1123
|
+
if await self._role_requires_provisioning():
|
|
1069
1124
|
console.print("Provisioning execution role")
|
|
1070
1125
|
response = await anyio.to_thread.run_sync(
|
|
1071
1126
|
partial(
|
|
@@ -1088,6 +1143,18 @@ class ExecutionRoleResource:
|
|
|
1088
1143
|
partial(self._iam_client.get_role, RoleName=self._execution_role_name)
|
|
1089
1144
|
)
|
|
1090
1145
|
|
|
1146
|
+
if await self._logs_policy_requires_provisioning():
|
|
1147
|
+
console.print("Adding CloudWatch logs policy to execution role")
|
|
1148
|
+
await anyio.to_thread.run_sync(
|
|
1149
|
+
partial(
|
|
1150
|
+
self._iam_client.put_role_policy,
|
|
1151
|
+
RoleName=self._execution_role_name,
|
|
1152
|
+
PolicyName=self._logs_policy_name,
|
|
1153
|
+
PolicyDocument=self._logs_policy_document,
|
|
1154
|
+
)
|
|
1155
|
+
)
|
|
1156
|
+
advance()
|
|
1157
|
+
|
|
1091
1158
|
base_job_template["variables"]["properties"]["execution_role_arn"][
|
|
1092
1159
|
"default"
|
|
1093
1160
|
] = response["Role"]["Arn"]
|
|
@@ -527,9 +527,15 @@ class Runner:
|
|
|
527
527
|
Gracefully shuts down the runner when a SIGTERM is received.
|
|
528
528
|
"""
|
|
529
529
|
self._logger.info("SIGTERM received, initiating graceful shutdown...")
|
|
530
|
-
self.
|
|
530
|
+
if not self.started or self.stopping or self._loop is None:
|
|
531
|
+
sys.exit(0)
|
|
531
532
|
|
|
532
|
-
|
|
533
|
+
# Signal handlers run on the main thread, which may or may not be the
|
|
534
|
+
# thread driving the runner's loop, so schedule `astop` thread-safely
|
|
535
|
+
# rather than blocking on it. `astop` cancels in-flight flow runs and
|
|
536
|
+
# the polling loops, letting `start` return.
|
|
537
|
+
self.stopping = True
|
|
538
|
+
self.execute_in_background(self.astop)
|
|
533
539
|
|
|
534
540
|
async def start(
|
|
535
541
|
self, run_once: bool = False, webserver: Optional[bool] = None
|
|
@@ -714,9 +720,9 @@ class Runner:
|
|
|
714
720
|
6. FlowRunCancellingObserver — exits first
|
|
715
721
|
"""
|
|
716
722
|
self._logger.debug("Starting runner...")
|
|
723
|
+
self.stopping = False
|
|
717
724
|
self._tmp_dir.mkdir(parents=True, exist_ok=True)
|
|
718
|
-
|
|
719
|
-
self._loop = asyncio.get_event_loop()
|
|
725
|
+
self._loop = asyncio.get_running_loop()
|
|
720
726
|
|
|
721
727
|
self._client = get_client()
|
|
722
728
|
|
|
@@ -497,16 +497,27 @@ class GitRepository:
|
|
|
497
497
|
|
|
498
498
|
await self._checkout_commit(self._commit_sha)
|
|
499
499
|
|
|
500
|
-
# Otherwise,
|
|
500
|
+
# Otherwise, move the branch to the remote tip. `git pull` can't do
|
|
501
|
+
# this on a shallow clone: a new remote commit shares no history with
|
|
502
|
+
# the local one, so the merge fails on every update. Like `git pull`,
|
|
503
|
+
# `reset --keep` leaves local changes alone when nothing changed
|
|
504
|
+
# upstream and refuses when they would be overwritten.
|
|
501
505
|
else:
|
|
502
|
-
cmd
|
|
506
|
+
fetch_cmd = cmd + ["fetch", "origin"]
|
|
503
507
|
if self._branch:
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
cmd += ["--recurse-submodules"]
|
|
507
|
-
cmd += ["--depth", "1"]
|
|
508
|
+
fetch_cmd += [self._branch]
|
|
509
|
+
fetch_cmd += ["--depth", "1"]
|
|
508
510
|
try:
|
|
509
|
-
await run_process(
|
|
511
|
+
await run_process(fetch_cmd, cwd=self.destination)
|
|
512
|
+
await run_process(
|
|
513
|
+
["git", "reset", "--keep", "FETCH_HEAD"],
|
|
514
|
+
cwd=self.destination,
|
|
515
|
+
)
|
|
516
|
+
if self._include_submodules:
|
|
517
|
+
await run_process(
|
|
518
|
+
cmd + ["submodule", "update", "--init", "--recursive"],
|
|
519
|
+
cwd=self.destination,
|
|
520
|
+
)
|
|
510
521
|
self._logger.debug("Successfully pulled latest changes")
|
|
511
522
|
except subprocess.CalledProcessError as exc:
|
|
512
523
|
self._logger.error(
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/background_workers.py
RENAMED
|
@@ -63,25 +63,31 @@ async def background_worker(
|
|
|
63
63
|
webserver_only: bool = False,
|
|
64
64
|
) -> AsyncGenerator[None, None]:
|
|
65
65
|
worker_task: asyncio.Task[None] | None = None
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
66
|
+
try:
|
|
67
|
+
async with Worker(docket) as worker:
|
|
68
|
+
# Register background task functions
|
|
69
|
+
docket.register_collection(
|
|
70
|
+
"prefect.server.api.background_workers:task_functions"
|
|
71
|
+
)
|
|
71
72
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
# Register and schedule enabled perpetual services
|
|
74
|
+
await register_and_schedule_perpetual_services(
|
|
75
|
+
docket, ephemeral=ephemeral, webserver_only=webserver_only
|
|
76
|
+
)
|
|
76
77
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
try:
|
|
79
|
+
worker_task = asyncio.create_task(worker.run_forever())
|
|
80
|
+
yield
|
|
80
81
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
82
|
+
finally:
|
|
83
|
+
if worker_task:
|
|
84
|
+
worker_task.cancel()
|
|
85
|
+
finally:
|
|
86
|
+
# Exiting the `Worker` context above signals the worker loop to stop and
|
|
87
|
+
# waits for it, so shutdown completes even if the cancellation was lost
|
|
88
|
+
# (e.g. `asyncio.wait_for` on Python 3.11 can swallow a cancellation).
|
|
89
|
+
if worker_task:
|
|
90
|
+
try:
|
|
91
|
+
await worker_task
|
|
92
|
+
except asyncio.CancelledError:
|
|
93
|
+
pass
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/server/api/ui/flow_runs.py
RENAMED
|
@@ -119,7 +119,7 @@ async def count_task_runs_by_flow_run(
|
|
|
119
119
|
results = await session.execute(query)
|
|
120
120
|
|
|
121
121
|
task_run_counts_by_flow_run = {
|
|
122
|
-
flow_run_id: task_run_count for flow_run_id, task_run_count in results
|
|
122
|
+
flow_run_id: task_run_count for flow_run_id, task_run_count in results
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
return {
|
|
@@ -40,6 +40,7 @@ from prefect.futures import (
|
|
|
40
40
|
from prefect.logging.handlers import APILogWorker, set_api_log_sink
|
|
41
41
|
from prefect.logging.loggers import get_logger, get_run_logger
|
|
42
42
|
from prefect.settings.context import get_current_settings
|
|
43
|
+
from prefect.settings.models.root import Settings
|
|
43
44
|
from prefect.utilities.annotations import allow_failure, opaque, quote, unmapped
|
|
44
45
|
from prefect.utilities.callables import (
|
|
45
46
|
cloudpickle_wrapped_call,
|
|
@@ -607,13 +608,23 @@ def _run_task_in_subprocess(
|
|
|
607
608
|
"""
|
|
608
609
|
Wrapper function to update environment variables and settings before running a task in a subprocess.
|
|
609
610
|
"""
|
|
611
|
+
# Apply this task's environment and restore the worker's environment
|
|
612
|
+
# afterwards so values from one task's settings do not leak into later
|
|
613
|
+
# tasks run by the same worker process.
|
|
614
|
+
original_environ = os.environ.copy()
|
|
615
|
+
os.environ.update(env or {})
|
|
616
|
+
try:
|
|
617
|
+
return _run_task_with_hydrated_context(*args, **kwargs)
|
|
618
|
+
finally:
|
|
619
|
+
os.environ.clear()
|
|
620
|
+
os.environ.update(original_environ)
|
|
621
|
+
|
|
622
|
+
|
|
623
|
+
def _run_task_with_hydrated_context(*args: Any, **kwargs: Any) -> Any:
|
|
610
624
|
from prefect.context import hydrated_context
|
|
611
625
|
from prefect.engine import handle_engine_signals
|
|
612
626
|
from prefect.task_engine import run_task_async, run_task_sync
|
|
613
627
|
|
|
614
|
-
# Update environment variables
|
|
615
|
-
os.environ.update(env or {})
|
|
616
|
-
|
|
617
628
|
# Extract context from kwargs
|
|
618
629
|
context = kwargs.pop("context", None)
|
|
619
630
|
|
|
@@ -871,8 +882,8 @@ class ProcessPoolTaskRunner(TaskRunner[PrefectConcurrentFuture[Any]]):
|
|
|
871
882
|
self._subprocess_message_processor_factories: tuple[
|
|
872
883
|
_SubprocessMessageProcessorFactory, ...
|
|
873
884
|
] = tuple(subprocess_message_processor_factories or ())
|
|
874
|
-
self._cached_context: dict[str, Any] | None = None
|
|
875
885
|
self._cached_env: dict[str, str] | None = None
|
|
886
|
+
self._cached_env_settings: Settings | None = None
|
|
876
887
|
|
|
877
888
|
def duplicate(self) -> Self:
|
|
878
889
|
duplicate_runner = type(self)(max_workers=self._max_workers)
|
|
@@ -1201,16 +1212,21 @@ class ProcessPoolTaskRunner(TaskRunner[PrefectConcurrentFuture[Any]]):
|
|
|
1201
1212
|
f"Submitting task {task.name} to process pool executor..."
|
|
1202
1213
|
)
|
|
1203
1214
|
|
|
1204
|
-
|
|
1205
|
-
if self._cached_context is None:
|
|
1206
|
-
from prefect.context import serialize_context
|
|
1215
|
+
from prefect.context import serialize_context
|
|
1207
1216
|
|
|
1208
|
-
|
|
1217
|
+
# Context (tags, settings, etc.) can change between submits, so it is
|
|
1218
|
+
# serialized every time. The env is only rebuilt when settings change.
|
|
1219
|
+
context = serialize_context()
|
|
1220
|
+
current_settings = get_current_settings()
|
|
1221
|
+
if (
|
|
1222
|
+
self._cached_env is None
|
|
1223
|
+
or self._cached_env_settings is not current_settings
|
|
1224
|
+
):
|
|
1209
1225
|
self._cached_env = (
|
|
1210
|
-
|
|
1226
|
+
current_settings.to_environment_variables(exclude_unset=True)
|
|
1211
1227
|
| os.environ
|
|
1212
1228
|
)
|
|
1213
|
-
|
|
1229
|
+
self._cached_env_settings = current_settings
|
|
1214
1230
|
env = self._cached_env
|
|
1215
1231
|
|
|
1216
1232
|
# Submit the resolution and subprocess execution to a background thread
|
|
@@ -1261,9 +1277,9 @@ class ProcessPoolTaskRunner(TaskRunner[PrefectConcurrentFuture[Any]]):
|
|
|
1261
1277
|
return super().map(task, parameters, wait_for)
|
|
1262
1278
|
|
|
1263
1279
|
def cancel_all(self) -> None:
|
|
1264
|
-
# Invalidate cached
|
|
1265
|
-
self._cached_context = None
|
|
1280
|
+
# Invalidate cached env so it is recomputed on next start
|
|
1266
1281
|
self._cached_env = None
|
|
1282
|
+
self._cached_env_settings = None
|
|
1267
1283
|
|
|
1268
1284
|
# Clear cancel events first to avoid resource tracking issues
|
|
1269
1285
|
events_to_set = list(self._cancel_events.values())
|
|
@@ -3,6 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import datetime
|
|
4
4
|
import sys
|
|
5
5
|
from contextlib import contextmanager
|
|
6
|
+
from functools import cache
|
|
6
7
|
from typing import Annotated, Any, Union, cast
|
|
7
8
|
from unittest import mock
|
|
8
9
|
from zoneinfo import ZoneInfo, ZoneInfoNotFoundError, available_timezones
|
|
@@ -127,6 +128,7 @@ def parse_datetime(dt: str) -> datetime.datetime:
|
|
|
127
128
|
return cast(datetime.datetime, _wrap_pendulum_value(pendulum.parse(dt)))
|
|
128
129
|
|
|
129
130
|
|
|
131
|
+
@cache
|
|
130
132
|
def get_timezones() -> tuple[str, ...]:
|
|
131
133
|
return tuple(available_timezones())
|
|
132
134
|
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/utilities/templating/AGENTS.md
RENAMED
|
@@ -18,3 +18,4 @@ Note: this module is *not* a Jinja renderer. For Jinja hydration of `__prefect_k
|
|
|
18
18
|
|
|
19
19
|
- **`resolve_block_document_references` raises `ValueError` for malformed block placeholders.** Placeholders must follow the format `prefect.blocks.<block-type-slug>.<block-document-name>` (at least two dot-separated parts after the prefix). A placeholder like `{{ prefect.blocks.only-type }}` (missing the document name) raises `ValueError` before any network call is made.
|
|
20
20
|
- **Inline vs. whole-string block resolution behave differently.** When a block placeholder is the *entire* string value (`"{{ prefect.blocks.secret.my-token }}"`), the resolved value is returned as-is — it can be a `dict`, `list`, or scalar. When a block placeholder is *embedded* in surrounding text (`"{{ prefect.blocks.secret.my-token }}/my-image"`), the value is coerced to `str`; if it resolves to a `dict` or `list`, a `ValueError` is raised. A template string can mix block placeholders and standard `{{ variable }}` placeholders — non-block placeholders are left intact for later resolution.
|
|
21
|
+
- **Keep dict/list `NotSet` handling in sync.** Changes to unresolved-value handling in either branch of `apply_values` must be mirrored in the other. See the multi-pass caller contract in `src/prefect/AGENTS.md`.
|
|
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.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/_launchers.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/bundles/execute.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/plugins/apply.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/plugins/manager.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/plugins/spec.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/sla/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/sla/client.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_experimental/sla/objects.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/analytics/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/analytics/client.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/analytics/device_id.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/analytics/emit.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/analytics/enabled.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/analytics/events.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/analytics/notice.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/analytics/service.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/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.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/concurrency/api.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev3 → prefect_client-3.9.1.dev4}/src/prefect/_internal/concurrency/calls.py
RENAMED
|
File without changes
|
|
File without changes
|