prefect-client 3.4.26.dev5__tar.gz → 3.4.26.dev6__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.4.26.dev5 → prefect_client-3.4.26.dev6}/PKG-INFO +1 -1
- prefect_client-3.4.26.dev6/src/prefect/_build_info.py +5 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/concurrency/services.py +46 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/concurrency/threads.py +50 -0
- prefect_client-3.4.26.dev5/src/prefect/_build_info.py +0 -5
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/.gitignore +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/LICENSE +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/README.md +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/pyproject.toml +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/.prefectignore +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/AGENTS.md +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/__main__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_experimental/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_experimental/bundles/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_experimental/bundles/execute.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_experimental/plugins/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_experimental/plugins/apply.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_experimental/plugins/manager.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_experimental/plugins/spec.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_experimental/sla/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_experimental/sla/client.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_experimental/sla/objects.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/_logging.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/compatibility/blocks.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/compatibility/migration.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/compatibility/starlette.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/installation.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/integrations.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/pydantic/validated_func.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/pytz.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/retries.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/schemas/validators.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/uuid7.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/websockets.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_result_records.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_vendor/croniter/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_vendor/croniter/croniter.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_versioning.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_waiters.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/agent.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/artifacts.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/assets/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/assets/core.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/assets/materialize.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/automations.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/blocks/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/blocks/abstract.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/blocks/core.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/blocks/fields.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/blocks/notifications.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/blocks/redis.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/blocks/system.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/blocks/webhook.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/cache_policies.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/base.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/cloud.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/collections.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/constants.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_automations/client.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_deployments/client.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_flows/client.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_logs/client.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_variables/client.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/base.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/routes.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/schemas/actions.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/schemas/filters.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/schemas/objects.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/schemas/responses.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/subscriptions.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/types/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/types/flexible_schedule_list.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/utilities.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/_asyncio.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/_events.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/_leases.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/_sync.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/asyncio.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/context.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/services.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/sync.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/v1/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/v1/_asyncio.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/v1/_events.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/v1/asyncio.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/v1/context.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/v1/services.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/v1/sync.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/context.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/deployments/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/deployments/base.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/deployments/deployments.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/deployments/flow_runs.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/deployments/runner.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/deployments/schedules.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/deployments/steps/core.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/docker/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/docker/docker_image.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/engine.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/actions.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/cli/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/cli/automations.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/clients.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/filters.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/related.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/schemas/automations.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/schemas/events.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/subscribers.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/utilities.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/worker.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/exceptions.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/filesystems.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/flow_engine.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/flow_runs.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/flows.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/futures.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/infrastructure/base.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/input/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/input/actions.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/input/run_input.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/locking/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/locking/filesystem.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/locking/memory.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/locking/protocol.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/logging/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/logging/clients.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/logging/configuration.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/logging/filters.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/logging/formatters.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/logging/handlers.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/logging/highlighters.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/logging/loggers.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/logging/logging.yml +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/main.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/plugins.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/py.typed +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/results.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/runner/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/runner/_observers.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/runner/runner.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/runner/server.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/runner/storage.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/runner/submit.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/runner/utils.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/runtime/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/runtime/deployment.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/runtime/flow_run.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/runtime/task_run.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/schedules.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/serializers.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/admin.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/artifacts.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/automations.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/block_capabilities.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/block_documents.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/block_schemas.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/block_types.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/clients.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/collections.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/concurrency_limits.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/csrf_token.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/dependencies.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/deployments.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/events.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/flow_run_states.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/flow_runs.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/flows.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/logs.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/middleware.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/root.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/run_history.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/saved_searches.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/server.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/task_run_states.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/task_runs.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/task_workers.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/templates.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/ui/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/ui/flow_runs.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/ui/flows.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/ui/schemas.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/ui/task_runs.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/validation.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/variables.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/work_queues.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/server/api/workers.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/base.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/constants.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/context.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/legacy.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/_defaults.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/api.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/cli.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/client.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/cloud.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/deployments.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/experiments.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/flows.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/internal.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/logging.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/results.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/root.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/runner.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/server/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/server/api.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/server/concurrency.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/server/database.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/server/deployments.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/server/ephemeral.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/server/events.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/server/logs.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/server/root.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/server/services.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/server/tasks.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/server/ui.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/tasks.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/testing.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/models/worker.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/profiles.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/profiles.toml +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/settings/sources.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/states.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/task_engine.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/task_runners.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/task_runs.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/task_worker.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/tasks.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/telemetry/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/telemetry/run_telemetry.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/transactions.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/types/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/types/_concurrency.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/types/_datetime.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/types/_schema.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/types/entrypoint.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/types/names.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/_ast.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/_deprecated.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/_engine.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/_git.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/annotations.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/asyncutils.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/callables.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/collections.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/compat.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/context.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/dispatch.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/engine.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/filesystem.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/generics.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/hashing.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/importtools.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/math.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/names.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/processutils.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/pydantic.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/services.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/slugify.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/templating.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/text.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/timeout.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/urls.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/utilities/visualization.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/variables.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/workers/__init__.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/workers/base.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/workers/block.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/workers/cloud.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/workers/process.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/workers/server.py +0 -0
- {prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/workers/utilities.py +0 -0
|
@@ -5,8 +5,10 @@ import asyncio
|
|
|
5
5
|
import concurrent.futures
|
|
6
6
|
import contextlib
|
|
7
7
|
import logging
|
|
8
|
+
import os
|
|
8
9
|
import queue
|
|
9
10
|
import threading
|
|
11
|
+
import weakref
|
|
10
12
|
from collections.abc import AsyncGenerator, Awaitable, Coroutine, Generator, Hashable
|
|
11
13
|
from typing import TYPE_CHECKING, Any, Generic, NoReturn, Optional, Union, cast
|
|
12
14
|
|
|
@@ -22,6 +24,31 @@ T = TypeVar("T")
|
|
|
22
24
|
Ts = TypeVarTuple("Ts")
|
|
23
25
|
R = TypeVar("R", infer_variance=True)
|
|
24
26
|
|
|
27
|
+
# Track all active services for fork handling
|
|
28
|
+
_active_services: weakref.WeakSet[_QueueServiceBase[Any]] = weakref.WeakSet()
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def _reset_services_after_fork():
|
|
32
|
+
"""
|
|
33
|
+
Reset service state after fork() to prevent multiprocessing deadlocks on Linux.
|
|
34
|
+
|
|
35
|
+
Called by os.register_at_fork() in the child process after fork().
|
|
36
|
+
"""
|
|
37
|
+
for service in list(_active_services):
|
|
38
|
+
service.reset_for_fork()
|
|
39
|
+
|
|
40
|
+
# Reset the class-level instance tracking
|
|
41
|
+
_QueueServiceBase.reset_instances_for_fork()
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
# Register fork handler if supported (POSIX systems)
|
|
45
|
+
if hasattr(os, "register_at_fork"):
|
|
46
|
+
try:
|
|
47
|
+
os.register_at_fork(after_in_child=_reset_services_after_fork)
|
|
48
|
+
except RuntimeError:
|
|
49
|
+
# Might fail in certain contexts (e.g., if already in a child process)
|
|
50
|
+
pass
|
|
51
|
+
|
|
25
52
|
|
|
26
53
|
class _QueueServiceBase(abc.ABC, Generic[T]):
|
|
27
54
|
_instances: dict[int, Self] = {}
|
|
@@ -44,6 +71,25 @@ class _QueueServiceBase(abc.ABC, Generic[T]):
|
|
|
44
71
|
)
|
|
45
72
|
self._logger = logging.getLogger(f"{type(self).__name__}")
|
|
46
73
|
|
|
74
|
+
# Track this instance for fork handling
|
|
75
|
+
_active_services.add(self)
|
|
76
|
+
|
|
77
|
+
def reset_for_fork(self) -> None:
|
|
78
|
+
"""Reset instance state after fork() to prevent deadlocks in child process."""
|
|
79
|
+
self._stopped = True
|
|
80
|
+
self._started = False
|
|
81
|
+
self._loop = None
|
|
82
|
+
self._done_event = None
|
|
83
|
+
self._task = None
|
|
84
|
+
self._queue = queue.Queue()
|
|
85
|
+
self._lock = threading.Lock()
|
|
86
|
+
|
|
87
|
+
@classmethod
|
|
88
|
+
def reset_instances_for_fork(cls) -> None:
|
|
89
|
+
"""Reset class-level state after fork() to prevent deadlocks in child process."""
|
|
90
|
+
cls._instances.clear()
|
|
91
|
+
cls._instance_lock = threading.Lock()
|
|
92
|
+
|
|
47
93
|
def start(self) -> None:
|
|
48
94
|
logger.debug("Starting service %r", self)
|
|
49
95
|
loop_thread = get_global_loop()
|
|
@@ -8,8 +8,10 @@ import asyncio
|
|
|
8
8
|
import atexit
|
|
9
9
|
import concurrent.futures
|
|
10
10
|
import itertools
|
|
11
|
+
import os
|
|
11
12
|
import queue
|
|
12
13
|
import threading
|
|
14
|
+
import weakref
|
|
13
15
|
from typing import Any, Optional
|
|
14
16
|
|
|
15
17
|
from typing_extensions import TypeVar
|
|
@@ -22,6 +24,32 @@ from prefect._internal.concurrency.primitives import Event
|
|
|
22
24
|
|
|
23
25
|
T = TypeVar("T", infer_variance=True)
|
|
24
26
|
|
|
27
|
+
# Track all active instances for fork handling
|
|
28
|
+
_active_instances: weakref.WeakSet[WorkerThread | EventLoopThread] = weakref.WeakSet()
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def _reset_after_fork_in_child():
|
|
32
|
+
"""
|
|
33
|
+
Reset thread state after fork() to prevent multiprocessing deadlocks on Linux.
|
|
34
|
+
|
|
35
|
+
When fork() is called, the child process inherits all thread state and locks
|
|
36
|
+
from the parent, but only the calling thread continues. This leaves other threads'
|
|
37
|
+
locks in inconsistent states causing deadlocks.
|
|
38
|
+
|
|
39
|
+
This handler is called by os.register_at_fork() in the child process after fork().
|
|
40
|
+
"""
|
|
41
|
+
for instance in list(_active_instances):
|
|
42
|
+
instance.reset_for_fork()
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
# Register fork handler if supported (POSIX systems)
|
|
46
|
+
if hasattr(os, "register_at_fork"):
|
|
47
|
+
try:
|
|
48
|
+
os.register_at_fork(after_in_child=_reset_after_fork_in_child)
|
|
49
|
+
except RuntimeError:
|
|
50
|
+
# Might fail in certain contexts (e.g., if already in a child process)
|
|
51
|
+
pass
|
|
52
|
+
|
|
25
53
|
|
|
26
54
|
class WorkerThread(Portal):
|
|
27
55
|
"""
|
|
@@ -45,9 +73,19 @@ class WorkerThread(Portal):
|
|
|
45
73
|
self._submitted_count: int = 0
|
|
46
74
|
self._lock = threading.Lock()
|
|
47
75
|
|
|
76
|
+
# Track this instance for fork handling
|
|
77
|
+
_active_instances.add(self)
|
|
78
|
+
|
|
48
79
|
if not daemon:
|
|
49
80
|
atexit.register(self.shutdown)
|
|
50
81
|
|
|
82
|
+
def reset_for_fork(self) -> None:
|
|
83
|
+
"""Reset state after fork() to prevent deadlocks in child process."""
|
|
84
|
+
self._started = False
|
|
85
|
+
self._queue = queue.Queue()
|
|
86
|
+
self._lock = threading.Lock()
|
|
87
|
+
self._submitted_count = 0
|
|
88
|
+
|
|
51
89
|
def start(self) -> None:
|
|
52
90
|
"""
|
|
53
91
|
Start the worker thread.
|
|
@@ -145,9 +183,21 @@ class EventLoopThread(Portal):
|
|
|
145
183
|
self._on_shutdown: list[Call[Any]] = []
|
|
146
184
|
self._lock = threading.Lock()
|
|
147
185
|
|
|
186
|
+
# Track this instance for fork handling
|
|
187
|
+
_active_instances.add(self)
|
|
188
|
+
|
|
148
189
|
if not daemon:
|
|
149
190
|
atexit.register(self.shutdown)
|
|
150
191
|
|
|
192
|
+
def reset_for_fork(self) -> None:
|
|
193
|
+
"""Reset state after fork() to prevent deadlocks in child process."""
|
|
194
|
+
self._loop = None
|
|
195
|
+
self._ready_future = concurrent.futures.Future()
|
|
196
|
+
self._shutdown_event = Event()
|
|
197
|
+
self._lock = threading.Lock()
|
|
198
|
+
self._submitted_count = 0
|
|
199
|
+
self._on_shutdown = []
|
|
200
|
+
|
|
151
201
|
def start(self):
|
|
152
202
|
"""
|
|
153
203
|
Start the worker thread; raises any exceptions encountered during startup.
|
|
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.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_experimental/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_experimental/plugins/apply.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_experimental/plugins/spec.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_experimental/sla/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_experimental/sla/client.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_experimental/sla/objects.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/concurrency/api.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/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.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/installation.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/integrations.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/pydantic/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/pydantic/schemas.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/schemas/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/schemas/bases.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/schemas/fields.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_internal/websockets.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_vendor/croniter/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/_vendor/croniter/croniter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/blocks/notifications.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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/base.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/orchestration/routes.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/schemas/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/schemas/actions.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/schemas/filters.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/schemas/objects.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/schemas/responses.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/schemas/schedules.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/schemas/sorting.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/subscriptions.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/client/types/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/_asyncio.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/_events.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/_leases.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/asyncio.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/context.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/services.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/v1/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/v1/_asyncio.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/v1/_events.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/v1/asyncio.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/v1/context.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/v1/services.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/concurrency/v1/sync.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/deployments/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/deployments/deployments.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/deployments/flow_runs.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/deployments/schedules.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/deployments/steps/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/deployments/steps/core.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/deployments/steps/pull.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/deployments/steps/utility.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/docker/docker_image.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/cli/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/cli/automations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/schemas/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/schemas/automations.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/schemas/events.py
RENAMED
|
File without changes
|
{prefect_client-3.4.26.dev5 → prefect_client-3.4.26.dev6}/src/prefect/events/schemas/labelling.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
|