prefect-client 3.4.21.dev3__tar.gz → 3.4.21.dev4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/PKG-INFO +1 -1
- prefect_client-3.4.21.dev4/src/prefect/_build_info.py +5 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_experimental/bundles/__init__.py +263 -6
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/client.py +3 -4
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/concurrency.py +12 -1
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/types/__init__.py +21 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/engine.py +7 -0
- prefect_client-3.4.21.dev3/src/prefect/_build_info.py +0 -5
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/.gitignore +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/LICENSE +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/README.md +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/pyproject.toml +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/.prefectignore +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/AGENTS.md +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/__main__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_experimental/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_experimental/bundles/execute.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_experimental/sla/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_experimental/sla/client.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_experimental/sla/objects.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/_logging.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/compatibility/blocks.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/compatibility/migration.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/compatibility/starlette.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/services.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/threads.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/installation.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/integrations.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/pytz.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/retries.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/schemas/validators.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/uuid7.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/websockets.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_result_records.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_vendor/croniter/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_vendor/croniter/croniter.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_versioning.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_waiters.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/agent.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/artifacts.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/assets/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/assets/core.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/assets/materialize.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/automations.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/blocks/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/blocks/abstract.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/blocks/core.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/blocks/fields.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/blocks/notifications.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/blocks/redis.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/blocks/system.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/blocks/webhook.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/cache_policies.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/base.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/cloud.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/collections.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/constants.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_automations/client.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_deployments/client.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_flows/client.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_logs/client.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_variables/client.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/base.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/orchestration/routes.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/schemas/actions.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/schemas/filters.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/schemas/objects.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/schemas/responses.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/subscriptions.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/types/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/types/flexible_schedule_list.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/client/utilities.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/_asyncio.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/_events.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/_leases.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/asyncio.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/context.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/services.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/sync.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/v1/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/v1/_asyncio.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/v1/_events.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/v1/asyncio.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/v1/context.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/v1/services.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/concurrency/v1/sync.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/context.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/base.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/deployments.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/flow_runs.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/runner.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/schedules.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/steps/core.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/docker/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/docker/docker_image.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/engine.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/actions.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/cli/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/cli/automations.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/clients.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/filters.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/related.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/schemas/automations.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/schemas/events.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/utilities.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/events/worker.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/exceptions.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/filesystems.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/flow_engine.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/flow_runs.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/flows.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/futures.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/infrastructure/base.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/input/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/input/actions.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/input/run_input.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/locking/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/locking/filesystem.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/locking/memory.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/locking/protocol.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/logging/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/logging/clients.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/logging/configuration.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/logging/filters.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/logging/formatters.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/logging/handlers.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/logging/highlighters.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/logging/loggers.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/logging/logging.yml +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/main.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/plugins.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/py.typed +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/results.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runner/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runner/_observers.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runner/runner.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runner/server.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runner/storage.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runner/submit.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runner/utils.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runtime/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runtime/deployment.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runtime/flow_run.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/runtime/task_run.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/schedules.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/serializers.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/admin.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/artifacts.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/automations.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/block_capabilities.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/block_documents.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/block_schemas.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/block_types.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/clients.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/collections.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/concurrency_limits.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/csrf_token.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/dependencies.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/deployments.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/events.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/flow_run_states.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/flow_runs.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/flows.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/logs.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/middleware.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/root.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/run_history.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/saved_searches.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/server.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/task_run_states.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/task_runs.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/task_workers.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/templates.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/ui/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/ui/flow_runs.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/ui/flows.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/ui/schemas.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/ui/task_runs.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/validation.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/variables.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/work_queues.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/server/api/workers.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/base.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/constants.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/context.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/legacy.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/_defaults.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/api.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/cli.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/cloud.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/deployments.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/experiments.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/flows.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/internal.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/logging.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/results.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/root.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/runner.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/api.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/database.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/deployments.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/ephemeral.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/events.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/logs.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/root.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/services.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/tasks.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/server/ui.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/tasks.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/testing.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/worker.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/profiles.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/profiles.toml +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/sources.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/states.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/task_engine.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/task_runners.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/task_runs.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/task_worker.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/tasks.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/telemetry/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/telemetry/run_telemetry.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/transactions.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/types/_concurrency.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/types/_datetime.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/types/entrypoint.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/types/names.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/_ast.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/_deprecated.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/_engine.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/_git.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/annotations.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/asyncutils.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/callables.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/collections.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/compat.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/context.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/dispatch.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/filesystem.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/generics.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/hashing.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/importtools.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/math.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/names.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/processutils.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/pydantic.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/services.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/slugify.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/templating.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/text.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/timeout.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/urls.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/utilities/visualization.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/variables.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/workers/__init__.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/workers/base.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/workers/block.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/workers/cloud.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/workers/process.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/workers/server.py +0 -0
- {prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/workers/utilities.py +0 -0
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
import ast
|
|
3
4
|
import asyncio
|
|
4
5
|
import base64
|
|
5
6
|
import gzip
|
|
7
|
+
import importlib
|
|
8
|
+
import inspect
|
|
6
9
|
import json
|
|
7
10
|
import logging
|
|
8
11
|
import multiprocessing
|
|
@@ -10,8 +13,10 @@ import multiprocessing.context
|
|
|
10
13
|
import os
|
|
11
14
|
import subprocess
|
|
12
15
|
import sys
|
|
16
|
+
from contextlib import contextmanager
|
|
13
17
|
from pathlib import Path
|
|
14
18
|
import tempfile
|
|
19
|
+
from types import ModuleType
|
|
15
20
|
from typing import Any, TypedDict
|
|
16
21
|
|
|
17
22
|
import anyio
|
|
@@ -69,6 +74,256 @@ def _deserialize_bundle_object(serialized_obj: str) -> Any:
|
|
|
69
74
|
return cloudpickle.loads(gzip.decompress(base64.b64decode(serialized_obj)))
|
|
70
75
|
|
|
71
76
|
|
|
77
|
+
def _is_local_module(module_name: str, module_path: str | None = None) -> bool:
|
|
78
|
+
"""
|
|
79
|
+
Check if a module is a local module (not from standard library or site-packages).
|
|
80
|
+
|
|
81
|
+
Args:
|
|
82
|
+
module_name: The name of the module.
|
|
83
|
+
module_path: Optional path to the module file.
|
|
84
|
+
|
|
85
|
+
Returns:
|
|
86
|
+
True if the module is a local module, False otherwise.
|
|
87
|
+
"""
|
|
88
|
+
# Skip modules that are known to be problematic or not needed
|
|
89
|
+
skip_modules = {
|
|
90
|
+
"__pycache__",
|
|
91
|
+
# Skip test modules
|
|
92
|
+
"unittest",
|
|
93
|
+
"pytest",
|
|
94
|
+
"test_",
|
|
95
|
+
"_pytest",
|
|
96
|
+
# Skip prefect modules - they'll be available on remote
|
|
97
|
+
"prefect",
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
# Check module name prefixes
|
|
101
|
+
for skip in skip_modules:
|
|
102
|
+
if module_name.startswith(skip):
|
|
103
|
+
return False
|
|
104
|
+
|
|
105
|
+
# Check if it's a built-in module
|
|
106
|
+
if module_name in sys.builtin_module_names:
|
|
107
|
+
return False
|
|
108
|
+
|
|
109
|
+
# Check if it's in the standard library (Python 3.10+)
|
|
110
|
+
if hasattr(sys, "stdlib_module_names"):
|
|
111
|
+
# Check both full module name and base module name
|
|
112
|
+
base_module = module_name.split(".")[0]
|
|
113
|
+
if (
|
|
114
|
+
module_name in sys.stdlib_module_names
|
|
115
|
+
or base_module in sys.stdlib_module_names
|
|
116
|
+
):
|
|
117
|
+
return False
|
|
118
|
+
|
|
119
|
+
# If we have the module path, check if it's in site-packages or dist-packages
|
|
120
|
+
if module_path:
|
|
121
|
+
path_str = str(module_path)
|
|
122
|
+
# Also exclude standard library paths
|
|
123
|
+
if (
|
|
124
|
+
"site-packages" in path_str
|
|
125
|
+
or "dist-packages" in path_str
|
|
126
|
+
or "/lib/python" in path_str
|
|
127
|
+
or "/.venv/" in path_str
|
|
128
|
+
):
|
|
129
|
+
return False
|
|
130
|
+
else:
|
|
131
|
+
# Try to import the module to get its path
|
|
132
|
+
try:
|
|
133
|
+
module = importlib.import_module(module_name)
|
|
134
|
+
if hasattr(module, "__file__") and module.__file__:
|
|
135
|
+
path_str = str(module.__file__)
|
|
136
|
+
if (
|
|
137
|
+
"site-packages" in path_str
|
|
138
|
+
or "dist-packages" in path_str
|
|
139
|
+
or "/lib/python" in path_str
|
|
140
|
+
or "/.venv/" in path_str
|
|
141
|
+
):
|
|
142
|
+
return False
|
|
143
|
+
except (ImportError, AttributeError):
|
|
144
|
+
# If we can't import it, it's probably not a real module
|
|
145
|
+
return False
|
|
146
|
+
|
|
147
|
+
# Only consider it local if it exists and we can verify it
|
|
148
|
+
return True
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
def _extract_imports_from_source(source_code: str) -> set[str]:
|
|
152
|
+
"""
|
|
153
|
+
Extract all import statements from Python source code.
|
|
154
|
+
|
|
155
|
+
Args:
|
|
156
|
+
source_code: The Python source code to analyze.
|
|
157
|
+
|
|
158
|
+
Returns:
|
|
159
|
+
A set of imported module names.
|
|
160
|
+
"""
|
|
161
|
+
imports: set[str] = set()
|
|
162
|
+
|
|
163
|
+
try:
|
|
164
|
+
tree = ast.parse(source_code)
|
|
165
|
+
except SyntaxError:
|
|
166
|
+
logger.debug("Failed to parse source code for import extraction")
|
|
167
|
+
return imports
|
|
168
|
+
|
|
169
|
+
for node in ast.walk(tree):
|
|
170
|
+
if isinstance(node, ast.Import):
|
|
171
|
+
for alias in node.names:
|
|
172
|
+
imports.add(alias.name)
|
|
173
|
+
elif isinstance(node, ast.ImportFrom):
|
|
174
|
+
if node.module:
|
|
175
|
+
imports.add(node.module)
|
|
176
|
+
# Don't add individual imported items as they might be classes/functions
|
|
177
|
+
# Only track the module itself
|
|
178
|
+
|
|
179
|
+
return imports
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
def _discover_local_dependencies(
|
|
183
|
+
flow: Flow[Any, Any], visited: set[str] | None = None
|
|
184
|
+
) -> set[str]:
|
|
185
|
+
"""
|
|
186
|
+
Recursively discover local module dependencies of a flow.
|
|
187
|
+
|
|
188
|
+
Args:
|
|
189
|
+
flow: The flow to analyze.
|
|
190
|
+
visited: Set of already visited modules to avoid infinite recursion.
|
|
191
|
+
|
|
192
|
+
Returns:
|
|
193
|
+
A set of local module names that should be serialized by value.
|
|
194
|
+
"""
|
|
195
|
+
if visited is None:
|
|
196
|
+
visited = set()
|
|
197
|
+
|
|
198
|
+
local_modules: set[str] = set()
|
|
199
|
+
|
|
200
|
+
# Get the module containing the flow
|
|
201
|
+
try:
|
|
202
|
+
flow_module = inspect.getmodule(flow.fn)
|
|
203
|
+
except (AttributeError, TypeError):
|
|
204
|
+
# Flow function doesn't have a module (e.g., defined in REPL)
|
|
205
|
+
return local_modules
|
|
206
|
+
|
|
207
|
+
if not flow_module:
|
|
208
|
+
return local_modules
|
|
209
|
+
|
|
210
|
+
module_name = flow_module.__name__
|
|
211
|
+
|
|
212
|
+
# Skip if we've already processed this module
|
|
213
|
+
if module_name in visited:
|
|
214
|
+
return local_modules
|
|
215
|
+
visited.add(module_name)
|
|
216
|
+
|
|
217
|
+
# Check if the flow's module itself is local
|
|
218
|
+
module_file = getattr(flow_module, "__file__", None)
|
|
219
|
+
if not module_file or not _is_local_module(module_name, module_file):
|
|
220
|
+
return local_modules
|
|
221
|
+
|
|
222
|
+
local_modules.add(module_name)
|
|
223
|
+
|
|
224
|
+
# Get the source code of the module
|
|
225
|
+
try:
|
|
226
|
+
source_code = inspect.getsource(flow_module)
|
|
227
|
+
except (OSError, TypeError):
|
|
228
|
+
# Can't get source for the flow's module
|
|
229
|
+
return local_modules
|
|
230
|
+
|
|
231
|
+
imports = _extract_imports_from_source(source_code)
|
|
232
|
+
|
|
233
|
+
# Check each import to see if it's local
|
|
234
|
+
for import_name in imports:
|
|
235
|
+
# Skip if already visited
|
|
236
|
+
if import_name in visited:
|
|
237
|
+
continue
|
|
238
|
+
|
|
239
|
+
# Try to resolve the import
|
|
240
|
+
imported_module = None
|
|
241
|
+
try:
|
|
242
|
+
# Handle relative imports by resolving them
|
|
243
|
+
if module_name and "." in module_name:
|
|
244
|
+
package = ".".join(module_name.split(".")[:-1])
|
|
245
|
+
try:
|
|
246
|
+
imported_module = importlib.import_module(import_name, package)
|
|
247
|
+
except ImportError:
|
|
248
|
+
imported_module = importlib.import_module(import_name)
|
|
249
|
+
else:
|
|
250
|
+
imported_module = importlib.import_module(import_name)
|
|
251
|
+
except (ImportError, AttributeError):
|
|
252
|
+
# Can't import or module has no __file__, skip it
|
|
253
|
+
continue
|
|
254
|
+
|
|
255
|
+
imported_file = getattr(imported_module, "__file__", None)
|
|
256
|
+
if not imported_file or not _is_local_module(import_name, imported_file):
|
|
257
|
+
continue
|
|
258
|
+
|
|
259
|
+
local_modules.add(import_name)
|
|
260
|
+
visited.add(import_name)
|
|
261
|
+
|
|
262
|
+
# Recursively check this module's dependencies
|
|
263
|
+
try:
|
|
264
|
+
imported_source = inspect.getsource(imported_module)
|
|
265
|
+
except (OSError, TypeError):
|
|
266
|
+
# Can't get source for this module, skip its dependencies
|
|
267
|
+
continue
|
|
268
|
+
|
|
269
|
+
nested_imports = _extract_imports_from_source(imported_source)
|
|
270
|
+
for nested_import in nested_imports:
|
|
271
|
+
if nested_import not in visited and _is_local_module(nested_import):
|
|
272
|
+
local_modules.add(nested_import)
|
|
273
|
+
visited.add(nested_import)
|
|
274
|
+
|
|
275
|
+
return local_modules
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
@contextmanager
|
|
279
|
+
def _pickle_local_modules_by_value(flow: Flow[Any, Any]):
|
|
280
|
+
"""
|
|
281
|
+
Context manager that registers local modules for pickle-by-value serialization.
|
|
282
|
+
|
|
283
|
+
Args:
|
|
284
|
+
flow: The flow whose dependencies should be registered.
|
|
285
|
+
"""
|
|
286
|
+
registered_modules: list[ModuleType] = []
|
|
287
|
+
|
|
288
|
+
try:
|
|
289
|
+
# Discover local dependencies
|
|
290
|
+
local_modules = _discover_local_dependencies(flow)
|
|
291
|
+
logger.debug("Local modules: %s", local_modules)
|
|
292
|
+
|
|
293
|
+
if local_modules:
|
|
294
|
+
logger.debug(
|
|
295
|
+
"Registering local modules for pickle-by-value serialization: %s",
|
|
296
|
+
", ".join(local_modules),
|
|
297
|
+
)
|
|
298
|
+
|
|
299
|
+
# Register each local module for pickle-by-value
|
|
300
|
+
for module_name in local_modules:
|
|
301
|
+
try:
|
|
302
|
+
module = importlib.import_module(module_name)
|
|
303
|
+
cloudpickle.register_pickle_by_value(module) # pyright: ignore[reportUnknownMemberType] Missing stubs
|
|
304
|
+
registered_modules.append(module)
|
|
305
|
+
except (ImportError, AttributeError) as e:
|
|
306
|
+
logger.debug(
|
|
307
|
+
"Failed to register module %s for pickle-by-value: %s",
|
|
308
|
+
module_name,
|
|
309
|
+
e,
|
|
310
|
+
)
|
|
311
|
+
|
|
312
|
+
yield
|
|
313
|
+
|
|
314
|
+
finally:
|
|
315
|
+
# Unregister all modules we registered
|
|
316
|
+
for module in registered_modules:
|
|
317
|
+
try:
|
|
318
|
+
cloudpickle.unregister_pickle_by_value(module) # pyright: ignore[reportUnknownMemberType] Missing stubs
|
|
319
|
+
except Exception as e:
|
|
320
|
+
logger.debug(
|
|
321
|
+
"Failed to unregister module %s from pickle-by-value: %s",
|
|
322
|
+
getattr(module, "__name__", module),
|
|
323
|
+
e,
|
|
324
|
+
)
|
|
325
|
+
|
|
326
|
+
|
|
72
327
|
def create_bundle_for_flow_run(
|
|
73
328
|
flow: Flow[Any, Any],
|
|
74
329
|
flow_run: FlowRun,
|
|
@@ -120,12 +375,14 @@ def create_bundle_for_flow_run(
|
|
|
120
375
|
"\n".join(file_dependencies),
|
|
121
376
|
)
|
|
122
377
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
378
|
+
# Automatically register local modules for pickle-by-value serialization
|
|
379
|
+
with _pickle_local_modules_by_value(flow):
|
|
380
|
+
return {
|
|
381
|
+
"function": _serialize_bundle_object(flow),
|
|
382
|
+
"context": _serialize_bundle_object(context),
|
|
383
|
+
"flow_run": flow_run.model_dump(mode="json"),
|
|
384
|
+
"dependencies": dependencies,
|
|
385
|
+
}
|
|
129
386
|
|
|
130
387
|
|
|
131
388
|
def extract_flow_from_bundle(bundle: SerializedBundle) -> Flow[Any, Any]:
|
{prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/settings/models/client.py
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import ClassVar
|
|
1
|
+
from typing import ClassVar
|
|
2
2
|
|
|
3
3
|
from pydantic import AliasChoices, AliasPath, Field
|
|
4
4
|
from pydantic_settings import SettingsConfigDict
|
|
@@ -7,7 +7,7 @@ from prefect.settings.base import (
|
|
|
7
7
|
PrefectBaseSettings,
|
|
8
8
|
build_settings_config,
|
|
9
9
|
)
|
|
10
|
-
from prefect.types import ClientRetryExtraCodes
|
|
10
|
+
from prefect.types import ClientRetryExtraCodes, JsonStringOrDict
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class ClientMetricsSettings(PrefectBaseSettings):
|
|
@@ -87,8 +87,7 @@ class ClientSettings(PrefectBaseSettings):
|
|
|
87
87
|
""",
|
|
88
88
|
)
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
custom_headers: Dict[str, str] = Field(
|
|
90
|
+
custom_headers: JsonStringOrDict = Field(
|
|
92
91
|
default_factory=dict,
|
|
93
92
|
description="""
|
|
94
93
|
Custom HTTP headers to include with every API request to the Prefect server.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from typing import ClassVar
|
|
2
2
|
|
|
3
|
-
from pydantic import Field
|
|
3
|
+
from pydantic import AliasChoices, AliasPath, Field
|
|
4
4
|
from pydantic_settings import SettingsConfigDict
|
|
5
5
|
|
|
6
6
|
from prefect.settings.base import PrefectBaseSettings, build_settings_config
|
|
@@ -15,3 +15,14 @@ class ServerConcurrencySettings(PrefectBaseSettings):
|
|
|
15
15
|
default="prefect.server.concurrency.lease_storage.memory",
|
|
16
16
|
description="The module to use for storing concurrency limit leases.",
|
|
17
17
|
)
|
|
18
|
+
|
|
19
|
+
initial_lease_timeout: float = Field(
|
|
20
|
+
default=300.0,
|
|
21
|
+
ge=30.0, # Minimum 30 seconds
|
|
22
|
+
le=3600.0, # Maximum 1 hour
|
|
23
|
+
description="Initial timeout for concurrency lease acquisition in seconds.",
|
|
24
|
+
validation_alias=AliasChoices(
|
|
25
|
+
AliasPath("initial_lease_timeout"),
|
|
26
|
+
"prefect_server_concurrency_initial_lease_timeout",
|
|
27
|
+
),
|
|
28
|
+
)
|
|
@@ -214,12 +214,33 @@ KeyValueLabelsField = Annotated[
|
|
|
214
214
|
]
|
|
215
215
|
|
|
216
216
|
|
|
217
|
+
def _deserialize_dict_if_string(value: Any) -> dict[str, str]:
|
|
218
|
+
"""
|
|
219
|
+
Useful when a value is sometimes passed as a string or natively as a dict.
|
|
220
|
+
|
|
221
|
+
Example, setting the custom headers via the CLI involves passing a string format of a dict:
|
|
222
|
+
```
|
|
223
|
+
prefect settings set PREFECT_CLIENT_CUSTOM_HEADERS='{"X-Test-Header": "test-value", "Authorization": "Bearer token123"}'
|
|
224
|
+
```
|
|
225
|
+
"""
|
|
226
|
+
if isinstance(value, str):
|
|
227
|
+
return orjson.loads(value)
|
|
228
|
+
return value
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
JsonStringOrDict = Annotated[
|
|
232
|
+
dict[str, str],
|
|
233
|
+
BeforeValidator(_deserialize_dict_if_string),
|
|
234
|
+
]
|
|
235
|
+
|
|
236
|
+
|
|
217
237
|
__all__ = [
|
|
218
238
|
"BANNED_CHARACTERS",
|
|
219
239
|
"WITHOUT_BANNED_CHARACTERS",
|
|
220
240
|
"ClientRetryExtraCodes",
|
|
221
241
|
"Date",
|
|
222
242
|
"DateTime",
|
|
243
|
+
"JsonStringOrDict",
|
|
223
244
|
"LogLevel",
|
|
224
245
|
"KeyValueLabelsField",
|
|
225
246
|
"MAX_VARIABLE_NAME_LENGTH",
|
|
@@ -703,6 +703,13 @@ def emit_task_run_state_change_event(
|
|
|
703
703
|
"prefect.state-type": str(validated_state.type.value),
|
|
704
704
|
"prefect.orchestration": "client",
|
|
705
705
|
},
|
|
706
|
+
related=[
|
|
707
|
+
{
|
|
708
|
+
"prefect.resource.id": f"prefect.tag.{tag}",
|
|
709
|
+
"prefect.resource.role": "tag",
|
|
710
|
+
}
|
|
711
|
+
for tag in sorted(task_run.tags)
|
|
712
|
+
],
|
|
706
713
|
follows=follows,
|
|
707
714
|
)
|
|
708
715
|
|
|
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.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_experimental/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_experimental/sla/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_experimental/sla/client.py
RENAMED
|
File without changes
|
{prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/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.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/concurrency/api.py
RENAMED
|
File without changes
|
{prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/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
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/installation.py
RENAMED
|
File without changes
|
{prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/integrations.py
RENAMED
|
File without changes
|
{prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/pydantic/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/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.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/schemas/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/schemas/bases.py
RENAMED
|
File without changes
|
{prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/schemas/fields.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_internal/websockets.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/src/prefect/_vendor/croniter/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.4.21.dev3 → prefect_client-3.4.21.dev4}/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.21.dev3 → prefect_client-3.4.21.dev4}/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
|