prefect-client 3.6.30.dev4__tar.gz → 3.7.1.dev1__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.6.30.dev4 → prefect_client-3.7.1.dev1}/PKG-INFO +1 -1
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/AGENTS.md +2 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/__init__.py +4 -5
- prefect_client-3.7.1.dev1/src/prefect/_build_info.py +5 -0
- prefect_client-3.7.1.dev1/src/prefect/_experimental/_launchers.py +31 -0
- prefect_client-3.7.1.dev1/src/prefect/_experimental/bundles/__init__.py +68 -0
- prefect_client-3.7.1.dev1/src/prefect/_experimental/bundles/execute.py +46 -0
- prefect_client-3.7.1.dev1/src/prefect/_experimental/plugins/__init__.py +16 -0
- prefect_client-3.7.1.dev1/src/prefect/_experimental/plugins/apply.py +5 -0
- prefect_client-3.7.1.dev1/src/prefect/_experimental/plugins/diagnostics.py +7 -0
- prefect_client-3.7.1.dev1/src/prefect/_experimental/plugins/manager.py +7 -0
- prefect_client-3.7.1.dev1/src/prefect/_experimental/plugins/spec.py +7 -0
- prefect_client-3.7.1.dev1/src/prefect/_internal/compatibility/deprecated_paths.py +60 -0
- prefect_client-3.7.1.dev1/src/prefect/_internal/plugins/__init__.py +7 -0
- {prefect_client-3.6.30.dev4/src/prefect/_experimental → prefect_client-3.7.1.dev1/src/prefect/_internal}/plugins/apply.py +1 -1
- prefect_client-3.6.30.dev4/src/prefect/plugins.py → prefect_client-3.7.1.dev1/src/prefect/_internal/plugins/collections.py +5 -5
- {prefect_client-3.6.30.dev4/src/prefect/_experimental → prefect_client-3.7.1.dev1/src/prefect/_internal}/plugins/diagnostics.py +1 -1
- {prefect_client-3.6.30.dev4/src/prefect/_experimental → prefect_client-3.7.1.dev1/src/prefect/_internal}/plugins/manager.py +5 -2
- {prefect_client-3.6.30.dev4/src/prefect/_experimental → prefect_client-3.7.1.dev1/src/prefect/_internal}/plugins/spec.py +7 -3
- prefect_client-3.6.30.dev4/src/prefect/_experimental/plugins/__init__.py → prefect_client-3.7.1.dev1/src/prefect/_internal/plugins/startup.py +16 -29
- {prefect_client-3.6.30.dev4/src/prefect/_experimental → prefect_client-3.7.1.dev1/src/prefect}/_launchers.py +1 -1
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/blocks/core.py +21 -3
- {prefect_client-3.6.30.dev4/src/prefect/_experimental → prefect_client-3.7.1.dev1/src/prefect}/bundles/__init__.py +17 -2
- {prefect_client-3.6.30.dev4/src/prefect/_experimental → prefect_client-3.7.1.dev1/src/prefect}/bundles/_file_collector.py +2 -2
- {prefect_client-3.6.30.dev4/src/prefect/_experimental → prefect_client-3.7.1.dev1/src/prefect}/bundles/execute.py +6 -5
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/flows.py +8 -25
- prefect_client-3.7.1.dev1/src/prefect/plugins.py +76 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/AGENTS.md +2 -2
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/_starter_bundle.py +2 -2
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/runner.py +7 -7
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/block_documents.py +9 -3
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/AGENTS.md +1 -0
- prefect_client-3.7.1.dev1/src/prefect/settings/models/experiments.py +88 -0
- prefect_client-3.7.1.dev1/src/prefect/settings/models/plugins.py +191 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/root.py +58 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/workers/base.py +2 -2
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/workers/process.py +1 -1
- prefect_client-3.6.30.dev4/src/prefect/_build_info.py +0 -5
- prefect_client-3.6.30.dev4/src/prefect/settings/models/experiments.py +0 -77
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/.gitignore +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/LICENSE +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/README.md +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/hatch_build.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/pyproject.toml +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/.prefectignore +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/__main__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_experimental/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_experimental/sla/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_experimental/sla/client.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_experimental/sla/objects.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/_logging.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/analytics/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/analytics/ci_detection.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/analytics/client.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/analytics/device_id.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/analytics/emit.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/analytics/enabled.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/analytics/events.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/analytics/milestones.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/analytics/notice.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/analytics/service.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/compatibility/backports.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/compatibility/blocks.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/compatibility/migration.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/compatibility/starlette.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/concurrency/services.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/concurrency/threads.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/control_listener.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/installation.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/integrations.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/lazy.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/observability.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/pydantic/validated_func.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/pytz.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/retries.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/schemas/validators.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/send_entrypoint_logs.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/testing.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/urls.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/uuid7.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_internal/websockets.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_observers.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_result_records.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_sdk/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_sdk/fetcher.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_sdk/generator.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_sdk/models.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_sdk/naming.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_sdk/renderer.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_sdk/schema_converter.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_sdk/templates/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_sdk/templates/sdk.py.jinja +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_sdk/types.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_sdk/unions.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_states.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_vendor/croniter/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_vendor/croniter/croniter.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_versioning.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/_waiters.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/agent.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/analytics/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/artifacts.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/assets/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/assets/core.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/assets/materialize.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/automations.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/blocks/AGENTS.md +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/blocks/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/blocks/abstract.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/blocks/fields.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/blocks/notifications.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/blocks/redis.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/blocks/system.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/blocks/webhook.py +0 -0
- {prefect_client-3.6.30.dev4/src/prefect/_experimental → prefect_client-3.7.1.dev1/src/prefect}/bundles/_ignore_filter.py +0 -0
- {prefect_client-3.6.30.dev4/src/prefect/_experimental → prefect_client-3.7.1.dev1/src/prefect}/bundles/_path_resolver.py +0 -0
- {prefect_client-3.6.30.dev4/src/prefect/_experimental → prefect_client-3.7.1.dev1/src/prefect}/bundles/_zip_builder.py +0 -0
- {prefect_client-3.6.30.dev4/src/prefect/_experimental → prefect_client-3.7.1.dev1/src/prefect}/bundles/_zip_extractor.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/cache_policies.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/AGENTS.md +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/_version_checking.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/attribution.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/base.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/cloud.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/collections.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/constants.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_automations/client.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_deployments/client.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_events/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_events/client.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_flows/client.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_logs/client.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_variables/client.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/base.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/orchestration/routes.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/schemas/actions.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/schemas/events.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/schemas/filters.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/schemas/objects.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/schemas/responses.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/subscriptions.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/types/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/types/flexible_schedule_list.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/client/utilities.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/concurrency/AGENTS.md +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/concurrency/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/concurrency/_asyncio.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/concurrency/_events.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/concurrency/_leases.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/concurrency/_sync.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/concurrency/asyncio.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/concurrency/context.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/concurrency/services.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/concurrency/sync.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/concurrency/v1/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/concurrency/v1/_asyncio.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/concurrency/v1/_events.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/concurrency/v1/asyncio.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/concurrency/v1/context.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/concurrency/v1/services.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/concurrency/v1/sync.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/context.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/deployments/AGENTS.md +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/deployments/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/deployments/base.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/deployments/deployments.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/deployments/flow_runs.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/deployments/runner.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/deployments/schedules.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/deployments/steps/core.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/docker/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/docker/_buildx.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/docker/docker_image.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/engine.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/events/AGENTS.md +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/events/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/events/actions.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/events/clients.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/events/filters.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/events/related.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/events/schemas/automations.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/events/schemas/events.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/events/subscribers.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/events/utilities.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/events/worker.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/exceptions.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/filesystems.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/flow_engine.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/flow_runs.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/futures.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/infrastructure/base.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/input/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/input/actions.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/input/run_input.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/locking/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/locking/_filelock.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/locking/filesystem.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/locking/memory.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/locking/protocol.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/logging/AGENTS.md +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/logging/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/logging/clients.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/logging/configuration.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/logging/filters.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/logging/formatters.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/logging/handlers.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/logging/highlighters.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/logging/loggers.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/logging/logging.yml +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/main.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/py.typed +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/results.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/_cancel_finalizer.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/_cancellation_manager.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/_control_channel.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/_deployment_registry.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/_event_emitter.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/_flow_resolver.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/_flow_run_executor.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/_hook_runner.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/_limit_manager.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/_process_manager.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/_scheduled_run_poller.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/_starter_direct.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/_starter_engine.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/_state_proposer.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/_workspace_resolver.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/_workspace_starter.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/server.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runner/storage.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runtime/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runtime/deployment.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runtime/flow_run.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/runtime/task_run.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/schedules.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/serializers.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/admin.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/artifacts.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/automations.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/background_workers.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/block_capabilities.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/block_schemas.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/block_types.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/clients.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/collections.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/concurrency_limits.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/csrf_token.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/dependencies.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/deployments.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/events.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/flow_run_states.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/flow_runs.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/flows.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/logs.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/middleware.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/root.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/run_history.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/saved_searches.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/server.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/task_run_states.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/task_runs.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/task_workers.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/templates.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/ui/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/ui/flow_runs.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/ui/flows.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/ui/schemas.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/ui/task_runs.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/validation.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/variables.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/work_queues.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/server/api/workers.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/base.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/constants.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/context.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/legacy.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/_defaults.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/api.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/cli.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/client.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/cloud.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/deployments.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/events.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/flows.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/internal.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/logging.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/results.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/runner.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/server/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/server/api.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/server/concurrency.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/server/database.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/server/deployments.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/server/docket.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/server/ephemeral.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/server/events.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/server/logs.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/server/root.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/server/services.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/server/tasks.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/server/ui.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/tasks.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/telemetry.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/testing.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/models/worker.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/profiles.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/profiles.toml +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/settings/sources.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/states.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/task_engine.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/task_runners.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/task_runs.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/task_worker.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/tasks.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/telemetry/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/telemetry/_metrics.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/telemetry/run_telemetry.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/transactions.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/types/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/types/_concurrency.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/types/_datetime.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/types/_schema.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/types/entrypoint.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/types/names.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/AGENTS.md +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/_ast.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/_deprecated.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/_engine.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/_git.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/_infrastructure_exit_codes.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/annotations.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/asyncutils/AGENTS.md +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/asyncutils/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/callables/AGENTS.md +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/callables/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/collections.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/compat.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/context.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/dispatch.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/engine/AGENTS.md +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/engine/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/filesystem/AGENTS.md +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/filesystem/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/generics.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/hashing.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/importtools.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/math.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/names.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/processutils/AGENTS.md +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/processutils/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/pydantic.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/schema_tools/AGENTS.md +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/services.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/slugify.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/templating/AGENTS.md +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/templating/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/text.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/timeout.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/urls.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/utilities/visualization.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/variables.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/workers/AGENTS.md +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/workers/__init__.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/workers/block.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/workers/cloud.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/workers/server.py +0 -0
- {prefect_client-3.6.30.dev4 → prefect_client-3.7.1.dev1}/src/prefect/workers/utilities.py +0 -0
|
@@ -58,6 +58,8 @@ Use `get_logger()` from `prefect.logging` instead of raw `logging.getLogger()`
|
|
|
58
58
|
- `utilities/` → Cross-cutting helpers: async utils, schema hydration, callables introspection, and more (see utilities/AGENTS.md)
|
|
59
59
|
- `blocks/` → Server-persisted configuration objects for external service credentials and settings (see blocks/AGENTS.md)
|
|
60
60
|
- `workers/` → Work-pool-based execution layer: polls for flow runs, dispatches to infrastructure (see workers/AGENTS.md)
|
|
61
|
+
- `bundles/` → Flow bundling for remote execution (`create_bundle_for_flow_run`, cloudpickle+gzip); used by workers when dispatching `InfrastructureBoundFlow` runs; `execute_bundle_from_file` is lazy-loaded via `__getattr__` to avoid `runpy` warnings when invoked as `python -m prefect.bundles.execute`
|
|
62
|
+
- `plugins.py` → Stable public surface for startup hooks and `prefect.collections` entrypoint loading; pluggy symbols are lazy-loaded so `prefect-client` builds (which don't ship pluggy) can still import `load_prefect_collections` without error
|
|
61
63
|
- `docker/` → `DockerImage` class for building and pushing Docker images during deployment
|
|
62
64
|
- `telemetry/` → OS-level resource metric collection and run telemetry
|
|
63
65
|
- `testing/` → Test utilities shipped with the SDK: `prefect_test_harness`, assertion helpers, and reusable fixtures (see testing/AGENTS.md)
|
|
@@ -78,25 +78,24 @@ del _build_info, pathlib
|
|
|
78
78
|
|
|
79
79
|
def _initialize_plugins() -> None:
|
|
80
80
|
"""
|
|
81
|
-
Initialize the
|
|
81
|
+
Initialize the plugin system if enabled.
|
|
82
82
|
|
|
83
83
|
This runs automatically when Prefect is imported and plugins are enabled
|
|
84
|
-
via
|
|
84
|
+
via the `plugins.enabled` setting. Errors are logged but don't prevent
|
|
85
85
|
Prefect from loading.
|
|
86
86
|
"""
|
|
87
87
|
try:
|
|
88
88
|
# Import here to avoid circular imports and defer cost until needed
|
|
89
89
|
from prefect.settings import get_current_settings
|
|
90
90
|
|
|
91
|
-
if not get_current_settings().
|
|
91
|
+
if not get_current_settings().plugins.enabled:
|
|
92
92
|
return
|
|
93
93
|
|
|
94
94
|
import anyio
|
|
95
95
|
|
|
96
|
-
from prefect._experimental.plugins import run_startup_hooks
|
|
97
|
-
from prefect._experimental.plugins.spec import HookContext
|
|
98
96
|
from prefect.context import refresh_global_settings_context
|
|
99
97
|
from prefect.logging import get_logger
|
|
98
|
+
from prefect.plugins import HookContext, run_startup_hooks
|
|
100
99
|
from prefect.settings import get_current_settings
|
|
101
100
|
|
|
102
101
|
ctx = HookContext(
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Compatibility shim for the legacy `prefect._experimental._launchers` path.
|
|
3
|
+
|
|
4
|
+
The launcher utilities graduated to GA at `prefect._launchers` when the
|
|
5
|
+
infrastructure decorators feature became stable. This module re-exports
|
|
6
|
+
the public symbols from the new location and emits a
|
|
7
|
+
`DeprecationWarning` so consumers know to migrate.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
import warnings
|
|
11
|
+
|
|
12
|
+
from prefect._launchers import (
|
|
13
|
+
get_launcher_for_side,
|
|
14
|
+
normalize_launcher,
|
|
15
|
+
resolve_bundle_step_with_launcher,
|
|
16
|
+
validate_bundle_step_launcher,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
warnings.warn(
|
|
20
|
+
"`prefect._experimental._launchers` has moved to `prefect._launchers`. "
|
|
21
|
+
"The old import path will be removed in a future release.",
|
|
22
|
+
DeprecationWarning,
|
|
23
|
+
stacklevel=2,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
__all__ = [
|
|
27
|
+
"get_launcher_for_side",
|
|
28
|
+
"normalize_launcher",
|
|
29
|
+
"resolve_bundle_step_with_launcher",
|
|
30
|
+
"validate_bundle_step_launcher",
|
|
31
|
+
]
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Compatibility shim for the legacy `prefect._experimental.bundles` path.
|
|
3
|
+
|
|
4
|
+
The bundle implementation graduated to GA at `prefect.bundles` when the
|
|
5
|
+
infrastructure decorators feature became stable. This package keeps the
|
|
6
|
+
old import path importable (and `python -m`-runnable for the legacy
|
|
7
|
+
`...bundles.execute` entrypoint), but emits a `DeprecationWarning` so
|
|
8
|
+
consumers know to migrate to `prefect.bundles`.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
import warnings
|
|
12
|
+
from typing import Any
|
|
13
|
+
|
|
14
|
+
from prefect.bundles import (
|
|
15
|
+
BundleCreationResult,
|
|
16
|
+
BundleLauncher,
|
|
17
|
+
BundleLauncherOverride,
|
|
18
|
+
BundleLauncherSide,
|
|
19
|
+
SerializedBundle,
|
|
20
|
+
aupload_bundle_to_storage,
|
|
21
|
+
convert_step_to_command,
|
|
22
|
+
create_bundle_for_flow_run,
|
|
23
|
+
execute_bundle_in_subprocess,
|
|
24
|
+
extract_flow_from_bundle,
|
|
25
|
+
upload_bundle_to_storage,
|
|
26
|
+
)
|
|
27
|
+
from prefect.bundles import _pin_prefect_in_bundle_step_requires # noqa: F401
|
|
28
|
+
|
|
29
|
+
warnings.warn(
|
|
30
|
+
"`prefect._experimental.bundles` has moved to `prefect.bundles`. "
|
|
31
|
+
"The old import path will be removed in a future release.",
|
|
32
|
+
DeprecationWarning,
|
|
33
|
+
stacklevel=2,
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
__all__ = [
|
|
37
|
+
"BundleCreationResult",
|
|
38
|
+
"BundleLauncher",
|
|
39
|
+
"BundleLauncherOverride",
|
|
40
|
+
"BundleLauncherSide",
|
|
41
|
+
"SerializedBundle",
|
|
42
|
+
"aupload_bundle_to_storage",
|
|
43
|
+
"convert_step_to_command",
|
|
44
|
+
"create_bundle_for_flow_run",
|
|
45
|
+
"execute_bundle_from_file",
|
|
46
|
+
"execute_bundle_in_subprocess",
|
|
47
|
+
"extract_flow_from_bundle",
|
|
48
|
+
"upload_bundle_to_storage",
|
|
49
|
+
]
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def __getattr__(name: str) -> Any:
|
|
53
|
+
"""Lazy-load `execute_bundle_from_file` from the `.execute` submodule
|
|
54
|
+
so importing this package does not pre-populate
|
|
55
|
+
`sys.modules["prefect._experimental.bundles.execute"]`. That would
|
|
56
|
+
make `python -m prefect._experimental.bundles.execute` emit a
|
|
57
|
+
`runpy` `RuntimeWarning` and hard-fail under
|
|
58
|
+
`PYTHONWARNINGS=error`. Accessing the legacy `.execute` submodule
|
|
59
|
+
by attribute (rather than importing it eagerly) still works because
|
|
60
|
+
Python binds it on the package after a separate `from . import
|
|
61
|
+
execute` (the legacy execute shim is reachable via plain
|
|
62
|
+
`import prefect._experimental.bundles.execute`).
|
|
63
|
+
"""
|
|
64
|
+
if name == "execute_bundle_from_file":
|
|
65
|
+
from prefect.bundles.execute import execute_bundle_from_file
|
|
66
|
+
|
|
67
|
+
return execute_bundle_from_file
|
|
68
|
+
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Compatibility shim for the legacy `prefect._experimental.bundles.execute`
|
|
3
|
+
entrypoint.
|
|
4
|
+
|
|
5
|
+
Existing work pool storage configurations may have stored the command
|
|
6
|
+
`python -m prefect._experimental.bundles.execute --key ...` before the
|
|
7
|
+
bundle implementation graduated to GA. This module re-exports the new
|
|
8
|
+
`prefect.bundles.execute` symbols and forwards `python -m` execution to
|
|
9
|
+
the new entrypoint, while emitting a `DeprecationWarning` so users know
|
|
10
|
+
to migrate to `prefect.bundles.execute`.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
import warnings
|
|
14
|
+
from typing import Any
|
|
15
|
+
|
|
16
|
+
warnings.warn(
|
|
17
|
+
"`prefect._experimental.bundles.execute` has moved to "
|
|
18
|
+
"`prefect.bundles.execute`. The old import path will be removed in a "
|
|
19
|
+
"future release.",
|
|
20
|
+
DeprecationWarning,
|
|
21
|
+
stacklevel=2,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
__all__ = ["execute_bundle", "execute_bundle_from_file"] # noqa: F822
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def __getattr__(name: str) -> Any:
|
|
28
|
+
"""Lazy-load symbols from `prefect.bundles.execute` so that running
|
|
29
|
+
`python -m prefect._experimental.bundles.execute` does not put
|
|
30
|
+
`prefect.bundles.execute` in `sys.modules` before the
|
|
31
|
+
`runpy.run_module` forward below executes — that would trigger a
|
|
32
|
+
runpy `RuntimeWarning` (and hard-fail under `PYTHONWARNINGS=error`).
|
|
33
|
+
"""
|
|
34
|
+
if name in {"execute_bundle", "execute_bundle_from_file"}:
|
|
35
|
+
from prefect.bundles.execute import execute_bundle, execute_bundle_from_file
|
|
36
|
+
|
|
37
|
+
if name == "execute_bundle":
|
|
38
|
+
return execute_bundle
|
|
39
|
+
return execute_bundle_from_file
|
|
40
|
+
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
if __name__ == "__main__":
|
|
44
|
+
import runpy
|
|
45
|
+
|
|
46
|
+
runpy.run_module("prefect.bundles.execute", run_name="__main__")
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Deprecated. Use `prefect.plugins` instead.
|
|
3
|
+
|
|
4
|
+
The plugin system has graduated from experimental to general availability.
|
|
5
|
+
Imports from this path continue to work but emit a `DeprecationWarning`.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from prefect._internal.compatibility.deprecated_paths import deprecated_module_attrs
|
|
9
|
+
|
|
10
|
+
# Names are lazily resolved by `__getattr__` below; ruff's F822 (undefined
|
|
11
|
+
# name in __all__) doesn't fit this deprecation-shim pattern.
|
|
12
|
+
# fmt: off
|
|
13
|
+
__all__ = ("run_startup_hooks", "HookContext", "SetupResult", "HookSpec", "SetupSummary", "PREFECT_PLUGIN_API_VERSION", "register_hook") # noqa: F822
|
|
14
|
+
# fmt: on
|
|
15
|
+
|
|
16
|
+
__getattr__ = deprecated_module_attrs(__name__, "prefect.plugins", __all__)
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"""Deprecated. Use `prefect.plugins` instead."""
|
|
2
|
+
|
|
3
|
+
from prefect._internal.compatibility.deprecated_paths import deprecated_module_attrs
|
|
4
|
+
|
|
5
|
+
__all__ = ("SetupSummary",) # noqa: F822 - lazily resolved by `__getattr__`
|
|
6
|
+
|
|
7
|
+
__getattr__ = deprecated_module_attrs(__name__, "prefect.plugins", __all__)
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"""Deprecated. Use `prefect.plugins` instead."""
|
|
2
|
+
|
|
3
|
+
from prefect._internal.compatibility.deprecated_paths import deprecated_module_attrs
|
|
4
|
+
|
|
5
|
+
__all__ = ("register_hook",) # noqa: F822 - lazily resolved by `__getattr__`
|
|
6
|
+
|
|
7
|
+
__getattr__ = deprecated_module_attrs(__name__, "prefect.plugins", __all__)
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"""Deprecated. Use `prefect.plugins` instead."""
|
|
2
|
+
|
|
3
|
+
from prefect._internal.compatibility.deprecated_paths import deprecated_module_attrs
|
|
4
|
+
|
|
5
|
+
__all__ = ("HookContext", "SetupResult", "HookSpec", "PREFECT_PLUGIN_API_VERSION") # noqa: F822 - names lazily resolved by `__getattr__`
|
|
6
|
+
|
|
7
|
+
__getattr__ = deprecated_module_attrs(__name__, "prefect.plugins", __all__)
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Generic helper for keeping a deprecated module path working as a re-export
|
|
3
|
+
of a new location, emitting a DeprecationWarning per attribute access.
|
|
4
|
+
|
|
5
|
+
Independent of any specific Prefect version migration. Intended for cases
|
|
6
|
+
where a feature graduates between lifecycle stages (e.g., experimental to
|
|
7
|
+
GA) and we want the old import path to continue working with a clear hand
|
|
8
|
+
off message, but without coupling to the v2->v3 module migration helpers
|
|
9
|
+
in `prefect._internal.compatibility.migration`.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from __future__ import annotations
|
|
13
|
+
|
|
14
|
+
import importlib
|
|
15
|
+
import warnings
|
|
16
|
+
from typing import Any, Callable, Iterable
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def deprecated_module_attrs(
|
|
20
|
+
old_module: str,
|
|
21
|
+
new_module: str,
|
|
22
|
+
names: Iterable[str],
|
|
23
|
+
) -> Callable[[str], Any]:
|
|
24
|
+
"""
|
|
25
|
+
Build a `__getattr__` for a deprecated module that re-exports public
|
|
26
|
+
symbols from a new location. Each access emits a DeprecationWarning
|
|
27
|
+
pointing the user at the new path.
|
|
28
|
+
|
|
29
|
+
Symbols not in `names` raise `AttributeError` (rather than being
|
|
30
|
+
silently re-exported) — this keeps the public surface explicit and
|
|
31
|
+
avoids leaking implementation details that the new location does not
|
|
32
|
+
intend to expose.
|
|
33
|
+
|
|
34
|
+
Usage at the bottom of the deprecated module:
|
|
35
|
+
|
|
36
|
+
from prefect._internal.compatibility.deprecated_paths import (
|
|
37
|
+
deprecated_module_attrs,
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
__getattr__ = deprecated_module_attrs(
|
|
41
|
+
__name__,
|
|
42
|
+
"prefect.plugins",
|
|
43
|
+
("register_hook", "HookContext"),
|
|
44
|
+
)
|
|
45
|
+
"""
|
|
46
|
+
name_set = frozenset(names)
|
|
47
|
+
|
|
48
|
+
def __getattr__(name: str) -> Any:
|
|
49
|
+
if name in name_set:
|
|
50
|
+
warnings.warn(
|
|
51
|
+
f"`{old_module}.{name}` has moved to `{new_module}.{name}`. "
|
|
52
|
+
f"Update your imports; the old path will be removed in a "
|
|
53
|
+
f"future release.",
|
|
54
|
+
DeprecationWarning,
|
|
55
|
+
stacklevel=2,
|
|
56
|
+
)
|
|
57
|
+
return getattr(importlib.import_module(new_module), name)
|
|
58
|
+
raise AttributeError(f"module {old_module!r} has no attribute {name!r}")
|
|
59
|
+
|
|
60
|
+
return __getattr__
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Utilities for loading
|
|
2
|
+
Utilities for loading Prefect collections via setuptools entry points.
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
Collections are detected via the `prefect.collections` entry point group;
|
|
5
|
+
each entry point is a module to import when Prefect itself is imported,
|
|
6
|
+
typically to register Blocks or other Prefect-aware classes.
|
|
5
7
|
|
|
6
|
-
|
|
7
|
-
- prefect.collections: Identifies this package as a Prefect collection that
|
|
8
|
-
should be imported when Prefect is imported.
|
|
8
|
+
Public API is re-exported from `prefect.plugins`.
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
11
|
from importlib.metadata import EntryPoints, entry_points
|
|
@@ -13,12 +13,15 @@ from typing import Any
|
|
|
13
13
|
import pluggy
|
|
14
14
|
from packaging.specifiers import InvalidSpecifier, SpecifierSet
|
|
15
15
|
|
|
16
|
-
from prefect.
|
|
16
|
+
from prefect._internal.plugins.spec import PREFECT_PLUGIN_API_VERSION
|
|
17
17
|
|
|
18
|
+
# Pluggy project name. Kept as "prefect-experimental" for backward compat —
|
|
19
|
+
# plugins decorated with the experimental-era marker continue to register
|
|
20
|
+
# without modification.
|
|
18
21
|
PM_PROJECT_NAME = "prefect-experimental"
|
|
19
22
|
ENTRYPOINTS_GROUP = "prefect.plugins"
|
|
20
23
|
|
|
21
|
-
register_hook = pluggy.HookimplMarker(PM_PROJECT_NAME)
|
|
24
|
+
register_hook: pluggy.HookimplMarker = pluggy.HookimplMarker(PM_PROJECT_NAME)
|
|
22
25
|
|
|
23
26
|
|
|
24
27
|
def build_manager(hookspecs: type) -> pluggy.PluginManager:
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"""
|
|
2
|
-
|
|
2
|
+
Plugin API specification.
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
Defines the hook specification and data structures for Prefect's plugin
|
|
5
|
+
system. Public symbols are re-exported from `prefect.plugins`.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
8
|
from __future__ import annotations
|
|
@@ -16,6 +16,10 @@ import pluggy
|
|
|
16
16
|
# Bump this when breaking the hook contract
|
|
17
17
|
PREFECT_PLUGIN_API_VERSION = "0.1"
|
|
18
18
|
|
|
19
|
+
# Pluggy project name. Matches `HookimplMarker` in manager.py so that
|
|
20
|
+
# specs and impls pair correctly. Kept as "prefect-experimental" for
|
|
21
|
+
# backward compat — plugins decorated with the experimental-era marker
|
|
22
|
+
# (e.g. prefect-aws) continue to register without modification.
|
|
19
23
|
hookspec = pluggy.HookspecMarker("prefect-experimental")
|
|
20
24
|
|
|
21
25
|
|
|
@@ -1,44 +1,28 @@
|
|
|
1
1
|
"""
|
|
2
|
-
|
|
2
|
+
Plugin startup hook orchestration.
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
**Note: This is an experimental API and is subject to change.**
|
|
4
|
+
Reads the `plugins` settings, builds a pluggy manager, runs all registered
|
|
5
|
+
`setup_environment` hooks (with timeout and strict-mode handling), and
|
|
6
|
+
returns diagnostic summaries. Public entry point is re-exported from
|
|
7
|
+
`prefect.plugins`.
|
|
9
8
|
"""
|
|
10
9
|
|
|
11
10
|
from __future__ import annotations
|
|
11
|
+
|
|
12
12
|
from typing import Any
|
|
13
13
|
|
|
14
14
|
import anyio
|
|
15
15
|
|
|
16
|
-
from prefect.
|
|
17
|
-
from prefect.
|
|
18
|
-
from prefect.
|
|
16
|
+
from prefect._internal.plugins.apply import apply_setup_result, summarize_env
|
|
17
|
+
from prefect._internal.plugins.diagnostics import SetupSummary
|
|
18
|
+
from prefect._internal.plugins.manager import (
|
|
19
19
|
build_manager,
|
|
20
20
|
call_async_hook,
|
|
21
21
|
load_entry_point_plugins,
|
|
22
|
-
register_hook,
|
|
23
|
-
)
|
|
24
|
-
from prefect._experimental.plugins.spec import (
|
|
25
|
-
PREFECT_PLUGIN_API_VERSION,
|
|
26
|
-
HookContext,
|
|
27
|
-
HookSpec,
|
|
28
|
-
SetupResult,
|
|
29
22
|
)
|
|
23
|
+
from prefect._internal.plugins.spec import HookContext, HookSpec, SetupResult
|
|
30
24
|
from prefect.settings import get_current_settings
|
|
31
25
|
|
|
32
|
-
__all__ = [
|
|
33
|
-
"run_startup_hooks",
|
|
34
|
-
"HookContext",
|
|
35
|
-
"SetupResult",
|
|
36
|
-
"HookSpec",
|
|
37
|
-
"SetupSummary",
|
|
38
|
-
"PREFECT_PLUGIN_API_VERSION",
|
|
39
|
-
"register_hook",
|
|
40
|
-
]
|
|
41
|
-
|
|
42
26
|
|
|
43
27
|
async def run_startup_hooks(ctx: HookContext) -> list[SetupSummary]:
|
|
44
28
|
"""
|
|
@@ -61,13 +45,13 @@ async def run_startup_hooks(ctx: HookContext) -> list[SetupSummary]:
|
|
|
61
45
|
SystemExit: In strict mode, if a required plugin fails
|
|
62
46
|
"""
|
|
63
47
|
logger = ctx.logger_factory("prefect.plugins")
|
|
64
|
-
settings = get_current_settings().
|
|
48
|
+
settings = get_current_settings().plugins
|
|
65
49
|
|
|
66
50
|
if not settings.enabled:
|
|
67
|
-
logger.debug("
|
|
51
|
+
logger.debug("Plugins not enabled")
|
|
68
52
|
return []
|
|
69
53
|
|
|
70
|
-
logger.debug("Initializing
|
|
54
|
+
logger.debug("Initializing plugin system")
|
|
71
55
|
pm = build_manager(HookSpec)
|
|
72
56
|
allow = settings.allow
|
|
73
57
|
deny = settings.deny
|
|
@@ -137,3 +121,6 @@ async def run_startup_hooks(ctx: HookContext) -> list[SetupSummary]:
|
|
|
137
121
|
|
|
138
122
|
logger.debug("Plugin system initialization complete (%d plugins)", len(summaries))
|
|
139
123
|
return summaries
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
__all__ = ["run_startup_hooks", "HookContext", "HookSpec", "SetupResult"]
|
|
@@ -924,12 +924,27 @@ class Block(BaseModel, ABC):
|
|
|
924
924
|
raise UnknownBlockType(message)
|
|
925
925
|
|
|
926
926
|
def _define_metadata_on_nested_blocks(
|
|
927
|
-
self,
|
|
927
|
+
self,
|
|
928
|
+
block_document_references: dict[str, dict[str, Any]],
|
|
929
|
+
_depth: int = 0,
|
|
930
|
+
_max_depth: int = 50,
|
|
931
|
+
_visited: set[int] | None = None,
|
|
928
932
|
):
|
|
929
933
|
"""
|
|
930
934
|
Recursively populates metadata fields on nested blocks based on the
|
|
931
|
-
provided block document references.
|
|
935
|
+
provided block document references. The depth bound and visited-set
|
|
936
|
+
keep recursion finite even if the references dict happens to be
|
|
937
|
+
deeply nested or shares dict identity across levels.
|
|
932
938
|
"""
|
|
939
|
+
if _depth > _max_depth:
|
|
940
|
+
return
|
|
941
|
+
if _visited is None:
|
|
942
|
+
_visited = set()
|
|
943
|
+
refs_id = id(block_document_references)
|
|
944
|
+
if refs_id in _visited:
|
|
945
|
+
return
|
|
946
|
+
_visited.add(refs_id)
|
|
947
|
+
|
|
933
948
|
for item in block_document_references.items():
|
|
934
949
|
field_name, block_document_reference = item
|
|
935
950
|
nested_block = getattr(self, field_name)
|
|
@@ -938,7 +953,10 @@ class Block(BaseModel, ABC):
|
|
|
938
953
|
"block_document", {}
|
|
939
954
|
)
|
|
940
955
|
nested_block._define_metadata_on_nested_blocks(
|
|
941
|
-
nested_block_document_info.get("block_document_references", {})
|
|
956
|
+
nested_block_document_info.get("block_document_references", {}),
|
|
957
|
+
_depth=_depth + 1,
|
|
958
|
+
_max_depth=_max_depth,
|
|
959
|
+
_visited=_visited,
|
|
942
960
|
)
|
|
943
961
|
nested_block_document_id = nested_block_document_info.get("id")
|
|
944
962
|
nested_block._block_document_id = (
|
|
@@ -39,12 +39,11 @@ from prefect.settings.models.root import Settings
|
|
|
39
39
|
from prefect.utilities.processutils import sanitize_subprocess_env
|
|
40
40
|
from prefect.utilities.slugify import slugify
|
|
41
41
|
|
|
42
|
-
from prefect.
|
|
42
|
+
from prefect._launchers import (
|
|
43
43
|
get_launcher_for_side,
|
|
44
44
|
validate_bundle_step_launcher,
|
|
45
45
|
)
|
|
46
46
|
|
|
47
|
-
from .execute import execute_bundle_from_file
|
|
48
47
|
from ._file_collector import FileCollector
|
|
49
48
|
from ._ignore_filter import IgnoreFilter, check_sensitive_files
|
|
50
49
|
from ._zip_builder import ZipBuilder
|
|
@@ -876,3 +875,19 @@ __all__ = [
|
|
|
876
875
|
"extract_flow_from_bundle",
|
|
877
876
|
"SerializedBundle",
|
|
878
877
|
]
|
|
878
|
+
|
|
879
|
+
|
|
880
|
+
def __getattr__(name: str) -> Any:
|
|
881
|
+
"""Lazy-load `execute_bundle_from_file` from the `.execute` submodule.
|
|
882
|
+
|
|
883
|
+
Importing the submodule eagerly at package init pre-populates
|
|
884
|
+
`sys.modules["prefect.bundles.execute"]`, which makes
|
|
885
|
+
`python -m prefect.bundles.execute` emit a `runpy` `RuntimeWarning`
|
|
886
|
+
(and hard-fail under `PYTHONWARNINGS=error`). Defer the import so
|
|
887
|
+
`python -m` is the first thing to load the submodule.
|
|
888
|
+
"""
|
|
889
|
+
if name == "execute_bundle_from_file":
|
|
890
|
+
from .execute import execute_bundle_from_file
|
|
891
|
+
|
|
892
|
+
return execute_bundle_from_file
|
|
893
|
+
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
|
@@ -16,12 +16,12 @@ from pathlib import Path
|
|
|
16
16
|
import pathspec
|
|
17
17
|
import pathspec.util
|
|
18
18
|
|
|
19
|
-
from
|
|
19
|
+
from ._ignore_filter import (
|
|
20
20
|
IgnoreFilter,
|
|
21
21
|
check_sensitive_files,
|
|
22
22
|
emit_excluded_warning,
|
|
23
23
|
)
|
|
24
|
-
from
|
|
24
|
+
from ._path_resolver import (
|
|
25
25
|
PathValidationError,
|
|
26
26
|
normalize_path_separator,
|
|
27
27
|
resolve_with_symlink_check,
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import sys
|
|
3
|
+
from typing import Any
|
|
3
4
|
|
|
4
5
|
from prefect.utilities.asyncutils import run_coro_as_sync
|
|
5
6
|
|
|
6
7
|
|
|
7
|
-
def execute_bundle_from_file(key: str):
|
|
8
|
+
def execute_bundle_from_file(key: str) -> None:
|
|
8
9
|
"""
|
|
9
10
|
Loads a bundle from a file and executes it.
|
|
10
11
|
|
|
@@ -17,11 +18,11 @@ def execute_bundle_from_file(key: str):
|
|
|
17
18
|
run_coro_as_sync(execute_bundle(bundle))
|
|
18
19
|
|
|
19
20
|
|
|
20
|
-
async def execute_bundle(bundle: dict) -> None:
|
|
21
|
+
async def execute_bundle(bundle: dict[str, Any]) -> None:
|
|
21
22
|
# All these imports must stay deferred to break circular imports:
|
|
22
23
|
# bundles/__init__ imports from .execute, and _starter_bundle imports from bundles/__init__
|
|
23
24
|
# _flow_run_executor → runner/__init__ → runner.py → bundles/__init__
|
|
24
|
-
from prefect.
|
|
25
|
+
from prefect.bundles import extract_flow_from_bundle
|
|
25
26
|
from prefect.client.schemas.objects import FlowRun
|
|
26
27
|
from prefect.flows import Flow
|
|
27
28
|
from prefect.runner._flow_run_executor import FlowRunExecutorContext
|
|
@@ -45,8 +46,8 @@ async def execute_bundle(bundle: dict) -> None:
|
|
|
45
46
|
|
|
46
47
|
|
|
47
48
|
if __name__ == "__main__":
|
|
48
|
-
if len(sys.argv) < 3
|
|
49
|
+
if len(sys.argv) < 3 or sys.argv[1] != "--key":
|
|
49
50
|
print("Please provide a key representing a path to a bundle")
|
|
50
51
|
sys.exit(1)
|
|
51
|
-
key = sys.argv[2]
|
|
52
|
+
key: str = sys.argv[2]
|
|
52
53
|
execute_bundle_from_file(key)
|