prefect-client 3.8.4.dev5__tar.gz → 3.8.4.dev7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/PKG-INFO +1 -1
- prefect_client-3.8.4.dev7/src/prefect/_build_info.py +5 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/bundles/__init__.py +45 -3
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/bundles/_ignore_filter.py +53 -28
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/flows.py +57 -9
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/logging/handlers.py +22 -1
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/workers/base.py +13 -2
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/workers/process.py +11 -1
- prefect_client-3.8.4.dev5/src/prefect/_build_info.py +0 -5
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/.gitignore +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/LICENSE +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/README.md +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/hatch_build.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/pyproject.toml +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/.prefectignore +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/AGENTS.md +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/__main__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/_launchers.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/bundles/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/bundles/execute.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/plugins/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/plugins/apply.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/plugins/manager.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/plugins/spec.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/sla/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/sla/client.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/sla/objects.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_flow_run_suspension.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/_logging.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/analytics/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/analytics/ci_detection.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/analytics/client.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/analytics/device_id.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/analytics/emit.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/analytics/enabled.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/analytics/events.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/analytics/milestones.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/analytics/notice.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/analytics/service.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/ast_utils.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/attempt_control.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/buildx.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/compatibility/backports.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/compatibility/blocks.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/compatibility/deprecated_paths.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/compatibility/migration.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/compatibility/starlette.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/concurrency/services.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/concurrency/threads.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/control_listener.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/deprecated.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/engine.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/git.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/infrastructure_exit_codes.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/installation.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/integrations.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/launchers.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/lazy.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/metrics.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/observability.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/observers.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/plugins/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/plugins/apply.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/plugins/collections.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/plugins/diagnostics.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/plugins/manager.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/plugins/spec.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/plugins/startup.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/pydantic/validated_func.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/pytz.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/result_records.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/retries.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/schema.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/schemas/_registry.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/schemas/validators.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/send_entrypoint_logs.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/states.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/testing.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/urls.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/uuid7.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/version_checking.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/versioning.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/waiters.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/websockets.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_sdk/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_sdk/fetcher.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_sdk/generator.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_sdk/models.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_sdk/naming.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_sdk/renderer.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_sdk/schema_converter.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_sdk/templates/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_sdk/templates/sdk.py.jinja +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_sdk/types.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_sdk/unions.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_vendor/croniter/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_vendor/croniter/croniter.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/agent.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/analytics/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/artifacts.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/assets/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/assets/core.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/assets/materialize.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/automations.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/blocks/AGENTS.md +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/blocks/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/blocks/abstract.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/blocks/core.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/blocks/fields.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/blocks/notifications.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/blocks/redis.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/blocks/system.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/blocks/webhook.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/bundles/_file_collector.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/bundles/_path_resolver.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/bundles/_zip_builder.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/bundles/_zip_extractor.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/bundles/execute.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/cache_policies.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/AGENTS.md +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/attribution.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/base.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/cloud.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/collections.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/constants.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_automations/client.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_deployments/client.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_events/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_events/client.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_flows/client.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_logs/client.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_variables/client.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/base.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/orchestration/routes.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/schemas/actions.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/schemas/events.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/schemas/filters.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/schemas/objects.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/schemas/responses.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/schemas/worker_channel.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/subscriptions.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/types/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/types/flexible_schedule_list.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/client/utilities.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/concurrency/AGENTS.md +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/concurrency/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/concurrency/_asyncio.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/concurrency/_events.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/concurrency/_leases.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/concurrency/_sync.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/concurrency/asyncio.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/concurrency/context.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/concurrency/services.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/concurrency/sync.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/concurrency/v1/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/concurrency/v1/_asyncio.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/concurrency/v1/_events.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/concurrency/v1/asyncio.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/concurrency/v1/context.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/concurrency/v1/services.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/concurrency/v1/sync.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/context.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/deployments/AGENTS.md +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/deployments/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/deployments/base.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/deployments/deployments.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/deployments/flow_runs.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/deployments/runner.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/deployments/schedules.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/deployments/steps/core.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/docker/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/docker/_buildx.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/docker/docker_image.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/engine.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/events/AGENTS.md +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/events/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/events/actions.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/events/clients.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/events/filters.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/events/related.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/events/schemas/automations.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/events/schemas/events.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/events/subscribers.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/events/utilities.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/events/worker.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/exceptions.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/filesystems.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/flow_engine.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/flow_runs.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/futures.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/infrastructure/base.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/input/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/input/actions.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/input/run_input.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/locking/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/locking/_filelock.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/locking/filesystem.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/locking/memory.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/locking/protocol.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/logging/AGENTS.md +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/logging/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/logging/clients.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/logging/configuration.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/logging/filters.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/logging/formatters.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/logging/highlighters.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/logging/loggers.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/logging/logging.yml +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/main.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/plugins.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/py.typed +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/results.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/AGENTS.md +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/_cancel_finalizer.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/_cancellation_manager.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/_control_channel.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/_deployment_registry.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/_event_emitter.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/_flow_resolver.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/_flow_run_executor.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/_hook_runner.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/_limit_manager.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/_process_manager.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/_scheduled_run_poller.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/_starter_bundle.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/_starter_direct.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/_starter_engine.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/_state_proposer.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/_uv_command.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/_workspace_resolver.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/_workspace_starter.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/runner.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/server.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runner/storage.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runtime/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runtime/deployment.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runtime/flow_run.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/runtime/task_run.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/schedules.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/serializers.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/_ui_static.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/admin.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/artifacts.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/automations.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/background_workers.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/block_capabilities.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/block_documents.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/block_schemas.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/block_types.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/clients.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/collections.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/concurrency_limits.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/csrf_token.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/dependencies.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/deployments.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/events.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/flow_run_states.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/flow_runs.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/flows.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/logs.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/middleware.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/root.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/run_history.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/saved_searches.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/server.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/task_run_states.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/task_runs.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/task_workers.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/templates.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/ui/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/ui/flow_runs.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/ui/flows.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/ui/schemas.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/ui/task_runs.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/validation.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/variables.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/work_queues.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/server/api/workers.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/AGENTS.md +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/_types.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/base.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/constants.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/context.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/legacy.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/_defaults.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/api.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/cli.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/client.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/cloud.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/deployments.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/events.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/experiments.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/flows.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/internal.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/logging.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/plugins.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/results.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/root.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/runner.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/server/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/server/api.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/server/concurrency.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/server/database.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/server/deployments.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/server/docket.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/server/ephemeral.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/server/events.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/server/logs.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/server/root.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/server/services.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/server/tasks.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/server/ui.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/server/worker_channel.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/tasks.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/telemetry.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/testing.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/models/worker.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/profiles.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/profiles.toml +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/settings/sources.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/states.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/task_engine.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/task_runners.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/task_runs.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/task_worker.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/tasks.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/telemetry/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/telemetry/run_telemetry.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/transactions.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/types/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/types/_concurrency.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/types/_datetime.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/types/entrypoint.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/types/names.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/AGENTS.md +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/annotations.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/asyncutils/AGENTS.md +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/asyncutils/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/callables/AGENTS.md +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/callables/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/collections.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/compat.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/context.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/dispatch.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/engine/AGENTS.md +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/engine/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/filesystem/AGENTS.md +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/filesystem/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/generics.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/hashing.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/importtools.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/math.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/names.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/processutils/AGENTS.md +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/processutils/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/pydantic.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/schema_tools/AGENTS.md +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/services.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/slugify.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/templating/AGENTS.md +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/templating/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/text.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/timeout.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/urls.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/utilities/visualization.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/variables.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/workers/AGENTS.md +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/workers/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/workers/_cleanup.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/workers/_cleanup_handlers.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/workers/_worker_channel/__init__.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/workers/_worker_channel/_protocol.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/workers/_worker_channel/_state.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/workers/_worker_channel/_sync.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/workers/_worker_channel/_transport.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/workers/block.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/workers/cloud.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/workers/server.py +0 -0
- {prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/workers/utilities.py +0 -0
|
@@ -11,6 +11,7 @@ import logging
|
|
|
11
11
|
import multiprocessing
|
|
12
12
|
import multiprocessing.context
|
|
13
13
|
import os
|
|
14
|
+
import stat
|
|
14
15
|
import subprocess
|
|
15
16
|
import sys
|
|
16
17
|
import tempfile
|
|
@@ -395,6 +396,41 @@ def _pickle_local_modules_by_value(flow: Flow[Any, Any]):
|
|
|
395
396
|
)
|
|
396
397
|
|
|
397
398
|
|
|
399
|
+
def _resolve_include_files_base_dir(value: Path | str) -> Path:
|
|
400
|
+
"""Resolve and validate an explicitly configured include-files base directory."""
|
|
401
|
+
try:
|
|
402
|
+
candidate = Path(value).expanduser()
|
|
403
|
+
except RuntimeError as exc:
|
|
404
|
+
raise ValueError(
|
|
405
|
+
f"Invalid include_files_base_dir {str(value)!r}: {exc}"
|
|
406
|
+
) from exc
|
|
407
|
+
|
|
408
|
+
if not candidate.is_absolute():
|
|
409
|
+
candidate = Path.cwd() / candidate
|
|
410
|
+
|
|
411
|
+
try:
|
|
412
|
+
base_dir = candidate.resolve(strict=True)
|
|
413
|
+
if not stat.S_ISDIR(base_dir.stat().st_mode):
|
|
414
|
+
raise ValueError(
|
|
415
|
+
f"include_files_base_dir {str(value)!r} must be a directory."
|
|
416
|
+
)
|
|
417
|
+
|
|
418
|
+
# Open the directory to verify that collection can read it. `os.access` is
|
|
419
|
+
# not sufficient because its result can differ from the actual operation.
|
|
420
|
+
with os.scandir(base_dir):
|
|
421
|
+
pass
|
|
422
|
+
except FileNotFoundError as exc:
|
|
423
|
+
raise ValueError(
|
|
424
|
+
f"include_files_base_dir {str(value)!r} does not exist."
|
|
425
|
+
) from exc
|
|
426
|
+
except NotADirectoryError as exc:
|
|
427
|
+
raise ValueError(
|
|
428
|
+
f"include_files_base_dir {str(value)!r} must be a directory."
|
|
429
|
+
) from exc
|
|
430
|
+
|
|
431
|
+
return base_dir
|
|
432
|
+
|
|
433
|
+
|
|
398
434
|
def create_bundle_for_flow_run(
|
|
399
435
|
flow: Flow[Any, Any],
|
|
400
436
|
flow_run: FlowRun,
|
|
@@ -463,12 +499,16 @@ def create_bundle_for_flow_run(
|
|
|
463
499
|
files_key: str | None = None
|
|
464
500
|
zip_path: Path | None = None
|
|
465
501
|
include_files = getattr(flow, "include_files", None)
|
|
502
|
+
include_files_base_dir = getattr(flow, "include_files_base_dir", None)
|
|
466
503
|
|
|
467
504
|
if include_files:
|
|
468
505
|
try:
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
506
|
+
if include_files_base_dir is None:
|
|
507
|
+
# Preserve the existing default relative to the flow definition.
|
|
508
|
+
flow_file = Path(inspect.getfile(flow.fn))
|
|
509
|
+
base_dir = flow_file.parent.resolve()
|
|
510
|
+
else:
|
|
511
|
+
base_dir = _resolve_include_files_base_dir(include_files_base_dir)
|
|
472
512
|
|
|
473
513
|
# Pipeline: collect -> filter -> check -> zip
|
|
474
514
|
collector = FileCollector(base_dir)
|
|
@@ -498,6 +538,8 @@ def create_bundle_for_flow_run(
|
|
|
498
538
|
files_key,
|
|
499
539
|
)
|
|
500
540
|
except (OSError, TypeError, AttributeError) as e:
|
|
541
|
+
if include_files_base_dir is not None:
|
|
542
|
+
raise
|
|
501
543
|
# Handle cases where flow has no file (dynamic flow) or other IO errors
|
|
502
544
|
logger.warning(
|
|
503
545
|
"Could not collect included files: %s. Files will not be bundled.",
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/bundles/_ignore_filter.py
RENAMED
|
@@ -87,23 +87,9 @@ def _read_ignore_file(path: Path) -> list[str]:
|
|
|
87
87
|
return [line for line in lines if line.strip() and not line.startswith("#")]
|
|
88
88
|
|
|
89
89
|
|
|
90
|
-
def
|
|
91
|
-
"""
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
Load order (patterns combined via union):
|
|
95
|
-
1. Project root .prefectignore (if found via pyproject.toml detection)
|
|
96
|
-
2. Flow directory .prefectignore (if different from project root)
|
|
97
|
-
|
|
98
|
-
Missing .prefectignore files emit debug log, not warning.
|
|
99
|
-
|
|
100
|
-
Args:
|
|
101
|
-
flow_dir: Flow file's directory (base for relative paths).
|
|
102
|
-
|
|
103
|
-
Returns:
|
|
104
|
-
Combined list of pattern strings from all .prefectignore files.
|
|
105
|
-
"""
|
|
106
|
-
patterns: list[str] = []
|
|
90
|
+
def _load_ignore_pattern_sources(flow_dir: Path) -> list[tuple[Path, list[str]]]:
|
|
91
|
+
"""Load ignore patterns together with the directory they are relative to."""
|
|
92
|
+
sources: list[tuple[Path, list[str]]] = []
|
|
107
93
|
|
|
108
94
|
# 1. Find and load project root .prefectignore
|
|
109
95
|
project_root = find_project_root(flow_dir)
|
|
@@ -111,7 +97,7 @@ def load_ignore_patterns(flow_dir: Path) -> list[str]:
|
|
|
111
97
|
project_ignore = project_root / ".prefectignore"
|
|
112
98
|
if project_ignore.exists():
|
|
113
99
|
logger.debug(f"Loading .prefectignore from project root: {project_ignore}")
|
|
114
|
-
|
|
100
|
+
sources.append((project_root.resolve(), _read_ignore_file(project_ignore)))
|
|
115
101
|
else:
|
|
116
102
|
logger.debug(f"No .prefectignore found at project root: {project_root}")
|
|
117
103
|
else:
|
|
@@ -123,11 +109,34 @@ def load_ignore_patterns(flow_dir: Path) -> list[str]:
|
|
|
123
109
|
# Only load if different from project root's .prefectignore
|
|
124
110
|
if project_root is None or flow_dir.resolve() != project_root.resolve():
|
|
125
111
|
logger.debug(f"Loading .prefectignore from flow directory: {flow_ignore}")
|
|
126
|
-
|
|
112
|
+
sources.append((flow_dir.resolve(), _read_ignore_file(flow_ignore)))
|
|
127
113
|
else:
|
|
128
114
|
logger.debug(f"No .prefectignore found in flow directory: {flow_dir}")
|
|
129
115
|
|
|
130
|
-
return
|
|
116
|
+
return sources
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
def load_ignore_patterns(flow_dir: Path) -> list[str]:
|
|
120
|
+
"""
|
|
121
|
+
Load patterns from cascading .prefectignore files.
|
|
122
|
+
|
|
123
|
+
Load order (later matching patterns override earlier patterns):
|
|
124
|
+
1. Project root .prefectignore (if found via pyproject.toml detection)
|
|
125
|
+
2. Flow directory .prefectignore (if different from project root)
|
|
126
|
+
|
|
127
|
+
Missing .prefectignore files emit debug log, not warning.
|
|
128
|
+
|
|
129
|
+
Args:
|
|
130
|
+
flow_dir: Flow file's directory (base for relative paths).
|
|
131
|
+
|
|
132
|
+
Returns:
|
|
133
|
+
Combined list of pattern strings from all .prefectignore files.
|
|
134
|
+
"""
|
|
135
|
+
return [
|
|
136
|
+
pattern
|
|
137
|
+
for _, patterns in _load_ignore_pattern_sources(flow_dir)
|
|
138
|
+
for pattern in patterns
|
|
139
|
+
]
|
|
131
140
|
|
|
132
141
|
|
|
133
142
|
class IgnoreFilter:
|
|
@@ -155,14 +164,16 @@ class IgnoreFilter:
|
|
|
155
164
|
flow_dir: Base directory for file collection (typically flow file's parent).
|
|
156
165
|
"""
|
|
157
166
|
self.flow_dir = flow_dir.resolve()
|
|
158
|
-
self.
|
|
167
|
+
self._specs: list[tuple[Path, pathspec.GitIgnoreSpec]] = []
|
|
159
168
|
self._load_patterns()
|
|
160
169
|
|
|
161
170
|
def _load_patterns(self) -> None:
|
|
162
171
|
"""Load patterns and compile into pathspec."""
|
|
163
|
-
patterns
|
|
164
|
-
|
|
165
|
-
|
|
172
|
+
for pattern_root, patterns in _load_ignore_pattern_sources(self.flow_dir):
|
|
173
|
+
if patterns:
|
|
174
|
+
self._specs.append(
|
|
175
|
+
(pattern_root, pathspec.GitIgnoreSpec.from_lines(patterns))
|
|
176
|
+
)
|
|
166
177
|
|
|
167
178
|
def filter(
|
|
168
179
|
self,
|
|
@@ -202,11 +213,25 @@ class IgnoreFilter:
|
|
|
202
213
|
result.excluded_by_ignore.append(file)
|
|
203
214
|
continue
|
|
204
215
|
|
|
205
|
-
# Check against ignore
|
|
216
|
+
# Check against ignore specs in cascade order. A later source only
|
|
217
|
+
# overrides the current decision when one of its patterns matches.
|
|
206
218
|
excluded = False
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
219
|
+
for pattern_root, spec in self._specs:
|
|
220
|
+
try:
|
|
221
|
+
pattern_path = str(file.relative_to(pattern_root))
|
|
222
|
+
except ValueError:
|
|
223
|
+
try:
|
|
224
|
+
pattern_path = str(file.resolve().relative_to(pattern_root))
|
|
225
|
+
except ValueError:
|
|
226
|
+
continue
|
|
227
|
+
|
|
228
|
+
normalized_path = pathspec.util.normalize_file(pattern_path)
|
|
229
|
+
if any(
|
|
230
|
+
pattern.include is not None
|
|
231
|
+
and pattern.match_file(normalized_path) is not None
|
|
232
|
+
for pattern in spec.patterns
|
|
233
|
+
):
|
|
234
|
+
excluded = spec.match_file(normalized_path)
|
|
210
235
|
|
|
211
236
|
if excluded:
|
|
212
237
|
result.excluded_by_ignore.append(file)
|
|
@@ -2397,6 +2397,10 @@ class InfrastructureBoundFlow(Flow[P, R]):
|
|
|
2397
2397
|
job_variables: Infrastructure configuration that will override the base job
|
|
2398
2398
|
configuration of the work pool.
|
|
2399
2399
|
launcher: Optional upload and execution launcher overrides.
|
|
2400
|
+
include_files: Optional file patterns to include with the flow bundle.
|
|
2401
|
+
include_files_base_dir: Optional base directory for `include_files`. Relative
|
|
2402
|
+
paths are resolved from the working directory when the bundle is created.
|
|
2403
|
+
Defaults to the flow file's directory.
|
|
2400
2404
|
worker_cls: The class of the worker to use to spin up infrastructure and submit
|
|
2401
2405
|
the flow to it.
|
|
2402
2406
|
"""
|
|
@@ -2409,6 +2413,7 @@ class InfrastructureBoundFlow(Flow[P, R]):
|
|
|
2409
2413
|
worker_cls: type["BaseWorker[Any, Any, Any]"],
|
|
2410
2414
|
launcher: BundleLauncher | None = None,
|
|
2411
2415
|
include_files: Sequence[str] | None = None,
|
|
2416
|
+
include_files_base_dir: Path | str | None = None,
|
|
2412
2417
|
**kwargs: Any,
|
|
2413
2418
|
):
|
|
2414
2419
|
super().__init__(*args, **kwargs)
|
|
@@ -2419,6 +2424,9 @@ class InfrastructureBoundFlow(Flow[P, R]):
|
|
|
2419
2424
|
self.include_files: list[str] | None = (
|
|
2420
2425
|
list(include_files) if include_files is not None else None
|
|
2421
2426
|
)
|
|
2427
|
+
self.include_files_base_dir: str | None = (
|
|
2428
|
+
str(include_files_base_dir) if include_files_base_dir is not None else None
|
|
2429
|
+
)
|
|
2422
2430
|
|
|
2423
2431
|
@overload
|
|
2424
2432
|
def __call__(self: "Flow[P, NoReturn]", *args: P.args, **kwargs: P.kwargs) -> None:
|
|
@@ -2648,7 +2656,7 @@ class InfrastructureBoundFlow(Flow[P, R]):
|
|
|
2648
2656
|
get_result_store,
|
|
2649
2657
|
resolve_result_storage,
|
|
2650
2658
|
)
|
|
2651
|
-
from prefect.states import Pending, Scheduled
|
|
2659
|
+
from prefect.states import Failed, Pending, Scheduled
|
|
2652
2660
|
from prefect.tasks import Task
|
|
2653
2661
|
|
|
2654
2662
|
# Get parameters to error early if they are invalid
|
|
@@ -2753,14 +2761,28 @@ class InfrastructureBoundFlow(Flow[P, R]):
|
|
|
2753
2761
|
parent_task_run_id=getattr(parent_task_run, "id", None),
|
|
2754
2762
|
)
|
|
2755
2763
|
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
+
try:
|
|
2765
|
+
result = create_bundle_for_flow_run(flow=flow, flow_run=flow_run)
|
|
2766
|
+
upload_bundle_to_storage(
|
|
2767
|
+
result["bundle"],
|
|
2768
|
+
bundle_key,
|
|
2769
|
+
upload_command,
|
|
2770
|
+
zip_path=result["zip_path"],
|
|
2771
|
+
upload_step=upload_step,
|
|
2772
|
+
)
|
|
2773
|
+
except Exception as exc:
|
|
2774
|
+
try:
|
|
2775
|
+
client.set_flow_run_state(
|
|
2776
|
+
flow_run.id,
|
|
2777
|
+
state=Failed(message=f"Flow run submission failed: {exc}"),
|
|
2778
|
+
force=True,
|
|
2779
|
+
)
|
|
2780
|
+
except Exception:
|
|
2781
|
+
logger.exception(
|
|
2782
|
+
"Failed to update flow run %s after submission failed",
|
|
2783
|
+
flow_run.id,
|
|
2784
|
+
)
|
|
2785
|
+
raise
|
|
2764
2786
|
|
|
2765
2787
|
# Set flow run to scheduled now that the bundle is uploaded and ready to be executed
|
|
2766
2788
|
client.set_flow_run_state(flow_run.id, state=Scheduled())
|
|
@@ -2795,6 +2817,7 @@ class InfrastructureBoundFlow(Flow[P, R]):
|
|
|
2795
2817
|
job_variables: Optional[dict[str, Any]] = None,
|
|
2796
2818
|
launcher: BundleLauncher | None = NotSet, # type: ignore
|
|
2797
2819
|
include_files: Optional[list[str]] = NotSet, # type: ignore
|
|
2820
|
+
include_files_base_dir: Path | str | None = NotSet, # type: ignore
|
|
2798
2821
|
) -> "InfrastructureBoundFlow[P, R]":
|
|
2799
2822
|
new_flow = super().with_options(
|
|
2800
2823
|
name=name,
|
|
@@ -2828,6 +2851,9 @@ class InfrastructureBoundFlow(Flow[P, R]):
|
|
|
2828
2851
|
include_files=include_files
|
|
2829
2852
|
if include_files is not NotSet
|
|
2830
2853
|
else self.include_files,
|
|
2854
|
+
include_files_base_dir=include_files_base_dir
|
|
2855
|
+
if include_files_base_dir is not NotSet
|
|
2856
|
+
else self.include_files_base_dir,
|
|
2831
2857
|
)
|
|
2832
2858
|
return new_infrastructure_bound_flow
|
|
2833
2859
|
|
|
@@ -2839,7 +2865,25 @@ def bind_flow_to_infrastructure(
|
|
|
2839
2865
|
job_variables: dict[str, Any] | None = None,
|
|
2840
2866
|
launcher: BundleLauncher | None = None,
|
|
2841
2867
|
include_files: Sequence[str] | None = None,
|
|
2868
|
+
*,
|
|
2869
|
+
include_files_base_dir: Path | str | None = None,
|
|
2842
2870
|
) -> InfrastructureBoundFlow[P, R]:
|
|
2871
|
+
"""Bind a flow to execution on a specific infrastructure work pool.
|
|
2872
|
+
|
|
2873
|
+
Args:
|
|
2874
|
+
flow: The flow to bind.
|
|
2875
|
+
work_pool: The name of the work pool to use.
|
|
2876
|
+
worker_cls: The worker class that submits the flow.
|
|
2877
|
+
job_variables: Infrastructure overrides for the work pool's base job template.
|
|
2878
|
+
launcher: Optional upload and execution launcher overrides.
|
|
2879
|
+
include_files: Optional file patterns to include with the flow bundle.
|
|
2880
|
+
include_files_base_dir: Optional base directory for `include_files`. Relative
|
|
2881
|
+
paths are resolved from the working directory when the bundle is created.
|
|
2882
|
+
Defaults to the flow file's directory.
|
|
2883
|
+
|
|
2884
|
+
Returns:
|
|
2885
|
+
An infrastructure-bound copy of the flow.
|
|
2886
|
+
"""
|
|
2843
2887
|
new = InfrastructureBoundFlow[P, R](
|
|
2844
2888
|
flow.fn,
|
|
2845
2889
|
work_pool=work_pool,
|
|
@@ -2847,6 +2891,7 @@ def bind_flow_to_infrastructure(
|
|
|
2847
2891
|
worker_cls=worker_cls,
|
|
2848
2892
|
launcher=launcher,
|
|
2849
2893
|
include_files=include_files,
|
|
2894
|
+
include_files_base_dir=include_files_base_dir,
|
|
2850
2895
|
)
|
|
2851
2896
|
# Copy all attributes from the original flow
|
|
2852
2897
|
for attr, value in flow.__dict__.items():
|
|
@@ -2856,6 +2901,9 @@ def bind_flow_to_infrastructure(
|
|
|
2856
2901
|
new.worker_cls = worker_cls
|
|
2857
2902
|
new.launcher = normalize_launcher(launcher)
|
|
2858
2903
|
new.include_files = list(include_files) if include_files is not None else None
|
|
2904
|
+
new.include_files_base_dir = (
|
|
2905
|
+
str(include_files_base_dir) if include_files_base_dir is not None else None
|
|
2906
|
+
)
|
|
2859
2907
|
return new
|
|
2860
2908
|
|
|
2861
2909
|
|
|
@@ -9,7 +9,7 @@ import traceback
|
|
|
9
9
|
import uuid
|
|
10
10
|
import warnings
|
|
11
11
|
from contextlib import asynccontextmanager
|
|
12
|
-
from typing import TYPE_CHECKING, Any, Callable, Dict, TextIO, Type
|
|
12
|
+
from typing import TYPE_CHECKING, Any, Callable, Dict, TextIO, Type, cast
|
|
13
13
|
|
|
14
14
|
from rich.console import Console
|
|
15
15
|
from rich.highlighter import Highlighter, NullHighlighter
|
|
@@ -334,8 +334,29 @@ class _SafeStreamHandler(StreamHandler):
|
|
|
334
334
|
it to handleError(), which prints a noisy traceback to sys.stderr. We
|
|
335
335
|
suppress that for ValueError so background threads logging after stream
|
|
336
336
|
teardown stay silent.
|
|
337
|
+
|
|
338
|
+
Context-managed locking also prevents asynchronous cancellation from
|
|
339
|
+
leaving the handler locked on Python 3.12 and earlier.
|
|
337
340
|
"""
|
|
338
341
|
|
|
342
|
+
def handle(self, record: logging.LogRecord) -> bool:
|
|
343
|
+
filtered = self.filter(record)
|
|
344
|
+
if isinstance(filtered, logging.LogRecord):
|
|
345
|
+
record = filtered
|
|
346
|
+
if filtered:
|
|
347
|
+
lock = self.lock
|
|
348
|
+
assert lock is not None
|
|
349
|
+
with lock:
|
|
350
|
+
self.emit(record)
|
|
351
|
+
return cast(bool, filtered)
|
|
352
|
+
|
|
353
|
+
def flush(self) -> None:
|
|
354
|
+
lock = self.lock
|
|
355
|
+
assert lock is not None
|
|
356
|
+
with lock:
|
|
357
|
+
if self.stream and hasattr(self.stream, "flush"):
|
|
358
|
+
self.stream.flush()
|
|
359
|
+
|
|
339
360
|
def handleError(self, record: logging.LogRecord) -> None:
|
|
340
361
|
_, exc, _ = sys.exc_info()
|
|
341
362
|
if isinstance(exc, ValueError) and "closed file" in str(exc):
|
|
@@ -1146,7 +1146,18 @@ class BaseWorker(abc.ABC, Generic[C, V, R]):
|
|
|
1146
1146
|
worker_id=self.backend_id,
|
|
1147
1147
|
)
|
|
1148
1148
|
|
|
1149
|
-
|
|
1149
|
+
try:
|
|
1150
|
+
bundle_result = create_bundle_for_flow_run(flow=flow, flow_run=flow_run)
|
|
1151
|
+
except Exception as exc:
|
|
1152
|
+
logger.exception(
|
|
1153
|
+
"Failed to create execution bundle for flow run '%s'.", flow_run.id
|
|
1154
|
+
)
|
|
1155
|
+
message = (
|
|
1156
|
+
f"Flow run bundle could not be created: {type(exc).__name__}: {exc}"
|
|
1157
|
+
)
|
|
1158
|
+
await self._propose_crashed_state(flow_run, message, client=self.client)
|
|
1159
|
+
return
|
|
1160
|
+
|
|
1150
1161
|
bundle = bundle_result["bundle"]
|
|
1151
1162
|
zip_path = bundle_result["zip_path"]
|
|
1152
1163
|
|
|
@@ -1290,7 +1301,7 @@ class BaseWorker(abc.ABC, Generic[C, V, R]):
|
|
|
1290
1301
|
|
|
1291
1302
|
seconds_since_last_poll = (
|
|
1292
1303
|
prefect.types._datetime.now("UTC") - self._last_polled_time
|
|
1293
|
-
).
|
|
1304
|
+
).total_seconds()
|
|
1294
1305
|
|
|
1295
1306
|
is_still_polling = seconds_since_last_poll <= threshold_seconds
|
|
1296
1307
|
|
|
@@ -280,7 +280,17 @@ class ProcessWorker(
|
|
|
280
280
|
worker_id=self.backend_id,
|
|
281
281
|
)
|
|
282
282
|
|
|
283
|
-
|
|
283
|
+
try:
|
|
284
|
+
result = create_bundle_for_flow_run(flow=flow, flow_run=flow_run)
|
|
285
|
+
except Exception as exc:
|
|
286
|
+
logger.exception(
|
|
287
|
+
"Failed to create execution bundle for flow run '%s'.", flow_run.id
|
|
288
|
+
)
|
|
289
|
+
message = (
|
|
290
|
+
f"Flow run bundle could not be created: {type(exc).__name__}: {exc}"
|
|
291
|
+
)
|
|
292
|
+
await self._propose_crashed_state(flow_run, message)
|
|
293
|
+
return
|
|
284
294
|
|
|
285
295
|
logger.debug("Executing flow run bundle in subprocess...")
|
|
286
296
|
try:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/_launchers.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/bundles/execute.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/plugins/apply.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/plugins/manager.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/plugins/spec.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/sla/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/sla/client.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_experimental/sla/objects.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/analytics/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/analytics/client.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/analytics/device_id.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/analytics/emit.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/analytics/enabled.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/analytics/events.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/analytics/notice.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/analytics/service.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/attempt_control.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/concurrency/api.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/concurrency/calls.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/concurrency/threads.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/concurrency/waiters.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/control_listener.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/installation.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/integrations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/observability.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/plugins/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/plugins/apply.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/plugins/collections.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/plugins/diagnostics.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/plugins/manager.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/plugins/spec.py
RENAMED
|
File without changes
|
{prefect_client-3.8.4.dev5 → prefect_client-3.8.4.dev7}/src/prefect/_internal/plugins/startup.py
RENAMED
|
File without changes
|