prefect-client 3.3.7__tar.gz → 3.3.8.dev1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/PKG-INFO +1 -1
- prefect_client-3.3.8.dev1/src/prefect/_build_info.py +5 -0
- prefect_client-3.3.8.dev1/src/prefect/_versioning.py +438 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/flow_runs.py +4 -1
- prefect_client-3.3.7/src/prefect/_build_info.py +0 -5
- prefect_client-3.3.7/src/prefect/_versioning.py +0 -180
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/.gitignore +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/LICENSE +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/README.md +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/pyproject.toml +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/.prefectignore +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/__main__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_experimental/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_experimental/bundles/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_experimental/bundles/execute.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_experimental/lineage.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_experimental/sla/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_experimental/sla/client.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_experimental/sla/objects.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/_logging.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/compatibility/migration.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/services.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/threads.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/integrations.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/pytz.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/retries.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/schemas/validators.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_result_records.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_vendor/croniter/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_vendor/croniter/croniter.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_waiters.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/agent.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/artifacts.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/automations.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/blocks/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/blocks/abstract.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/blocks/core.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/blocks/fields.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/blocks/notifications.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/blocks/redis.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/blocks/system.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/blocks/webhook.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/cache_policies.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/base.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/cloud.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/collections.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/constants.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_automations/client.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_deployments/client.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_flows/client.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_logs/client.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_variables/client.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/base.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/routes.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/schemas/actions.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/schemas/filters.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/schemas/objects.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/schemas/responses.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/subscriptions.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/types/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/types/flexible_schedule_list.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/client/utilities.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/_asyncio.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/_events.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/asyncio.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/context.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/services.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/sync.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/v1/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/v1/_asyncio.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/v1/_events.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/v1/asyncio.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/v1/context.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/v1/services.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/v1/sync.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/context.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/deployments/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/deployments/base.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/deployments/deployments.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/deployments/flow_runs.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/deployments/runner.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/deployments/schedules.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/deployments/steps/core.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/docker/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/docker/docker_image.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/engine.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/events/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/events/actions.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/events/cli/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/events/cli/automations.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/events/clients.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/events/filters.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/events/related.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/events/schemas/automations.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/events/schemas/events.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/events/utilities.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/events/worker.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/exceptions.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/filesystems.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/flow_engine.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/flows.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/futures.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/infrastructure/base.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/input/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/input/actions.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/input/run_input.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/locking/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/locking/filesystem.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/locking/memory.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/locking/protocol.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/logging/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/logging/configuration.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/logging/filters.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/logging/formatters.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/logging/handlers.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/logging/highlighters.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/logging/loggers.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/logging/logging.yml +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/main.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/plugins.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/py.typed +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/results.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/runner/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/runner/runner.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/runner/server.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/runner/storage.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/runner/submit.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/runner/utils.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/runtime/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/runtime/deployment.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/runtime/flow_run.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/runtime/task_run.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/schedules.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/serializers.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/admin.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/artifacts.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/automations.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/block_capabilities.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/block_documents.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/block_schemas.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/block_types.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/clients.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/collections.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/concurrency_limits.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/csrf_token.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/dependencies.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/deployments.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/events.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/flow_run_notification_policies.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/flow_run_states.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/flow_runs.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/flows.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/logs.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/middleware.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/root.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/run_history.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/saved_searches.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/server.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/task_run_states.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/task_runs.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/task_workers.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/templates.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/ui/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/ui/flow_runs.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/ui/flows.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/ui/schemas.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/ui/task_runs.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/validation.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/variables.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/work_queues.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/server/api/workers.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/base.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/constants.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/context.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/legacy.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/api.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/cli.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/client.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/cloud.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/deployments.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/experiments.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/flows.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/internal.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/logging.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/results.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/root.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/runner.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/api.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/database.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/deployments.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/ephemeral.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/events.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/root.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/services.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/tasks.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/ui.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/tasks.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/testing.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/worker.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/profiles.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/profiles.toml +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/settings/sources.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/states.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/task_engine.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/task_runners.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/task_runs.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/task_worker.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/tasks.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/telemetry/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/telemetry/bootstrap.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/telemetry/instrumentation.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/telemetry/logging.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/telemetry/processors.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/telemetry/run_telemetry.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/telemetry/services.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/transactions.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/types/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/types/_datetime.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/types/entrypoint.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/_ast.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/_deprecated.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/_engine.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/_git.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/annotations.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/asyncutils.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/callables.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/collections.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/compat.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/context.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/dispatch.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/engine.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/filesystem.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/generics.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/hashing.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/importtools.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/math.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/names.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/processutils.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/pydantic.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/services.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/slugify.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/templating.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/text.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/timeout.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/urls.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/utilities/visualization.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/variables.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/workers/__init__.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/workers/base.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/workers/block.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/workers/cloud.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/workers/process.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/workers/server.py +0 -0
- {prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/workers/utilities.py +0 -0
@@ -0,0 +1,438 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
import os
|
4
|
+
from enum import Enum
|
5
|
+
from typing import Any, Callable, Coroutine, Dict, Literal, Optional
|
6
|
+
from urllib.parse import urlparse
|
7
|
+
|
8
|
+
from anyio import run_process
|
9
|
+
from pydantic import Field
|
10
|
+
|
11
|
+
from prefect.client.schemas.objects import VersionInfo
|
12
|
+
|
13
|
+
|
14
|
+
async def get_commit_message_first_line() -> str:
|
15
|
+
result = await run_process(["git", "log", "-1", "--pretty=%B"])
|
16
|
+
return result.stdout.decode().strip().splitlines()[0]
|
17
|
+
|
18
|
+
|
19
|
+
class SimpleVersionInfo(VersionInfo):
|
20
|
+
type: Literal["prefect:simple"] = "prefect:simple"
|
21
|
+
version: str = Field(default="")
|
22
|
+
branch: Optional[str] = Field(default=None)
|
23
|
+
url: Optional[str] = Field(default=None)
|
24
|
+
|
25
|
+
|
26
|
+
class GithubVersionInfo(VersionInfo):
|
27
|
+
type: Literal["vcs:github"] = "vcs:github"
|
28
|
+
version: str
|
29
|
+
commit_sha: str
|
30
|
+
message: str
|
31
|
+
branch: str
|
32
|
+
repository: str
|
33
|
+
url: str
|
34
|
+
|
35
|
+
|
36
|
+
class GitlabVersionInfo(VersionInfo):
|
37
|
+
type: Literal["vcs:gitlab"] = "vcs:gitlab"
|
38
|
+
version: str
|
39
|
+
commit_sha: str
|
40
|
+
message: str
|
41
|
+
branch: str
|
42
|
+
repository: str
|
43
|
+
url: str
|
44
|
+
|
45
|
+
|
46
|
+
class BitbucketVersionInfo(VersionInfo):
|
47
|
+
type: Literal["vcs:bitbucket"] = "vcs:bitbucket"
|
48
|
+
version: str
|
49
|
+
commit_sha: str
|
50
|
+
message: str
|
51
|
+
branch: str
|
52
|
+
repository: str
|
53
|
+
url: str
|
54
|
+
|
55
|
+
|
56
|
+
class AzureDevopsVersionInfo(VersionInfo):
|
57
|
+
type: Literal["vcs:azuredevops"] = "vcs:azuredevops"
|
58
|
+
version: str
|
59
|
+
commit_sha: str
|
60
|
+
message: str
|
61
|
+
branch: str
|
62
|
+
repository: str
|
63
|
+
url: str
|
64
|
+
|
65
|
+
|
66
|
+
class GitVersionInfo(VersionInfo):
|
67
|
+
type: Literal["vcs:git"] = "vcs:git"
|
68
|
+
version: str
|
69
|
+
commit_sha: str
|
70
|
+
message: str
|
71
|
+
branch: str
|
72
|
+
repository: str
|
73
|
+
url: str
|
74
|
+
|
75
|
+
|
76
|
+
async def get_github_version_info(
|
77
|
+
commit_sha: Optional[str] = None,
|
78
|
+
message: Optional[str] = None,
|
79
|
+
branch: Optional[str] = None,
|
80
|
+
repository: Optional[str] = None,
|
81
|
+
url: Optional[str] = None,
|
82
|
+
) -> GithubVersionInfo:
|
83
|
+
"""Create a GithubVersionInfo object from provided values or environment variables.
|
84
|
+
|
85
|
+
Args:
|
86
|
+
commit_sha: The commit SHA, falls back to GITHUB_SHA env var
|
87
|
+
message: The commit message, falls back to git log -1 --pretty=%B
|
88
|
+
branch: The git branch, falls back to GITHUB_REF_NAME env var
|
89
|
+
repository: The repository name, falls back to GITHUB_REPOSITORY env var
|
90
|
+
url: The repository URL, constructed from GITHUB_SERVER_URL/GITHUB_REPOSITORY/tree/GITHUB_SHA if not provided
|
91
|
+
|
92
|
+
Returns:
|
93
|
+
A GithubVersionInfo
|
94
|
+
|
95
|
+
Raises:
|
96
|
+
ValueError: If any required fields cannot be determined
|
97
|
+
"""
|
98
|
+
try:
|
99
|
+
commit_sha = commit_sha or os.getenv("GITHUB_SHA")
|
100
|
+
branch = branch or os.getenv("GITHUB_REF_NAME")
|
101
|
+
repository = repository or os.getenv("GITHUB_REPOSITORY")
|
102
|
+
url = url or f"{os.getenv('GITHUB_SERVER_URL')}/{repository}/tree/{commit_sha}"
|
103
|
+
|
104
|
+
if not message:
|
105
|
+
message = await get_commit_message_first_line()
|
106
|
+
|
107
|
+
if not commit_sha:
|
108
|
+
raise ValueError(
|
109
|
+
"commit_sha is required - must be provided or set in GITHUB_SHA"
|
110
|
+
)
|
111
|
+
if not branch:
|
112
|
+
raise ValueError(
|
113
|
+
"branch is required - must be provided or set in GITHUB_REF_NAME"
|
114
|
+
)
|
115
|
+
if not repository:
|
116
|
+
raise ValueError(
|
117
|
+
"repository is required - must be provided or set in GITHUB_REPOSITORY"
|
118
|
+
)
|
119
|
+
|
120
|
+
except Exception as e:
|
121
|
+
raise ValueError(
|
122
|
+
f"Error getting git version info: {e}. You may not be in a Github repository."
|
123
|
+
)
|
124
|
+
|
125
|
+
return GithubVersionInfo(
|
126
|
+
type="vcs:github",
|
127
|
+
version=commit_sha[:8],
|
128
|
+
commit_sha=commit_sha,
|
129
|
+
message=message,
|
130
|
+
branch=branch,
|
131
|
+
repository=repository,
|
132
|
+
url=url,
|
133
|
+
)
|
134
|
+
|
135
|
+
|
136
|
+
async def get_gitlab_version_info(
|
137
|
+
commit_sha: Optional[str] = None,
|
138
|
+
message: Optional[str] = None,
|
139
|
+
branch: Optional[str] = None,
|
140
|
+
repository: Optional[str] = None,
|
141
|
+
url: Optional[str] = None,
|
142
|
+
) -> GitlabVersionInfo:
|
143
|
+
"""Create a GitlabVersionInfo object from provided values or environment variables.
|
144
|
+
|
145
|
+
Args:
|
146
|
+
commit_sha: The commit SHA, falls back to CI_COMMIT_SHA env var
|
147
|
+
message: The commit message, falls back to git log -1 --pretty=%B
|
148
|
+
branch: The git branch, falls back to CI_COMMIT_REF_NAME env var
|
149
|
+
repository: The repository name, falls back to CI_PROJECT_NAME env var
|
150
|
+
url: The repository URL, constructed from CI_PROJECT_URL/-/tree/CI_COMMIT_SHA if not provided
|
151
|
+
|
152
|
+
Returns:
|
153
|
+
A GitlabVersionInfo
|
154
|
+
|
155
|
+
Raises:
|
156
|
+
ValueError: If any required fields cannot be determined
|
157
|
+
"""
|
158
|
+
try:
|
159
|
+
commit_sha = commit_sha or os.getenv("CI_COMMIT_SHA")
|
160
|
+
branch = branch or os.getenv("CI_COMMIT_REF_NAME")
|
161
|
+
repository = repository or os.getenv("CI_PROJECT_NAME")
|
162
|
+
url = url or f"{os.getenv('CI_PROJECT_URL')}/-/tree/{commit_sha}"
|
163
|
+
|
164
|
+
if not message:
|
165
|
+
message = await get_commit_message_first_line()
|
166
|
+
|
167
|
+
if not commit_sha:
|
168
|
+
raise ValueError(
|
169
|
+
"commit_sha is required - must be provided or set in CI_COMMIT_SHA"
|
170
|
+
)
|
171
|
+
if not branch:
|
172
|
+
raise ValueError(
|
173
|
+
"branch is required - must be provided or set in CI_COMMIT_REF_NAME"
|
174
|
+
)
|
175
|
+
if not repository:
|
176
|
+
raise ValueError(
|
177
|
+
"repository is required - must be provided or set in CI_PROJECT_NAME"
|
178
|
+
)
|
179
|
+
if not url:
|
180
|
+
raise ValueError(
|
181
|
+
"url is required - must be provided or set in CI_PROJECT_URL"
|
182
|
+
)
|
183
|
+
|
184
|
+
except Exception as e:
|
185
|
+
raise ValueError(
|
186
|
+
f"Error getting git version info: {e}. You may not be in a Gitlab repository."
|
187
|
+
)
|
188
|
+
|
189
|
+
return GitlabVersionInfo(
|
190
|
+
type="vcs:gitlab",
|
191
|
+
version=commit_sha[:8],
|
192
|
+
commit_sha=commit_sha,
|
193
|
+
message=message,
|
194
|
+
branch=branch,
|
195
|
+
repository=repository,
|
196
|
+
url=url,
|
197
|
+
)
|
198
|
+
|
199
|
+
|
200
|
+
async def get_bitbucket_version_info(
|
201
|
+
commit_sha: Optional[str] = None,
|
202
|
+
message: Optional[str] = None,
|
203
|
+
branch: Optional[str] = None,
|
204
|
+
repository: Optional[str] = None,
|
205
|
+
url: Optional[str] = None,
|
206
|
+
) -> BitbucketVersionInfo:
|
207
|
+
"""Create a BitbucketVersionInfo object from provided values or environment variables.
|
208
|
+
|
209
|
+
Args:
|
210
|
+
commit_sha: The commit SHA, falls back to BITBUCKET_COMMIT env var
|
211
|
+
message: The commit message, falls back to git log -1 --pretty=%B
|
212
|
+
branch: The git branch, falls back to BITBUCKET_BRANCH env var
|
213
|
+
repository: The repository name, falls back to BITBUCKET_REPO_SLUG env var
|
214
|
+
url: The repository URL, constructed from BITBUCKET_GIT_HTTP_ORIGIN/BITBUCKET_REPO_SLUG/src/BITBUCKET_COMMIT if not provided
|
215
|
+
|
216
|
+
Returns:
|
217
|
+
A BitbucketVersionInfo
|
218
|
+
|
219
|
+
Raises:
|
220
|
+
ValueError: If any required fields cannot be determined
|
221
|
+
"""
|
222
|
+
try:
|
223
|
+
commit_sha = commit_sha or os.getenv("BITBUCKET_COMMIT")
|
224
|
+
branch = branch or os.getenv("BITBUCKET_BRANCH")
|
225
|
+
repository = repository or os.getenv("BITBUCKET_REPO_SLUG")
|
226
|
+
url = url or f"{os.getenv('BITBUCKET_GIT_HTTP_ORIGIN')}/src/{commit_sha}"
|
227
|
+
|
228
|
+
if not message:
|
229
|
+
message = await get_commit_message_first_line()
|
230
|
+
|
231
|
+
if not commit_sha:
|
232
|
+
raise ValueError(
|
233
|
+
"commit_sha is required - must be provided or set in BITBUCKET_COMMIT"
|
234
|
+
)
|
235
|
+
if not branch:
|
236
|
+
raise ValueError(
|
237
|
+
"branch is required - must be provided or set in BITBUCKET_BRANCH"
|
238
|
+
)
|
239
|
+
if not repository:
|
240
|
+
raise ValueError(
|
241
|
+
"repository is required - must be provided or set in BITBUCKET_REPO_SLUG"
|
242
|
+
)
|
243
|
+
if not url:
|
244
|
+
raise ValueError(
|
245
|
+
"url is required - must be provided or set in BITBUCKET_GIT_HTTP_ORIGIN"
|
246
|
+
)
|
247
|
+
|
248
|
+
except Exception as e:
|
249
|
+
raise ValueError(
|
250
|
+
f"Error getting git version info: {e}. You may not be in a Bitbucket repository."
|
251
|
+
)
|
252
|
+
|
253
|
+
return BitbucketVersionInfo(
|
254
|
+
type="vcs:bitbucket",
|
255
|
+
version=commit_sha[:8],
|
256
|
+
commit_sha=commit_sha,
|
257
|
+
message=message,
|
258
|
+
branch=branch,
|
259
|
+
repository=repository,
|
260
|
+
url=url,
|
261
|
+
)
|
262
|
+
|
263
|
+
|
264
|
+
async def get_azuredevops_version_info(
|
265
|
+
commit_sha: Optional[str] = None,
|
266
|
+
message: Optional[str] = None,
|
267
|
+
branch: Optional[str] = None,
|
268
|
+
repository: Optional[str] = None,
|
269
|
+
url: Optional[str] = None,
|
270
|
+
) -> AzureDevopsVersionInfo:
|
271
|
+
"""Create an AzureDevopsVersionInfo object from provided values or environment variables.
|
272
|
+
|
273
|
+
Args:
|
274
|
+
commit_sha: The commit SHA, falls back to BUILD_SOURCEVERSION env var
|
275
|
+
message: The commit message, falls back to git log -1 --pretty=%B
|
276
|
+
branch: The git branch, falls back to BUILD_SOURCEBRANCHNAME env var
|
277
|
+
repository: The repository name, falls back to BUILD_REPOSITORY_NAME env var
|
278
|
+
url: The repository URL, constructed from BUILD_REPOSITORY_URI?version=GCBUILD_SOURCEVERSION if not provided
|
279
|
+
|
280
|
+
Returns:
|
281
|
+
An AzureDevopsVersionInfo
|
282
|
+
|
283
|
+
Raises:
|
284
|
+
ValueError: If any required fields cannot be determined
|
285
|
+
"""
|
286
|
+
try:
|
287
|
+
commit_sha = commit_sha or os.getenv("BUILD_SOURCEVERSION")
|
288
|
+
branch = branch or os.getenv("BUILD_SOURCEBRANCHNAME")
|
289
|
+
repository = repository or os.getenv("BUILD_REPOSITORY_NAME")
|
290
|
+
url = url or f"{os.getenv('BUILD_REPOSITORY_URI')}?version=GC{commit_sha}"
|
291
|
+
|
292
|
+
if not message:
|
293
|
+
message = await get_commit_message_first_line()
|
294
|
+
|
295
|
+
if not commit_sha:
|
296
|
+
raise ValueError(
|
297
|
+
"commit_sha is required - must be provided or set in BUILD_SOURCEVERSION"
|
298
|
+
)
|
299
|
+
if not branch:
|
300
|
+
raise ValueError(
|
301
|
+
"branch is required - must be provided or set in BUILD_SOURCEBRANCHNAME"
|
302
|
+
)
|
303
|
+
if not repository:
|
304
|
+
raise ValueError(
|
305
|
+
"repository is required - must be provided or set in BUILD_REPOSITORY_NAME"
|
306
|
+
)
|
307
|
+
if not url:
|
308
|
+
raise ValueError(
|
309
|
+
"url is required - must be provided or set in BUILD_REPOSITORY_URI"
|
310
|
+
)
|
311
|
+
|
312
|
+
except Exception as e:
|
313
|
+
raise ValueError(
|
314
|
+
f"Error getting git version info: {e}. You may not be in an Azure DevOps repository."
|
315
|
+
)
|
316
|
+
|
317
|
+
return AzureDevopsVersionInfo(
|
318
|
+
type="vcs:azuredevops",
|
319
|
+
version=commit_sha[:8],
|
320
|
+
commit_sha=commit_sha,
|
321
|
+
message=message,
|
322
|
+
branch=branch,
|
323
|
+
repository=repository,
|
324
|
+
url=url,
|
325
|
+
)
|
326
|
+
|
327
|
+
|
328
|
+
async def get_git_version_info(
|
329
|
+
commit_sha: Optional[str] = None,
|
330
|
+
message: Optional[str] = None,
|
331
|
+
branch: Optional[str] = None,
|
332
|
+
url: Optional[str] = None,
|
333
|
+
repository: Optional[str] = None,
|
334
|
+
) -> GitVersionInfo:
|
335
|
+
try:
|
336
|
+
if not commit_sha:
|
337
|
+
# Run git command and get stdout
|
338
|
+
result = await run_process(["git", "rev-parse", "HEAD"])
|
339
|
+
# Decode bytes to string and strip whitespace
|
340
|
+
commit_sha = result.stdout.decode().strip()
|
341
|
+
|
342
|
+
if not branch:
|
343
|
+
result = await run_process(["git", "rev-parse", "--abbrev-ref", "HEAD"])
|
344
|
+
branch = result.stdout.decode().strip()
|
345
|
+
|
346
|
+
if not repository:
|
347
|
+
result = await run_process(["git", "config", "--get", "remote.origin.url"])
|
348
|
+
remote_url = result.stdout.decode().strip()
|
349
|
+
|
350
|
+
# Extract just the repository name (last part of the path)
|
351
|
+
repo_url = urlparse(remote_url)
|
352
|
+
repository = repo_url.path.strip("/")
|
353
|
+
if repository.endswith(".git"):
|
354
|
+
repository = repository[:-4]
|
355
|
+
|
356
|
+
if not message:
|
357
|
+
message = await get_commit_message_first_line()
|
358
|
+
|
359
|
+
if not url and repository:
|
360
|
+
# Use the full remote URL as the URL
|
361
|
+
result = await run_process(["git", "config", "--get", "remote.origin.url"])
|
362
|
+
url = result.stdout.decode().strip()
|
363
|
+
except Exception as e:
|
364
|
+
raise ValueError(
|
365
|
+
f"Error getting git version info: {e}. You may not be in a git repository."
|
366
|
+
)
|
367
|
+
|
368
|
+
if not url:
|
369
|
+
raise ValueError("Could not determine git repository URL")
|
370
|
+
|
371
|
+
return GitVersionInfo(
|
372
|
+
type="vcs:git",
|
373
|
+
version=commit_sha[:8],
|
374
|
+
branch=branch,
|
375
|
+
url=url,
|
376
|
+
repository=repository,
|
377
|
+
commit_sha=commit_sha,
|
378
|
+
message=message,
|
379
|
+
)
|
380
|
+
|
381
|
+
|
382
|
+
class VersionType(str, Enum):
|
383
|
+
SIMPLE = "prefect:simple"
|
384
|
+
GITHUB = "vcs:github"
|
385
|
+
GITLAB = "vcs:gitlab"
|
386
|
+
BITBUCKET = "vcs:bitbucket"
|
387
|
+
AZUREDEVOPS = "vcs:azuredevops"
|
388
|
+
GIT = "vcs:git"
|
389
|
+
|
390
|
+
|
391
|
+
async def get_inferred_version_info(
|
392
|
+
version_type: Optional[str] = None,
|
393
|
+
) -> VersionInfo | None:
|
394
|
+
"""
|
395
|
+
Attempts to infer version information from the environment.
|
396
|
+
|
397
|
+
Args:
|
398
|
+
version_type: Optional type of version info to get. If provided, only that
|
399
|
+
type will be attempted.
|
400
|
+
|
401
|
+
Returns:
|
402
|
+
VersionInfo: The inferred version information
|
403
|
+
|
404
|
+
Raises:
|
405
|
+
ValueError: If unable to infer version info from any source
|
406
|
+
"""
|
407
|
+
# Map version types to their getter functions
|
408
|
+
type_to_getter: Dict[str, Callable[..., Coroutine[Any, Any, Any]]] = {
|
409
|
+
VersionType.GITHUB: get_github_version_info,
|
410
|
+
VersionType.GITLAB: get_gitlab_version_info,
|
411
|
+
VersionType.BITBUCKET: get_bitbucket_version_info,
|
412
|
+
VersionType.AZUREDEVOPS: get_azuredevops_version_info,
|
413
|
+
VersionType.GIT: get_git_version_info,
|
414
|
+
}
|
415
|
+
|
416
|
+
# Default order of getters to try
|
417
|
+
default_getters = [
|
418
|
+
get_github_version_info,
|
419
|
+
get_gitlab_version_info,
|
420
|
+
get_bitbucket_version_info,
|
421
|
+
get_azuredevops_version_info,
|
422
|
+
get_git_version_info,
|
423
|
+
]
|
424
|
+
|
425
|
+
if version_type:
|
426
|
+
if version_type not in type_to_getter:
|
427
|
+
raise ValueError(f"Unknown version type: {version_type}")
|
428
|
+
getters = [type_to_getter[version_type]]
|
429
|
+
else:
|
430
|
+
getters = default_getters
|
431
|
+
|
432
|
+
for getter in getters:
|
433
|
+
try:
|
434
|
+
return await getter()
|
435
|
+
except ValueError:
|
436
|
+
continue
|
437
|
+
|
438
|
+
return None
|
@@ -141,7 +141,10 @@ async def wait_for_flow_run(
|
|
141
141
|
return flow_run
|
142
142
|
|
143
143
|
async for event in subscriber:
|
144
|
-
state_type
|
144
|
+
if not (state_type := event.resource.get("prefect.state-type")):
|
145
|
+
logger.debug(f"Received {event.event!r} event")
|
146
|
+
continue
|
147
|
+
state_type = StateType(state_type)
|
145
148
|
state = State(type=state_type)
|
146
149
|
|
147
150
|
if log_states:
|
@@ -1,180 +0,0 @@
|
|
1
|
-
from __future__ import annotations
|
2
|
-
|
3
|
-
import os
|
4
|
-
from enum import Enum
|
5
|
-
from typing import Any, Callable, Coroutine, Dict, Literal, Optional
|
6
|
-
from urllib.parse import urlparse
|
7
|
-
|
8
|
-
from anyio import run_process
|
9
|
-
from pydantic import Field, model_validator
|
10
|
-
|
11
|
-
from prefect.client.schemas.objects import VersionInfo
|
12
|
-
|
13
|
-
|
14
|
-
class SimpleVersionInfo(VersionInfo):
|
15
|
-
type: Literal["prefect:simple"] = "prefect:simple"
|
16
|
-
version: str = Field(default="")
|
17
|
-
branch: Optional[str] = Field(default=None)
|
18
|
-
url: Optional[str] = Field(default=None)
|
19
|
-
|
20
|
-
|
21
|
-
class GithubVersionInfo(VersionInfo):
|
22
|
-
type: Literal["vcs:github"] = "vcs:github"
|
23
|
-
version: str
|
24
|
-
branch: str
|
25
|
-
url: str
|
26
|
-
repository: str
|
27
|
-
|
28
|
-
@model_validator(mode="after")
|
29
|
-
def validate_branch(self):
|
30
|
-
if not self.branch:
|
31
|
-
raise ValueError("branch is required when type is 'vcs:github'")
|
32
|
-
return self
|
33
|
-
|
34
|
-
|
35
|
-
class GitVersionInfo(VersionInfo):
|
36
|
-
type: Literal["vcs:git"] = "vcs:git"
|
37
|
-
version: str
|
38
|
-
branch: str
|
39
|
-
url: str
|
40
|
-
repository: str
|
41
|
-
|
42
|
-
|
43
|
-
async def get_github_version_info(
|
44
|
-
version: Optional[str] = None,
|
45
|
-
branch: Optional[str] = None,
|
46
|
-
repository: Optional[str] = None,
|
47
|
-
url: Optional[str] = None,
|
48
|
-
) -> GithubVersionInfo:
|
49
|
-
"""Create a GithubVersionInfo object from provided values or environment variables.
|
50
|
-
|
51
|
-
Args:
|
52
|
-
version: The commit SHA, falls back to GITHUB_SHA env var
|
53
|
-
branch: The git branch, falls back to GITHUB_REF_NAME env var
|
54
|
-
repository: The repository name, falls back to GITHUB_REPOSITORY env var
|
55
|
-
url: The repository URL, constructed from GITHUB_SERVER_URL/GITHUB_REPOSITORY if not provided
|
56
|
-
|
57
|
-
Returns:
|
58
|
-
A GithubVersionInfo
|
59
|
-
|
60
|
-
Raises:
|
61
|
-
ValueError: If any required fields cannot be determined
|
62
|
-
"""
|
63
|
-
version = version or os.getenv("GITHUB_SHA")
|
64
|
-
branch = branch or os.getenv("GITHUB_REF_NAME")
|
65
|
-
repository = repository or os.getenv("GITHUB_REPOSITORY")
|
66
|
-
url = url or f"{os.getenv('GITHUB_SERVER_URL')}/{repository}"
|
67
|
-
|
68
|
-
if not version:
|
69
|
-
raise ValueError("version is required - must be provided or set in GITHUB_SHA")
|
70
|
-
if not branch:
|
71
|
-
raise ValueError(
|
72
|
-
"branch is required - must be provided or set in GITHUB_REF_NAME"
|
73
|
-
)
|
74
|
-
if not repository:
|
75
|
-
raise ValueError(
|
76
|
-
"repository is required - must be provided or set in GITHUB_REPOSITORY"
|
77
|
-
)
|
78
|
-
|
79
|
-
return GithubVersionInfo(
|
80
|
-
type="vcs:github",
|
81
|
-
version=version,
|
82
|
-
branch=branch,
|
83
|
-
repository=repository,
|
84
|
-
url=url,
|
85
|
-
)
|
86
|
-
|
87
|
-
|
88
|
-
async def get_git_version_info(
|
89
|
-
version: Optional[str] = None,
|
90
|
-
branch: Optional[str] = None,
|
91
|
-
url: Optional[str] = None,
|
92
|
-
repository: Optional[str] = None,
|
93
|
-
) -> GitVersionInfo:
|
94
|
-
try:
|
95
|
-
if not version:
|
96
|
-
# Run git command and get stdout
|
97
|
-
result = await run_process(["git", "rev-parse", "HEAD"])
|
98
|
-
# Decode bytes to string and strip whitespace
|
99
|
-
version = result.stdout.decode().strip()
|
100
|
-
|
101
|
-
if not branch:
|
102
|
-
result = await run_process(["git", "rev-parse", "--abbrev-ref", "HEAD"])
|
103
|
-
branch = result.stdout.decode().strip()
|
104
|
-
|
105
|
-
if not repository:
|
106
|
-
result = await run_process(["git", "config", "--get", "remote.origin.url"])
|
107
|
-
remote_url = result.stdout.decode().strip()
|
108
|
-
|
109
|
-
# Extract just the repository name (last part of the path)
|
110
|
-
repo_url = urlparse(remote_url)
|
111
|
-
repository = repo_url.path.strip("/")
|
112
|
-
if repository.endswith(".git"):
|
113
|
-
repository = repository[:-4]
|
114
|
-
|
115
|
-
if not url and repository:
|
116
|
-
# Use the full remote URL as the URL
|
117
|
-
result = await run_process(["git", "config", "--get", "remote.origin.url"])
|
118
|
-
url = result.stdout.decode().strip()
|
119
|
-
except Exception as e:
|
120
|
-
raise ValueError(
|
121
|
-
f"Error getting git version info: {e}. You may not be in a git repository."
|
122
|
-
)
|
123
|
-
|
124
|
-
if not url:
|
125
|
-
raise ValueError("Could not determine git repository URL")
|
126
|
-
|
127
|
-
return GitVersionInfo(
|
128
|
-
type="vcs:git", version=version, branch=branch, url=url, repository=repository
|
129
|
-
)
|
130
|
-
|
131
|
-
|
132
|
-
class VersionType(str, Enum):
|
133
|
-
SIMPLE = "prefect:simple"
|
134
|
-
GITHUB = "vcs:github"
|
135
|
-
GIT = "vcs:git"
|
136
|
-
DOCKER = "container:docker"
|
137
|
-
|
138
|
-
|
139
|
-
async def get_inferred_version_info(
|
140
|
-
version_type: Optional[str] = None,
|
141
|
-
) -> VersionInfo | None:
|
142
|
-
"""
|
143
|
-
Attempts to infer version information from the environment.
|
144
|
-
|
145
|
-
Args:
|
146
|
-
version_type: Optional type of version info to get. If provided, only that
|
147
|
-
type will be attempted.
|
148
|
-
|
149
|
-
Returns:
|
150
|
-
VersionInfo: The inferred version information
|
151
|
-
|
152
|
-
Raises:
|
153
|
-
ValueError: If unable to infer version info from any source
|
154
|
-
"""
|
155
|
-
# Map version types to their getter functions
|
156
|
-
type_to_getter: Dict[str, Callable[..., Coroutine[Any, Any, Any]]] = {
|
157
|
-
VersionType.GITHUB: get_github_version_info,
|
158
|
-
VersionType.GIT: get_git_version_info,
|
159
|
-
}
|
160
|
-
|
161
|
-
# Default order of getters to try
|
162
|
-
default_getters = [
|
163
|
-
get_github_version_info,
|
164
|
-
get_git_version_info,
|
165
|
-
]
|
166
|
-
|
167
|
-
if version_type:
|
168
|
-
if version_type not in type_to_getter:
|
169
|
-
raise ValueError(f"Unknown version type: {version_type}")
|
170
|
-
getters = [type_to_getter[version_type]]
|
171
|
-
else:
|
172
|
-
getters = default_getters
|
173
|
-
|
174
|
-
for getter in getters:
|
175
|
-
try:
|
176
|
-
return await getter()
|
177
|
-
except ValueError:
|
178
|
-
continue
|
179
|
-
|
180
|
-
return None
|
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.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_experimental/bundles/__init__.py
RENAMED
File without changes
|
{prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_experimental/bundles/execute.py
RENAMED
File without changes
|
File without changes
|
{prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_experimental/sla/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{prefect_client-3.3.7 → prefect_client-3.3.8.dev1}/src/prefect/_internal/compatibility/__init__.py
RENAMED
File without changes
|