Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions providers/yandex/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ dependencies = [
"apache-airflow>=2.10.0",
"yandexcloud>=0.308.0; python_version < '3.13'",
"yandex-query-client>=0.1.4; python_version < '3.13'",
"apache-airflow-providers-common-compat>=1.8.0",
]

# The optional dependencies should be modified in place in the generated file
Expand All @@ -73,8 +74,10 @@ dev = [
"apache-airflow",
"apache-airflow-task-sdk",
"apache-airflow-devel-common",
"apache-airflow-providers-common-compat",
# Additional devel dependencies (do not remove this line and add extra development dependencies)
"responses>=0.25.0",

]

# To build docs:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

import yandexcloud

from airflow.providers.common.compat.sdk import BaseHook
from airflow.providers.yandex.utils.credentials import (
CredentialsType,
get_credentials,
Expand All @@ -28,7 +29,6 @@
from airflow.providers.yandex.utils.defaults import conn_name_attr, conn_type, default_conn_name, hook_name
from airflow.providers.yandex.utils.fields import get_field_from_extras
from airflow.providers.yandex.utils.user_agent import provider_user_agent
from airflow.providers.yandex.version_compat import BaseHook


class YandexCloudBaseHook(BaseHook):
Expand Down
4 changes: 2 additions & 2 deletions providers/yandex/src/airflow/providers/yandex/links/yq.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@

from typing import TYPE_CHECKING

from airflow.providers.yandex.version_compat import BaseOperatorLink, XCom
from airflow.providers.common.compat.sdk import BaseOperatorLink, XCom

if TYPE_CHECKING:
from airflow.models.taskinstancekey import TaskInstanceKey
from airflow.providers.yandex.version_compat import BaseOperator, Context
from airflow.providers.common.compat.sdk import BaseOperator, Context

XCOM_WEBLINK_KEY = "web_link"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@

import yandexcloud

from airflow.providers.common.compat.sdk import BaseOperator
from airflow.providers.yandex.hooks.dataproc import DataprocHook
from airflow.providers.yandex.version_compat import BaseOperator

if TYPE_CHECKING:
from airflow.providers.yandex.version_compat import Context
from airflow.providers.common.compat.sdk import Context


@dataclass
Expand Down
4 changes: 2 additions & 2 deletions providers/yandex/src/airflow/providers/yandex/operators/yq.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@
from functools import cached_property
from typing import TYPE_CHECKING, Any

from airflow.providers.common.compat.sdk import BaseOperator
from airflow.providers.yandex.hooks.yq import YQHook
from airflow.providers.yandex.links.yq import YQLink
from airflow.providers.yandex.version_compat import BaseOperator

if TYPE_CHECKING:
from airflow.providers.yandex.version_compat import Context
from airflow.providers.common.compat.sdk import Context


class YQExecuteQueryOperator(BaseOperator):
Expand Down
21 changes: 0 additions & 21 deletions providers/yandex/src/airflow/providers/yandex/version_compat.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,28 +30,7 @@ def get_base_airflow_version_tuple() -> tuple[int, int, int]:
AIRFLOW_V_3_0_PLUS = get_base_airflow_version_tuple() >= (3, 0, 0)
AIRFLOW_V_3_1_PLUS: bool = get_base_airflow_version_tuple() >= (3, 1, 0)


if AIRFLOW_V_3_1_PLUS:
from airflow.sdk import BaseHook
else:
from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef]

if AIRFLOW_V_3_0_PLUS:
from airflow.sdk import BaseOperator, BaseOperatorLink
from airflow.sdk.definitions.context import Context
from airflow.sdk.execution_time.xcom import XCom
else:
from airflow.models import BaseOperator, XCom
from airflow.models.baseoperatorlink import BaseOperatorLink # type: ignore[no-redef]
from airflow.utils.context import Context


__all__ = [
"AIRFLOW_V_3_0_PLUS",
"AIRFLOW_V_3_1_PLUS",
"BaseHook",
"BaseOperator",
"BaseOperatorLink",
"Context",
"XCom",
]
11 changes: 2 additions & 9 deletions providers/yandex/tests/unit/yandex/hooks/test_dataproc.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,19 +23,12 @@

pytest.importorskip("yandexcloud")

try:
import importlib.util

if not importlib.util.find_spec("airflow.sdk.bases.hook"):
raise ImportError

BASEHOOK_PATCH_PATH = "airflow.sdk.bases.hook.BaseHook"
except ImportError:
BASEHOOK_PATCH_PATH = "airflow.hooks.base.BaseHook"

from airflow.models import Connection
from airflow.providers.yandex.hooks.dataproc import DataprocHook

BASEHOOK_PATCH_PATH = "airflow.providers.common.compat.sdk.BaseHook"

# Airflow connection with type "yandexcloud" must be created
CONNECTION_ID = "yandexcloud_default"

Expand Down
10 changes: 1 addition & 9 deletions providers/yandex/tests/unit/yandex/hooks/test_yandex.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,7 @@

from tests_common.test_utils.config import conf_vars

try:
import importlib.util

if not importlib.util.find_spec("airflow.sdk.bases.hook"):
raise ImportError

BASEHOOK_PATCH_PATH = "airflow.sdk.bases.hook.BaseHook"
except ImportError:
BASEHOOK_PATCH_PATH = "airflow.hooks.base.BaseHook"
BASEHOOK_PATCH_PATH = "airflow.providers.common.compat.sdk.BaseHook"


class TestYandexHook:
Expand Down
9 changes: 1 addition & 8 deletions providers/yandex/tests/unit/yandex/hooks/test_yq.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,8 @@

from airflow.models import Connection

try:
import importlib.util
BASEHOOK_PATCH_PATH = "airflow.providers.common.compat.sdk.BaseHook"

if not importlib.util.find_spec("airflow.sdk.bases.hook"):
raise ImportError

BASEHOOK_PATCH_PATH = "airflow.sdk.bases.hook.BaseHook"
except ImportError:
BASEHOOK_PATCH_PATH = "airflow.hooks.base.BaseHook"
yandexcloud = pytest.importorskip("yandexcloud")

from airflow.providers.yandex.hooks.yq import YQHook
Expand Down
6 changes: 1 addition & 5 deletions providers/yandex/tests/unit/yandex/links/test_yq.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,12 @@
import pytest

from airflow.models.taskinstance import TaskInstance
from airflow.providers.common.compat.sdk import XCom
from airflow.providers.yandex.links.yq import YQLink

from tests_common.test_utils.mock_operators import MockOperator
from tests_common.test_utils.version_compat import AIRFLOW_V_3_0_PLUS

if AIRFLOW_V_3_0_PLUS:
from airflow.sdk.execution_time.xcom import XCom
else:
from airflow.models import XCom

yandexcloud = pytest.importorskip("yandexcloud")


Expand Down
10 changes: 1 addition & 9 deletions providers/yandex/tests/unit/yandex/operators/test_dataproc.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,7 @@
# https://cloud.yandex.com/docs/logging/concepts/log-group
LOG_GROUP_ID = "my_log_group_id"

try:
import importlib.util

if not importlib.util.find_spec("airflow.sdk.bases.hook"):
raise ImportError

BASEHOOK_PATCH_PATH = "airflow.sdk.bases.hook.BaseHook"
except ImportError:
BASEHOOK_PATCH_PATH = "airflow.hooks.base.BaseHook"
BASEHOOK_PATCH_PATH = "airflow.providers.common.compat.sdk.BaseHook"


class TestDataprocClusterCreateOperator:
Expand Down
10 changes: 1 addition & 9 deletions providers/yandex/tests/unit/yandex/operators/test_yq.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,7 @@

from tests_common.test_utils.version_compat import AIRFLOW_V_3_0_PLUS

try:
import importlib.util

if not importlib.util.find_spec("airflow.sdk.bases.hook"):
raise ImportError

BASEHOOK_PATCH_PATH = "airflow.sdk.bases.hook.BaseHook"
except ImportError:
BASEHOOK_PATCH_PATH = "airflow.hooks.base.BaseHook"
BASEHOOK_PATCH_PATH = "airflow.providers.common.compat.sdk.BaseHook"

OAUTH_TOKEN = "my_oauth_token"
FOLDER_ID = "my_folder_id"
Expand Down