From cd72b7ea2e3bb173adf4324f3651871c3a58cb21 Mon Sep 17 00:00:00 2001 From: Andrew Brookins Date: Fri, 10 May 2024 13:28:11 -0500 Subject: [PATCH] Revert "Remove lazy imports of kubernetes" This reverts commit 208b97d4038279dc409f812e57ca9ede93e591b5. --- .../prefect-kubernetes/prefect_kubernetes/events.py | 3 ++- .../prefect-kubernetes/prefect_kubernetes/worker.py | 3 ++- .../prefect-kubernetes/tests/test_events_replicator.py | 4 +++- src/prefect/blocks/kubernetes.py | 3 ++- src/prefect/infrastructure/kubernetes.py | 3 ++- 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/integrations/prefect-kubernetes/prefect_kubernetes/events.py b/src/integrations/prefect-kubernetes/prefect_kubernetes/events.py index bacfb0f61c5a..3f22ed709c39 100644 --- a/src/integrations/prefect-kubernetes/prefect_kubernetes/events.py +++ b/src/integrations/prefect-kubernetes/prefect_kubernetes/events.py @@ -3,6 +3,7 @@ from typing import TYPE_CHECKING, Dict, List, Optional from prefect.events import Event, RelatedResource, emit_event +from prefect.utilities.importtools import lazy_import if TYPE_CHECKING: import kubernetes @@ -10,7 +11,7 @@ import kubernetes.watch from kubernetes.client import ApiClient, V1Pod else: - import kubernetes + kubernetes = lazy_import("kubernetes") EVICTED_REASONS = { "OOMKilled", diff --git a/src/integrations/prefect-kubernetes/prefect_kubernetes/worker.py b/src/integrations/prefect-kubernetes/prefect_kubernetes/worker.py index 309c20c6d4d3..3f5ff97ebb69 100644 --- a/src/integrations/prefect-kubernetes/prefect_kubernetes/worker.py +++ b/src/integrations/prefect-kubernetes/prefect_kubernetes/worker.py @@ -128,6 +128,7 @@ from prefect.server.schemas.responses import DeploymentResponse from prefect.utilities.asyncutils import run_sync_in_worker_thread from prefect.utilities.dockerutils import get_prefect_image_name +from prefect.utilities.importtools import lazy_import from prefect.utilities.pydantic import JsonPatch from prefect.utilities.templating import find_placeholders from prefect.workers.base import ( @@ -163,7 +164,7 @@ from prefect.client.schemas import FlowRun else: - import kubernetes + kubernetes = lazy_import("kubernetes") MAX_ATTEMPTS = 3 RETRY_MIN_DELAY_SECONDS = 1 diff --git a/src/integrations/prefect-kubernetes/tests/test_events_replicator.py b/src/integrations/prefect-kubernetes/tests/test_events_replicator.py index 933464b44bf9..078324a936e3 100644 --- a/src/integrations/prefect-kubernetes/tests/test_events_replicator.py +++ b/src/integrations/prefect-kubernetes/tests/test_events_replicator.py @@ -3,12 +3,14 @@ import time from unittest.mock import MagicMock, call, patch -import kubernetes import pytest from kubernetes.client import V1Pod from prefect_kubernetes.events import EVICTED_REASONS, KubernetesEventsReplicator from prefect.events import RelatedResource +from prefect.utilities.importtools import lazy_import + +kubernetes = lazy_import("kubernetes") @pytest.fixture diff --git a/src/prefect/blocks/kubernetes.py b/src/prefect/blocks/kubernetes.py index 0bf6b51694ee..df3d597d86cb 100644 --- a/src/prefect/blocks/kubernetes.py +++ b/src/prefect/blocks/kubernetes.py @@ -16,12 +16,13 @@ from prefect.blocks.core import Block from prefect.utilities.collections import listrepr +from prefect.utilities.importtools import lazy_import if TYPE_CHECKING: import kubernetes from kubernetes.client.api_client import ApiClient else: - import kubernetes + kubernetes = lazy_import("kubernetes") @deprecated_class( diff --git a/src/prefect/infrastructure/kubernetes.py b/src/prefect/infrastructure/kubernetes.py index d525c6f31b5f..2962dc214f97 100644 --- a/src/prefect/infrastructure/kubernetes.py +++ b/src/prefect/infrastructure/kubernetes.py @@ -42,6 +42,7 @@ from prefect.infrastructure.base import Infrastructure, InfrastructureResult from prefect.utilities.asyncutils import run_sync_in_worker_thread, sync_compatible from prefect.utilities.hashing import stable_hash +from prefect.utilities.importtools import lazy_import from prefect.utilities.pydantic import JsonPatch from prefect.utilities.slugify import slugify @@ -52,7 +53,7 @@ import kubernetes.config from kubernetes.client import BatchV1Api, CoreV1Api, V1Job, V1Pod else: - import kubernetes + kubernetes = lazy_import("kubernetes") class KubernetesImagePullPolicy(enum.Enum):