prefect-client 3.7.9.dev4__tar.gz → 3.7.9.dev5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/PKG-INFO +1 -1
- prefect_client-3.7.9.dev5/src/prefect/_build_info.py +5 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/__init__.py +9 -9
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_deployments/client.py +2 -2
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_flow_runs/client.py +2 -2
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_flows/client.py +2 -2
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/schemas/filters.py +6 -2
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/concurrency/_asyncio.py +27 -5
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/concurrency/_sync.py +7 -6
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/deployments/runner.py +11 -7
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/flows.py +6 -5
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/dependencies.py +3 -3
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/__init__.py +2 -2
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/legacy.py +32 -17
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/server/ui.py +2 -2
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/profiles.py +137 -7
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/profiles.toml +3 -3
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/task_runners.py +4 -4
- prefect_client-3.7.9.dev4/src/prefect/_build_info.py +0 -5
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/.gitignore +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/LICENSE +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/README.md +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/hatch_build.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/pyproject.toml +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/.prefectignore +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/AGENTS.md +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/__main__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_experimental/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_experimental/_launchers.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_experimental/bundles/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_experimental/bundles/execute.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_experimental/plugins/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_experimental/plugins/apply.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_experimental/plugins/manager.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_experimental/plugins/spec.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_experimental/sla/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_experimental/sla/client.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_experimental/sla/objects.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_flow_run_suspension.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/_logging.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/analytics/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/analytics/ci_detection.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/analytics/client.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/analytics/device_id.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/analytics/emit.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/analytics/enabled.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/analytics/events.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/analytics/milestones.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/analytics/notice.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/analytics/service.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/ast_utils.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/buildx.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/compatibility/backports.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/compatibility/blocks.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/compatibility/deprecated_paths.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/compatibility/migration.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/compatibility/starlette.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/concurrency/services.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/concurrency/threads.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/control_listener.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/deprecated.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/engine.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/git.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/infrastructure_exit_codes.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/installation.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/integrations.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/launchers.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/lazy.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/metrics.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/observability.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/observers.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/plugins/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/plugins/apply.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/plugins/collections.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/plugins/diagnostics.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/plugins/manager.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/plugins/spec.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/plugins/startup.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/pydantic/validated_func.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/pytz.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/result_records.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/retries.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/schema.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/schemas/_registry.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/schemas/validators.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/send_entrypoint_logs.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/states.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/testing.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/urls.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/uuid7.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/version_checking.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/versioning.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/waiters.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_internal/websockets.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_sdk/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_sdk/fetcher.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_sdk/generator.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_sdk/models.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_sdk/naming.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_sdk/renderer.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_sdk/schema_converter.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_sdk/templates/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_sdk/templates/sdk.py.jinja +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_sdk/types.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_sdk/unions.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_vendor/croniter/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/_vendor/croniter/croniter.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/agent.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/analytics/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/artifacts.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/assets/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/assets/core.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/assets/materialize.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/automations.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/blocks/AGENTS.md +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/blocks/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/blocks/abstract.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/blocks/core.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/blocks/fields.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/blocks/notifications.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/blocks/redis.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/blocks/system.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/blocks/webhook.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/bundles/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/bundles/_file_collector.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/bundles/_ignore_filter.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/bundles/_path_resolver.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/bundles/_zip_builder.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/bundles/_zip_extractor.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/bundles/execute.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/cache_policies.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/AGENTS.md +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/attribution.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/base.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/cloud.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/collections.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/constants.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_automations/client.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_events/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_events/client.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_logs/client.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_variables/client.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/base.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/routes.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/schemas/actions.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/schemas/events.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/schemas/objects.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/schemas/responses.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/schemas/worker_channel.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/subscriptions.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/types/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/types/flexible_schedule_list.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/utilities.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/concurrency/AGENTS.md +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/concurrency/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/concurrency/_events.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/concurrency/_leases.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/concurrency/asyncio.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/concurrency/context.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/concurrency/services.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/concurrency/sync.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/concurrency/v1/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/concurrency/v1/_asyncio.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/concurrency/v1/_events.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/concurrency/v1/asyncio.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/concurrency/v1/context.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/concurrency/v1/services.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/concurrency/v1/sync.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/context.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/deployments/AGENTS.md +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/deployments/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/deployments/base.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/deployments/deployments.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/deployments/flow_runs.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/deployments/schedules.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/deployments/steps/core.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/docker/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/docker/_buildx.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/docker/docker_image.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/engine.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/events/AGENTS.md +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/events/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/events/actions.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/events/clients.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/events/filters.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/events/related.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/events/schemas/automations.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/events/schemas/events.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/events/subscribers.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/events/utilities.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/events/worker.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/exceptions.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/filesystems.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/flow_engine.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/flow_runs.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/futures.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/infrastructure/base.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/input/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/input/actions.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/input/run_input.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/locking/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/locking/_filelock.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/locking/filesystem.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/locking/memory.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/locking/protocol.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/logging/AGENTS.md +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/logging/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/logging/clients.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/logging/configuration.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/logging/filters.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/logging/formatters.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/logging/handlers.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/logging/highlighters.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/logging/loggers.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/logging/logging.yml +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/main.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/plugins.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/py.typed +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/results.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/AGENTS.md +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/_cancel_finalizer.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/_cancellation_manager.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/_control_channel.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/_deployment_registry.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/_event_emitter.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/_flow_resolver.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/_flow_run_executor.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/_hook_runner.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/_limit_manager.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/_process_manager.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/_scheduled_run_poller.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/_starter_bundle.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/_starter_direct.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/_starter_engine.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/_state_proposer.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/_workspace_resolver.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/_workspace_starter.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/runner.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/server.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runner/storage.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runtime/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runtime/deployment.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runtime/flow_run.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/runtime/task_run.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/schedules.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/serializers.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/_ui_static.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/admin.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/artifacts.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/automations.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/background_workers.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/block_capabilities.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/block_documents.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/block_schemas.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/block_types.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/clients.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/collections.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/concurrency_limits.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/csrf_token.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/deployments.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/events.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/flow_run_states.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/flow_runs.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/flows.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/logs.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/middleware.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/root.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/run_history.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/saved_searches.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/server.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/task_run_states.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/task_runs.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/task_workers.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/templates.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/ui/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/ui/flow_runs.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/ui/flows.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/ui/schemas.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/ui/task_runs.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/validation.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/variables.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/work_queues.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/workers.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/AGENTS.md +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/_types.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/base.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/constants.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/context.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/_defaults.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/api.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/cli.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/client.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/cloud.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/deployments.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/events.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/experiments.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/flows.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/internal.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/logging.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/plugins.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/results.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/root.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/runner.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/server/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/server/api.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/server/concurrency.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/server/database.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/server/deployments.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/server/docket.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/server/ephemeral.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/server/events.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/server/logs.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/server/root.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/server/services.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/server/tasks.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/server/worker_channel.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/tasks.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/telemetry.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/testing.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/worker.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/sources.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/states.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/task_engine.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/task_runs.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/task_worker.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/tasks.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/telemetry/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/telemetry/run_telemetry.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/transactions.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/types/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/types/_concurrency.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/types/_datetime.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/types/entrypoint.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/types/names.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/AGENTS.md +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/annotations.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/asyncutils/AGENTS.md +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/asyncutils/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/callables/AGENTS.md +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/callables/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/collections.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/compat.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/context.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/dispatch.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/engine/AGENTS.md +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/engine/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/filesystem/AGENTS.md +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/filesystem/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/generics.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/hashing.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/importtools.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/math.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/names.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/processutils/AGENTS.md +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/processutils/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/pydantic.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/schema_tools/AGENTS.md +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/services.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/slugify.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/templating/AGENTS.md +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/templating/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/text.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/timeout.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/urls.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/utilities/visualization.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/variables.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/workers/AGENTS.md +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/workers/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/workers/_cleanup.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/workers/_cleanup_handlers.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/workers/_worker_channel/__init__.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/workers/_worker_channel/_protocol.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/workers/_worker_channel/_state.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/workers/_worker_channel/_sync.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/workers/_worker_channel/_transport.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/workers/base.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/workers/block.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/workers/cloud.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/workers/process.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/workers/server.py +0 -0
- {prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/workers/utilities.py +0 -0
{prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/orchestration/__init__.py
RENAMED
|
@@ -123,7 +123,7 @@ from prefect.client.schemas.sorting import (
|
|
|
123
123
|
from prefect.logging import get_logger
|
|
124
124
|
from prefect.settings import (
|
|
125
125
|
PREFECT_API_AUTH_STRING,
|
|
126
|
-
|
|
126
|
+
PREFECT_SERVER_DATABASE_CONNECTION_URL,
|
|
127
127
|
PREFECT_API_ENABLE_HTTP2,
|
|
128
128
|
PREFECT_API_KEY,
|
|
129
129
|
PREFECT_API_REQUEST_TIMEOUT,
|
|
@@ -132,7 +132,7 @@ from prefect.settings import (
|
|
|
132
132
|
PREFECT_API_URL,
|
|
133
133
|
PREFECT_CLIENT_CSRF_SUPPORT_ENABLED,
|
|
134
134
|
PREFECT_CLOUD_API_URL,
|
|
135
|
-
|
|
135
|
+
PREFECT_SERVER_EPHEMERAL_ENABLED,
|
|
136
136
|
PREFECT_TESTING_UNIT_TEST_MODE,
|
|
137
137
|
)
|
|
138
138
|
from prefect.types._datetime import now
|
|
@@ -245,7 +245,7 @@ def get_client(
|
|
|
245
245
|
api: str = PREFECT_API_URL.value()
|
|
246
246
|
server_type = None
|
|
247
247
|
|
|
248
|
-
if not api and
|
|
248
|
+
if not api and PREFECT_SERVER_EPHEMERAL_ENABLED:
|
|
249
249
|
# create an ephemeral API if none was provided
|
|
250
250
|
from prefect.server.api.server import SubprocessASGIServer
|
|
251
251
|
|
|
@@ -255,7 +255,7 @@ def get_client(
|
|
|
255
255
|
|
|
256
256
|
api = server.api_url
|
|
257
257
|
server_type = ServerType.EPHEMERAL
|
|
258
|
-
elif not api and not
|
|
258
|
+
elif not api and not PREFECT_SERVER_EPHEMERAL_ENABLED:
|
|
259
259
|
raise ValueError(
|
|
260
260
|
"No Prefect API URL provided. Please set PREFECT_API_URL to the address of a running Prefect server."
|
|
261
261
|
)
|
|
@@ -933,7 +933,7 @@ class PrefectClient(
|
|
|
933
933
|
deployment_filter: filter criteria for deployments
|
|
934
934
|
sort: sort criteria for the task runs
|
|
935
935
|
limit: maximum number of task runs to return. When `None`, the server
|
|
936
|
-
applies `
|
|
936
|
+
applies `PREFECT_SERVER_API_DEFAULT_LIMIT` (200 by default).
|
|
937
937
|
offset: an offset for the task run query.
|
|
938
938
|
|
|
939
939
|
Returns:
|
|
@@ -1040,7 +1040,7 @@ class PrefectClient(
|
|
|
1040
1040
|
work_pool_name: Name of the work pool for which to get queues.
|
|
1041
1041
|
work_queue_filter: Criteria by which to filter queues.
|
|
1042
1042
|
limit: maximum number of work queues to return. When `None`, the server
|
|
1043
|
-
applies `
|
|
1043
|
+
applies `PREFECT_SERVER_API_DEFAULT_LIMIT` (200 by default).
|
|
1044
1044
|
offset: an offset for the work queue query.
|
|
1045
1045
|
|
|
1046
1046
|
Returns:
|
|
@@ -1190,7 +1190,7 @@ class PrefectClient(
|
|
|
1190
1190
|
if self._ephemeral_app:
|
|
1191
1191
|
self.logger.debug(
|
|
1192
1192
|
"Using ephemeral application with database at "
|
|
1193
|
-
f"{
|
|
1193
|
+
f"{PREFECT_SERVER_DATABASE_CONNECTION_URL.value()}"
|
|
1194
1194
|
)
|
|
1195
1195
|
else:
|
|
1196
1196
|
self.logger.debug(
|
|
@@ -1672,7 +1672,7 @@ class SyncPrefectClient(
|
|
|
1672
1672
|
deployment_filter: filter criteria for deployments
|
|
1673
1673
|
sort: sort criteria for the task runs
|
|
1674
1674
|
limit: maximum number of task runs to return. When `None`, the server
|
|
1675
|
-
applies `
|
|
1675
|
+
applies `PREFECT_SERVER_API_DEFAULT_LIMIT` (200 by default).
|
|
1676
1676
|
offset: an offset for the task run query.
|
|
1677
1677
|
|
|
1678
1678
|
Returns:
|
|
@@ -2082,7 +2082,7 @@ class SyncPrefectClient(
|
|
|
2082
2082
|
work_pool_name: Name of the work pool for which to get queues.
|
|
2083
2083
|
work_queue_filter: Criteria by which to filter queues.
|
|
2084
2084
|
limit: maximum number of work queues to return. When `None`, the server
|
|
2085
|
-
applies `
|
|
2085
|
+
applies `PREFECT_SERVER_API_DEFAULT_LIMIT` (200 by default).
|
|
2086
2086
|
offset: an offset for the work queue query.
|
|
2087
2087
|
|
|
2088
2088
|
Returns:
|
|
@@ -399,7 +399,7 @@ class DeploymentClient(BaseClient):
|
|
|
399
399
|
work_pool_filter: filter criteria for work pools
|
|
400
400
|
work_queue_filter: filter criteria for work pool queues
|
|
401
401
|
limit: maximum number of deployments to return. When `None`, the server
|
|
402
|
-
applies `
|
|
402
|
+
applies `PREFECT_SERVER_API_DEFAULT_LIMIT` (200 by default).
|
|
403
403
|
offset: an offset for the deployment query.
|
|
404
404
|
|
|
405
405
|
Returns:
|
|
@@ -1113,7 +1113,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
|
|
|
1113
1113
|
work_pool_filter: filter criteria for work pools
|
|
1114
1114
|
work_queue_filter: filter criteria for work pool queues
|
|
1115
1115
|
limit: maximum number of deployments to return. When `None`, the server
|
|
1116
|
-
applies `
|
|
1116
|
+
applies `PREFECT_SERVER_API_DEFAULT_LIMIT` (200 by default).
|
|
1117
1117
|
offset: an offset for the deployment query.
|
|
1118
1118
|
|
|
1119
1119
|
Returns:
|
|
@@ -282,7 +282,7 @@ class FlowRunClient(BaseClient):
|
|
|
282
282
|
work_queue_filter: filter criteria for work pool queues
|
|
283
283
|
sort: sort criteria for the flow runs
|
|
284
284
|
limit: maximum number of flow runs to return. When `None`, the server
|
|
285
|
-
applies `
|
|
285
|
+
applies `PREFECT_SERVER_API_DEFAULT_LIMIT` (200 by default).
|
|
286
286
|
offset: an offset for the flow run query.
|
|
287
287
|
|
|
288
288
|
Returns:
|
|
@@ -782,7 +782,7 @@ class FlowRunAsyncClient(BaseAsyncClient):
|
|
|
782
782
|
work_queue_filter: filter criteria for work pool queues
|
|
783
783
|
sort: sort criteria for the flow runs
|
|
784
784
|
limit: maximum number of flow runs to return. When `None`, the server
|
|
785
|
-
applies `
|
|
785
|
+
applies `PREFECT_SERVER_API_DEFAULT_LIMIT` (200 by default).
|
|
786
786
|
offset: an offset for the flow run query.
|
|
787
787
|
|
|
788
788
|
Returns:
|
|
@@ -129,7 +129,7 @@ class FlowClient(BaseClient):
|
|
|
129
129
|
work_queue_filter: filter criteria for work pool queues
|
|
130
130
|
sort: sort criteria for the flows
|
|
131
131
|
limit: maximum number of flows to return. When `None`, the server
|
|
132
|
-
applies `
|
|
132
|
+
applies `PREFECT_SERVER_API_DEFAULT_LIMIT` (200 by default).
|
|
133
133
|
offset: an offset for the flow query.
|
|
134
134
|
|
|
135
135
|
Returns:
|
|
@@ -289,7 +289,7 @@ class FlowAsyncClient(BaseAsyncClient):
|
|
|
289
289
|
work_queue_filter: filter criteria for work pool queues
|
|
290
290
|
sort: sort criteria for the flows
|
|
291
291
|
limit: maximum number of flows to return. When `None`, the server
|
|
292
|
-
applies `
|
|
292
|
+
applies `PREFECT_SERVER_API_DEFAULT_LIMIT` (200 by default).
|
|
293
293
|
offset: an offset for the flow query.
|
|
294
294
|
|
|
295
295
|
Returns:
|
{prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/client/schemas/filters.py
RENAMED
|
@@ -441,8 +441,12 @@ class TaskRunFilterStateName(PrefectBaseModel):
|
|
|
441
441
|
|
|
442
442
|
|
|
443
443
|
class TaskRunFilterState(PrefectBaseModel, OperatorMixin):
|
|
444
|
-
type: Optional[TaskRunFilterStateType]
|
|
445
|
-
|
|
444
|
+
type: Optional[TaskRunFilterStateType] = Field(
|
|
445
|
+
default=None, description="Filter criteria for `TaskRun` state type"
|
|
446
|
+
)
|
|
447
|
+
name: Optional[TaskRunFilterStateName] = Field(
|
|
448
|
+
default=None, description="Filter criteria for `TaskRun` state name"
|
|
449
|
+
)
|
|
446
450
|
|
|
447
451
|
|
|
448
452
|
class TaskRunFilterSubFlowRuns(PrefectBaseModel):
|
|
@@ -183,6 +183,15 @@ async def aacquire_concurrency_slots_with_lease(
|
|
|
183
183
|
log_level,
|
|
184
184
|
f"Concurrency limits {names!r} do not exist - skipping acquisition.",
|
|
185
185
|
)
|
|
186
|
+
elif ctx := ConcurrencyContext.get():
|
|
187
|
+
# Record the lease for cleanup the moment it is granted. In the sync
|
|
188
|
+
# path this coroutine runs to completion on a separate event loop thread
|
|
189
|
+
# that the caller's timeout/cancellation cannot reach, so a cancellation
|
|
190
|
+
# firing in the calling thread the instant the lease is granted can no
|
|
191
|
+
# longer lose the lease id and leak the slot. The normal release path
|
|
192
|
+
# removes it again; anything left over is released idempotently when the
|
|
193
|
+
# ConcurrencyContext exits.
|
|
194
|
+
ctx.cleanup_lease_ids.append(retval.lease_id)
|
|
186
195
|
|
|
187
196
|
return retval
|
|
188
197
|
|
|
@@ -204,6 +213,18 @@ async def arelease_concurrency_slots_with_lease(
|
|
|
204
213
|
await client.release_concurrency_slots_with_lease(lease_id=lease_id)
|
|
205
214
|
|
|
206
215
|
|
|
216
|
+
def _discard_cleanup_lease(lease_id: UUID) -> None:
|
|
217
|
+
"""Drop a lease id recorded for cleanup once it has been released normally.
|
|
218
|
+
|
|
219
|
+
Leases are recorded on the active `ConcurrencyContext` the moment they are
|
|
220
|
+
acquired; this removes one after a successful release so the context does not
|
|
221
|
+
re-release it on exit.
|
|
222
|
+
"""
|
|
223
|
+
ctx = ConcurrencyContext.get()
|
|
224
|
+
if ctx is not None and lease_id in ctx.cleanup_lease_ids:
|
|
225
|
+
ctx.cleanup_lease_ids.remove(lease_id)
|
|
226
|
+
|
|
227
|
+
|
|
207
228
|
def _response_to_minimal_concurrency_limit_response(
|
|
208
229
|
response: httpx.Response,
|
|
209
230
|
) -> list[MinimalConcurrencyLimitResponse]:
|
|
@@ -300,10 +321,11 @@ async def concurrency(
|
|
|
300
321
|
lease_id=response.lease_id,
|
|
301
322
|
)
|
|
302
323
|
except anyio.get_cancelled_exc_class():
|
|
303
|
-
# The task was cancelled before it could release the lease.
|
|
304
|
-
# lease ID
|
|
305
|
-
# concurrency context is exited.
|
|
306
|
-
|
|
307
|
-
|
|
324
|
+
# The task was cancelled before it could release the lease. Leave the
|
|
325
|
+
# lease ID in the cleanup list (recorded at acquisition) so it is
|
|
326
|
+
# released when the concurrency context is exited.
|
|
327
|
+
pass
|
|
328
|
+
else:
|
|
329
|
+
_discard_cleanup_lease(response.lease_id)
|
|
308
330
|
|
|
309
331
|
emit_concurrency_release_events(response.limits, occupy, emitted_events)
|
|
@@ -11,6 +11,7 @@ from prefect.client.schemas.responses import (
|
|
|
11
11
|
MinimalConcurrencyLimitResponse,
|
|
12
12
|
)
|
|
13
13
|
from prefect.concurrency._asyncio import (
|
|
14
|
+
_discard_cleanup_lease,
|
|
14
15
|
aacquire_concurrency_slots,
|
|
15
16
|
aacquire_concurrency_slots_with_lease,
|
|
16
17
|
arelease_concurrency_slots_with_lease,
|
|
@@ -20,7 +21,6 @@ from prefect.concurrency._events import (
|
|
|
20
21
|
emit_concurrency_release_events,
|
|
21
22
|
)
|
|
22
23
|
from prefect.concurrency._leases import maintain_concurrency_lease
|
|
23
|
-
from prefect.concurrency.context import ConcurrencyContext
|
|
24
24
|
from prefect.utilities.asyncutils import run_coro_as_sync
|
|
25
25
|
|
|
26
26
|
|
|
@@ -159,11 +159,12 @@ def concurrency(
|
|
|
159
159
|
try:
|
|
160
160
|
release_concurrency_slots_with_lease(acquisition_response.lease_id)
|
|
161
161
|
except CancelledError:
|
|
162
|
-
# The task was cancelled before it could release the lease.
|
|
163
|
-
# lease ID
|
|
164
|
-
# concurrency context is exited.
|
|
165
|
-
|
|
166
|
-
|
|
162
|
+
# The task was cancelled before it could release the lease. Leave the
|
|
163
|
+
# lease ID in the cleanup list (recorded at acquisition) so it is
|
|
164
|
+
# released when the concurrency context is exited.
|
|
165
|
+
pass
|
|
166
|
+
else:
|
|
167
|
+
_discard_cleanup_lease(acquisition_response.lease_id)
|
|
167
168
|
|
|
168
169
|
emit_concurrency_release_events(
|
|
169
170
|
acquisition_response.limits, occupy, emitted_events
|
|
@@ -98,7 +98,7 @@ from prefect.exceptions import (
|
|
|
98
98
|
from prefect.runner.storage import RunnerStorage
|
|
99
99
|
from prefect.schedules import Schedule
|
|
100
100
|
from prefect.settings import (
|
|
101
|
-
|
|
101
|
+
PREFECT_DEPLOYMENTS_DEFAULT_WORK_POOL_NAME,
|
|
102
102
|
PREFECT_UI_URL,
|
|
103
103
|
)
|
|
104
104
|
from prefect.types import ListOfNonEmptyStrings
|
|
@@ -1446,7 +1446,7 @@ async def adeploy(
|
|
|
1446
1446
|
Args:
|
|
1447
1447
|
*deployments: A list of deployments to deploy.
|
|
1448
1448
|
work_pool_name: The name of the work pool to use for these deployments. Defaults to
|
|
1449
|
-
the value of `
|
|
1449
|
+
the value of `PREFECT_DEPLOYMENTS_DEFAULT_WORK_POOL_NAME`.
|
|
1450
1450
|
image: The name of the Docker image to build, including the registry and
|
|
1451
1451
|
repository. Pass a DockerImage instance to customize the Dockerfile used
|
|
1452
1452
|
and build arguments.
|
|
@@ -1483,7 +1483,9 @@ async def adeploy(
|
|
|
1483
1483
|
)
|
|
1484
1484
|
```
|
|
1485
1485
|
"""
|
|
1486
|
-
work_pool_name =
|
|
1486
|
+
work_pool_name = (
|
|
1487
|
+
work_pool_name or PREFECT_DEPLOYMENTS_DEFAULT_WORK_POOL_NAME.value()
|
|
1488
|
+
)
|
|
1487
1489
|
|
|
1488
1490
|
if not image and not all(
|
|
1489
1491
|
d.storage or d.entrypoint_type == EntrypointType.MODULE_PATH
|
|
@@ -1498,7 +1500,7 @@ async def adeploy(
|
|
|
1498
1500
|
raise ValueError(
|
|
1499
1501
|
"A work pool name must be provided when deploying a deployment. Either"
|
|
1500
1502
|
" provide a work pool name when calling `deploy` or set"
|
|
1501
|
-
" `
|
|
1503
|
+
" `PREFECT_DEPLOYMENTS_DEFAULT_WORK_POOL_NAME` in your profile."
|
|
1502
1504
|
)
|
|
1503
1505
|
|
|
1504
1506
|
if image and isinstance(image, str):
|
|
@@ -1685,7 +1687,7 @@ def deploy(
|
|
|
1685
1687
|
Args:
|
|
1686
1688
|
*deployments: A list of deployments to deploy.
|
|
1687
1689
|
work_pool_name: The name of the work pool to use for these deployments. Defaults to
|
|
1688
|
-
the value of `
|
|
1690
|
+
the value of `PREFECT_DEPLOYMENTS_DEFAULT_WORK_POOL_NAME`.
|
|
1689
1691
|
image: The name of the Docker image to build, including the registry and
|
|
1690
1692
|
repository. Pass a DockerImage instance to customize the Dockerfile used
|
|
1691
1693
|
and build arguments.
|
|
@@ -1722,7 +1724,9 @@ def deploy(
|
|
|
1722
1724
|
)
|
|
1723
1725
|
```
|
|
1724
1726
|
"""
|
|
1725
|
-
work_pool_name =
|
|
1727
|
+
work_pool_name = (
|
|
1728
|
+
work_pool_name or PREFECT_DEPLOYMENTS_DEFAULT_WORK_POOL_NAME.value()
|
|
1729
|
+
)
|
|
1726
1730
|
|
|
1727
1731
|
if not image and not all(
|
|
1728
1732
|
d.storage or d.entrypoint_type == EntrypointType.MODULE_PATH
|
|
@@ -1737,7 +1741,7 @@ def deploy(
|
|
|
1737
1741
|
raise ValueError(
|
|
1738
1742
|
"A work pool name must be provided when deploying a deployment. Either"
|
|
1739
1743
|
" provide a work pool name when calling `deploy` or set"
|
|
1740
|
-
" `
|
|
1744
|
+
" `PREFECT_DEPLOYMENTS_DEFAULT_WORK_POOL_NAME` in your profile."
|
|
1741
1745
|
)
|
|
1742
1746
|
|
|
1743
1747
|
if image and isinstance(image, str):
|
|
@@ -74,7 +74,7 @@ from prefect.logging.loggers import flow_run_logger
|
|
|
74
74
|
from prefect.results import ResultSerializer, ResultStorage
|
|
75
75
|
from prefect.schedules import Schedule
|
|
76
76
|
from prefect.settings import (
|
|
77
|
-
|
|
77
|
+
PREFECT_DEPLOYMENTS_DEFAULT_WORK_POOL_NAME,
|
|
78
78
|
PREFECT_FLOW_DEFAULT_RETRIES,
|
|
79
79
|
PREFECT_FLOW_DEFAULT_RETRY_DELAY_SECONDS,
|
|
80
80
|
PREFECT_TESTING_UNIT_TEST_MODE,
|
|
@@ -1468,7 +1468,7 @@ class Flow(Generic[P, R]):
|
|
|
1468
1468
|
Args:
|
|
1469
1469
|
name: The name to give the created deployment.
|
|
1470
1470
|
work_pool_name: The name of the work pool to use for this deployment. Defaults to
|
|
1471
|
-
the value of `
|
|
1471
|
+
the value of `PREFECT_DEPLOYMENTS_DEFAULT_WORK_POOL_NAME`.
|
|
1472
1472
|
image: The name of the Docker image to build, including the registry and
|
|
1473
1473
|
repository. Pass a DockerImage instance to customize the Dockerfile used
|
|
1474
1474
|
and build arguments.
|
|
@@ -1534,11 +1534,12 @@ class Flow(Generic[P, R]):
|
|
|
1534
1534
|
```
|
|
1535
1535
|
"""
|
|
1536
1536
|
if not (
|
|
1537
|
-
work_pool_name := work_pool_name
|
|
1537
|
+
work_pool_name := work_pool_name
|
|
1538
|
+
or PREFECT_DEPLOYMENTS_DEFAULT_WORK_POOL_NAME.value()
|
|
1538
1539
|
):
|
|
1539
1540
|
raise ValueError(
|
|
1540
1541
|
"No work pool name provided. Please provide a `work_pool_name` or set the"
|
|
1541
|
-
" `
|
|
1542
|
+
" `PREFECT_DEPLOYMENTS_DEFAULT_WORK_POOL_NAME` environment variable."
|
|
1542
1543
|
)
|
|
1543
1544
|
|
|
1544
1545
|
from prefect.client.orchestration import get_client
|
|
@@ -1665,7 +1666,7 @@ class Flow(Generic[P, R]):
|
|
|
1665
1666
|
Args:
|
|
1666
1667
|
name: The name to give the created deployment.
|
|
1667
1668
|
work_pool_name: The name of the work pool to use for this deployment. Defaults to
|
|
1668
|
-
the value of `
|
|
1669
|
+
the value of `PREFECT_DEPLOYMENTS_DEFAULT_WORK_POOL_NAME`.
|
|
1669
1670
|
image: The name of the Docker image to build, including the registry and
|
|
1670
1671
|
repository. Pass a DockerImage instance to customize the Dockerfile used
|
|
1671
1672
|
and build arguments.
|
{prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/server/api/dependencies.py
RENAMED
|
@@ -17,7 +17,7 @@ from starlette.requests import Request
|
|
|
17
17
|
|
|
18
18
|
from prefect._internal.compatibility.starlette import status
|
|
19
19
|
from prefect.server import schemas
|
|
20
|
-
from prefect.settings import
|
|
20
|
+
from prefect.settings import PREFECT_SERVER_API_DEFAULT_LIMIT
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
def provide_request_api_version(
|
|
@@ -111,10 +111,10 @@ def LimitBody() -> Any:
|
|
|
111
111
|
def get_limit(
|
|
112
112
|
limit: int = Body(
|
|
113
113
|
None,
|
|
114
|
-
description="Defaults to
|
|
114
|
+
description="Defaults to PREFECT_SERVER_API_DEFAULT_LIMIT if not provided.",
|
|
115
115
|
),
|
|
116
116
|
):
|
|
117
|
-
default_limit =
|
|
117
|
+
default_limit = PREFECT_SERVER_API_DEFAULT_LIMIT.value()
|
|
118
118
|
limit = limit if limit is not None else default_limit
|
|
119
119
|
if not limit >= 0:
|
|
120
120
|
raise HTTPException(
|
|
@@ -34,12 +34,12 @@ if TYPE_CHECKING:
|
|
|
34
34
|
|
|
35
35
|
def __getattr__(name: str) -> "Setting":
|
|
36
36
|
from prefect.settings.legacy import (
|
|
37
|
-
|
|
37
|
+
_get_legacy_setting,
|
|
38
38
|
_get_valid_setting_names,
|
|
39
39
|
)
|
|
40
40
|
|
|
41
41
|
if name in _get_valid_setting_names(Settings):
|
|
42
|
-
return
|
|
42
|
+
return _get_legacy_setting(name)
|
|
43
43
|
raise AttributeError(f"{name} is not a Prefect setting.")
|
|
44
44
|
|
|
45
45
|
|
|
@@ -140,28 +140,43 @@ def _get_settings_fields(
|
|
|
140
140
|
if accessor_prefix is None
|
|
141
141
|
else f"{accessor_prefix}.{field_name}"
|
|
142
142
|
)
|
|
143
|
+
canonical_name = (
|
|
144
|
+
f"{settings.model_config.get('env_prefix')}{field_name.upper()}"
|
|
145
|
+
)
|
|
146
|
+
setting = Setting(
|
|
147
|
+
name=canonical_name,
|
|
148
|
+
default=field.default,
|
|
149
|
+
type_=field.annotation,
|
|
150
|
+
accessor=accessor,
|
|
151
|
+
)
|
|
152
|
+
settings_fields[canonical_name] = setting
|
|
153
|
+
settings_fields[accessor] = setting
|
|
143
154
|
if field.validation_alias and isinstance(
|
|
144
155
|
field.validation_alias, AliasChoices
|
|
145
156
|
):
|
|
146
157
|
for alias in field.validation_alias.choices:
|
|
147
158
|
if not isinstance(alias, str):
|
|
148
159
|
continue
|
|
149
|
-
|
|
150
|
-
name=alias.upper(),
|
|
151
|
-
default=field.default,
|
|
152
|
-
type_=field.annotation,
|
|
153
|
-
accessor=accessor,
|
|
154
|
-
)
|
|
155
|
-
settings_fields[setting.name] = setting
|
|
156
|
-
settings_fields[setting.accessor] = setting
|
|
157
|
-
else:
|
|
158
|
-
setting = Setting(
|
|
159
|
-
name=f"{settings.model_config.get('env_prefix')}{field_name.upper()}",
|
|
160
|
-
default=field.default,
|
|
161
|
-
type_=field.annotation,
|
|
162
|
-
accessor=accessor,
|
|
163
|
-
)
|
|
164
|
-
settings_fields[setting.name] = setting
|
|
165
|
-
settings_fields[setting.accessor] = setting
|
|
160
|
+
settings_fields[alias.upper()] = setting
|
|
166
161
|
|
|
167
162
|
return settings_fields
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
@cache
|
|
166
|
+
def _get_legacy_setting(name: str) -> "Setting":
|
|
167
|
+
"""
|
|
168
|
+
Return a Setting object for the given env var name.
|
|
169
|
+
|
|
170
|
+
Canonical names and accessors resolve to the canonical Setting. Legacy aliases
|
|
171
|
+
resolve to a distinct Setting whose `.name` is the alias while its `.accessor`
|
|
172
|
+
points to the canonical setting path.
|
|
173
|
+
"""
|
|
174
|
+
canonical = _get_settings_fields(Settings)[name]
|
|
175
|
+
if name == canonical.name or name == canonical.accessor:
|
|
176
|
+
return canonical
|
|
177
|
+
return Setting(
|
|
178
|
+
name=name,
|
|
179
|
+
default=canonical.default(),
|
|
180
|
+
type_=canonical._type,
|
|
181
|
+
accessor=canonical.accessor,
|
|
182
|
+
)
|
{prefect_client-3.7.9.dev4 → prefect_client-3.7.9.dev5}/src/prefect/settings/models/server/ui.py
RENAMED
|
@@ -20,8 +20,8 @@ class ServerUISettings(PrefectBaseSettings):
|
|
|
20
20
|
)
|
|
21
21
|
|
|
22
22
|
v2_enabled: bool = Field(
|
|
23
|
-
default=
|
|
24
|
-
description="Whether neutral UI entry points should default to the
|
|
23
|
+
default=True,
|
|
24
|
+
description="Whether neutral UI entry points should default to the V2 UI instead of V1 when the browser has no saved UI preference. Set to false to restore V1 as the default for browsers without a saved preference.",
|
|
25
25
|
)
|
|
26
26
|
|
|
27
27
|
api_url: Optional[str] = Field(
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import warnings
|
|
4
|
+
from collections.abc import Mapping
|
|
4
5
|
from pathlib import Path
|
|
5
6
|
from typing import (
|
|
6
7
|
Annotated,
|
|
@@ -19,6 +20,7 @@ from pydantic import (
|
|
|
19
20
|
Field,
|
|
20
21
|
ValidationError,
|
|
21
22
|
)
|
|
23
|
+
from typing_extensions import Self
|
|
22
24
|
|
|
23
25
|
from prefect._internal.compatibility.backports import tomllib
|
|
24
26
|
from prefect.exceptions import ProfileSettingsValidationError
|
|
@@ -29,23 +31,147 @@ from prefect.settings.models.root import Settings
|
|
|
29
31
|
from prefect.utilities.collections import set_in_dict
|
|
30
32
|
|
|
31
33
|
|
|
34
|
+
class _SettingsDict(dict):
|
|
35
|
+
"""
|
|
36
|
+
A dictionary that stores profile settings using canonical Setting keys while
|
|
37
|
+
allowing lookup via legacy Setting aliases.
|
|
38
|
+
|
|
39
|
+
Canonical names are used for persistence and export; legacy keys transparently
|
|
40
|
+
resolve to the canonical entry for `__getitem__`, `get`, `__contains__`,
|
|
41
|
+
assignment, union, and equality checks.
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
def _canonical_key(self, key: Any) -> Any:
|
|
45
|
+
if isinstance(key, Setting):
|
|
46
|
+
settings_fields = _get_settings_fields(Settings)
|
|
47
|
+
canonical = settings_fields.get(key.name)
|
|
48
|
+
if canonical is None:
|
|
49
|
+
canonical = settings_fields[key.accessor]
|
|
50
|
+
return canonical
|
|
51
|
+
if isinstance(key, str):
|
|
52
|
+
settings_fields = _get_settings_fields(Settings)
|
|
53
|
+
canonical = settings_fields.get(key)
|
|
54
|
+
if canonical is None:
|
|
55
|
+
canonical = settings_fields.get(key.upper())
|
|
56
|
+
return canonical if canonical is not None else key
|
|
57
|
+
return key
|
|
58
|
+
|
|
59
|
+
def __getitem__(self, key: Any) -> Any:
|
|
60
|
+
return super().__getitem__(self._canonical_key(key))
|
|
61
|
+
|
|
62
|
+
def __setitem__(self, key: Any, value: Any) -> None:
|
|
63
|
+
super().__setitem__(self._canonical_key(key), value)
|
|
64
|
+
|
|
65
|
+
def __delitem__(self, key: Any) -> None:
|
|
66
|
+
super().__delitem__(self._canonical_key(key))
|
|
67
|
+
|
|
68
|
+
def __contains__(self, key: Any) -> bool:
|
|
69
|
+
return super().__contains__(self._canonical_key(key))
|
|
70
|
+
|
|
71
|
+
def get(self, key: Any, default: Any = None) -> Any: # type: ignore[override]
|
|
72
|
+
return super().get(self._canonical_key(key), default)
|
|
73
|
+
|
|
74
|
+
def pop(self, key: Any, *args: Any) -> Any:
|
|
75
|
+
return super().pop(self._canonical_key(key), *args)
|
|
76
|
+
|
|
77
|
+
def setdefault(self, key: Any, default: Any = None) -> Any: # type: ignore[override]
|
|
78
|
+
return super().setdefault(self._canonical_key(key), default)
|
|
79
|
+
|
|
80
|
+
def update(self, *args: Any, **kwargs: Any) -> None:
|
|
81
|
+
if args:
|
|
82
|
+
if len(args) > 1:
|
|
83
|
+
raise TypeError("update expected at most 1 argument")
|
|
84
|
+
other = args[0]
|
|
85
|
+
if isinstance(other, Mapping):
|
|
86
|
+
for k, v in other.items():
|
|
87
|
+
self[k] = v
|
|
88
|
+
else:
|
|
89
|
+
for k, v in other:
|
|
90
|
+
self[k] = v
|
|
91
|
+
for k, v in kwargs.items():
|
|
92
|
+
self[k] = v
|
|
93
|
+
|
|
94
|
+
def __eq__(self, other: object) -> bool:
|
|
95
|
+
if not isinstance(other, Mapping):
|
|
96
|
+
return NotImplemented
|
|
97
|
+
return dict(self) == {self._canonical_key(k): v for k, v in other.items()}
|
|
98
|
+
|
|
99
|
+
def __ne__(self, other: object) -> bool:
|
|
100
|
+
eq = self.__eq__(other)
|
|
101
|
+
if eq is NotImplemented:
|
|
102
|
+
return NotImplemented
|
|
103
|
+
return not eq
|
|
104
|
+
|
|
105
|
+
def __ior__(self, other: Any) -> Self:
|
|
106
|
+
if not isinstance(other, Mapping):
|
|
107
|
+
return NotImplemented
|
|
108
|
+
self.update(other)
|
|
109
|
+
return self
|
|
110
|
+
|
|
111
|
+
def __or__(self, other: Any) -> "_SettingsDict":
|
|
112
|
+
if not isinstance(other, Mapping):
|
|
113
|
+
return NotImplemented
|
|
114
|
+
result = _SettingsDict()
|
|
115
|
+
result.update(self)
|
|
116
|
+
result.update(other)
|
|
117
|
+
return result
|
|
118
|
+
|
|
119
|
+
def __ror__(self, other: Any) -> "_SettingsDict":
|
|
120
|
+
if not isinstance(other, Mapping):
|
|
121
|
+
return NotImplemented
|
|
122
|
+
result = _SettingsDict()
|
|
123
|
+
result.update(other)
|
|
124
|
+
result.update(self)
|
|
125
|
+
return result
|
|
126
|
+
|
|
127
|
+
|
|
32
128
|
def _cast_settings(
|
|
33
129
|
settings: dict[str | Setting, Any] | Any,
|
|
34
130
|
) -> dict[Setting, Any]:
|
|
35
|
-
"""For backwards compatibility, allow either Settings objects as keys or string references to settings.
|
|
131
|
+
"""For backwards compatibility, allow either Settings objects as keys or string references to settings.
|
|
132
|
+
|
|
133
|
+
Canonical setting names take precedence over legacy aliases. If both a canonical
|
|
134
|
+
name and an alias are present for the same setting, the canonical value is used.
|
|
135
|
+
"""
|
|
36
136
|
if not isinstance(settings, dict):
|
|
37
137
|
raise ValueError("Settings must be a dictionary.")
|
|
38
|
-
|
|
138
|
+
|
|
139
|
+
casted_settings: dict[Setting, Any] = {}
|
|
140
|
+
canonical_keys: set[Setting] = set()
|
|
141
|
+
|
|
142
|
+
settings_fields = _get_settings_fields(Settings)
|
|
143
|
+
|
|
144
|
+
def _resolve_key(k: str | Setting) -> tuple[Setting, bool]:
|
|
145
|
+
if isinstance(k, Setting):
|
|
146
|
+
canonical = settings_fields.get(k.name)
|
|
147
|
+
if canonical is None:
|
|
148
|
+
canonical = settings_fields[k.accessor]
|
|
149
|
+
is_canonical = k.name == canonical.name
|
|
150
|
+
return canonical, is_canonical
|
|
151
|
+
setting = settings_fields[k]
|
|
152
|
+
return setting, k == setting.name or k == setting.accessor
|
|
153
|
+
|
|
154
|
+
# First pass: canonical keys win over aliases regardless of input order.
|
|
39
155
|
for k, value in settings.items():
|
|
40
156
|
try:
|
|
41
|
-
|
|
42
|
-
setting = _get_settings_fields(Settings)[k]
|
|
43
|
-
else:
|
|
44
|
-
setting = k
|
|
45
|
-
casted_settings[setting] = value
|
|
157
|
+
setting, is_canonical = _resolve_key(k)
|
|
46
158
|
except KeyError as e:
|
|
47
159
|
warnings.warn(f"Setting {e} is not recognized")
|
|
48
160
|
continue
|
|
161
|
+
if is_canonical:
|
|
162
|
+
casted_settings[setting] = value
|
|
163
|
+
canonical_keys.add(setting)
|
|
164
|
+
|
|
165
|
+
# Second pass: keep alias values only when no canonical key was provided.
|
|
166
|
+
for k, value in settings.items():
|
|
167
|
+
try:
|
|
168
|
+
setting, is_canonical = _resolve_key(k)
|
|
169
|
+
except KeyError:
|
|
170
|
+
continue
|
|
171
|
+
if is_canonical or setting in canonical_keys:
|
|
172
|
+
continue
|
|
173
|
+
casted_settings[setting] = value
|
|
174
|
+
|
|
49
175
|
return casted_settings
|
|
50
176
|
|
|
51
177
|
|
|
@@ -66,6 +192,10 @@ class Profile(BaseModel):
|
|
|
66
192
|
)
|
|
67
193
|
source: Optional[Path] = None
|
|
68
194
|
|
|
195
|
+
def model_post_init(self, __context: Any) -> None:
|
|
196
|
+
if not isinstance(self.settings, _SettingsDict):
|
|
197
|
+
self.__dict__["settings"] = _SettingsDict(self.settings)
|
|
198
|
+
|
|
69
199
|
def to_environment_variables(self) -> dict[str, str]:
|
|
70
200
|
"""Convert the profile settings to a dictionary of environment variables."""
|
|
71
201
|
return {
|