This is an automated email from the ASF dual-hosted git repository.
husseinawala pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new f4c522f120 Improve importing the modules in Airflow auth, api_internal
and callbacks packages (#33807)
f4c522f120 is described below
commit f4c522f120626662c797c37f51b51d048a8ac047
Author: Hussein Awala <[email protected]>
AuthorDate: Sun Aug 27 23:27:24 2023 +0200
Improve importing the modules in Airflow auth, api_internal and callbacks
packages (#33807)
---
airflow/api_internal/endpoints/rpc_api_endpoint.py | 6 ++++--
airflow/auth/managers/fab/cli_commands/role_command.py | 5 ++++-
airflow/auth/managers/fab/cli_commands/utils.py | 7 +++++--
airflow/auth/managers/fab/fab_auth_manager.py | 4 +++-
airflow/auth/managers/fab/security_manager/override.py | 6 +++++-
airflow/callbacks/base_callback_sink.py | 5 ++++-
airflow/callbacks/database_callback_sink.py | 8 ++++++--
airflow/callbacks/pipe_callback_sink.py | 9 ++++++---
8 files changed, 37 insertions(+), 13 deletions(-)
diff --git a/airflow/api_internal/endpoints/rpc_api_endpoint.py
b/airflow/api_internal/endpoints/rpc_api_endpoint.py
index 700408bf35..22a4f7cb64 100644
--- a/airflow/api_internal/endpoints/rpc_api_endpoint.py
+++ b/airflow/api_internal/endpoints/rpc_api_endpoint.py
@@ -20,13 +20,15 @@ from __future__ import annotations
import functools
import json
import logging
-from typing import Any, Callable
+from typing import TYPE_CHECKING, Any, Callable
from flask import Response
-from airflow.api_connexion.types import APIResponse
from airflow.serialization.serialized_objects import BaseSerialization
+if TYPE_CHECKING:
+ from airflow.api_connexion.types import APIResponse
+
log = logging.getLogger(__name__)
diff --git a/airflow/auth/managers/fab/cli_commands/role_command.py
b/airflow/auth/managers/fab/cli_commands/role_command.py
index 34ea8fb9d3..ce69c7f201 100644
--- a/airflow/auth/managers/fab/cli_commands/role_command.py
+++ b/airflow/auth/managers/fab/cli_commands/role_command.py
@@ -22,15 +22,18 @@ import collections
import itertools
import json
import os
+from typing import TYPE_CHECKING
from airflow.auth.managers.fab.cli_commands.utils import
get_application_builder
-from airflow.auth.managers.fab.models import Action, Permission, Resource, Role
from airflow.cli.simple_table import AirflowConsole
from airflow.utils import cli as cli_utils
from airflow.utils.cli import suppress_logs_and_warning
from airflow.utils.providers_configuration_loader import
providers_configuration_loaded
from airflow.www.security import EXISTING_ROLES
+if TYPE_CHECKING:
+ from airflow.auth.managers.fab.models import Action, Permission, Resource,
Role
+
@suppress_logs_and_warning
@providers_configuration_loaded
diff --git a/airflow/auth/managers/fab/cli_commands/utils.py
b/airflow/auth/managers/fab/cli_commands/utils.py
index dd3a40ffd8..8361aab51b 100644
--- a/airflow/auth/managers/fab/cli_commands/utils.py
+++ b/airflow/auth/managers/fab/cli_commands/utils.py
@@ -20,14 +20,17 @@ from __future__ import annotations
import os
from contextlib import contextmanager
from functools import lru_cache
-from typing import Generator
+from typing import TYPE_CHECKING, Generator
from flask import Flask
import airflow
-from airflow.www.extensions.init_appbuilder import AirflowAppBuilder,
init_appbuilder
+from airflow.www.extensions.init_appbuilder import init_appbuilder
from airflow.www.extensions.init_views import init_plugins
+if TYPE_CHECKING:
+ from airflow.www.extensions.init_appbuilder import AirflowAppBuilder
+
@lru_cache(maxsize=None)
def _return_appbuilder(app: Flask) -> AirflowAppBuilder:
diff --git a/airflow/auth/managers/fab/fab_auth_manager.py
b/airflow/auth/managers/fab/fab_auth_manager.py
index def0590b1f..354a073be2 100644
--- a/airflow/auth/managers/fab/fab_auth_manager.py
+++ b/airflow/auth/managers/fab/fab_auth_manager.py
@@ -27,12 +27,14 @@ from airflow.auth.managers.fab.cli_commands.definition
import (
USERS_COMMANDS,
)
from airflow.cli.cli_config import (
- CLICommand,
GroupCommand,
)
if TYPE_CHECKING:
from airflow.auth.managers.fab.models import User
+ from airflow.cli.cli_config import (
+ CLICommand,
+ )
class FabAuthManager(BaseAuthManager):
diff --git a/airflow/auth/managers/fab/security_manager/override.py
b/airflow/auth/managers/fab/security_manager/override.py
index bdcc44d8c1..011f43e86b 100644
--- a/airflow/auth/managers/fab/security_manager/override.py
+++ b/airflow/auth/managers/fab/security_manager/override.py
@@ -20,6 +20,7 @@ from __future__ import annotations
import logging
import warnings
from functools import cached_property
+from typing import TYPE_CHECKING
from flask import flash, g
from flask_appbuilder import const
@@ -32,12 +33,15 @@ from itsdangerous import want_bytes
from markupsafe import Markup
from werkzeug.security import generate_password_hash
-from airflow.auth.managers.fab.models import Action, Permission, RegisterUser,
Resource, Role, User
+from airflow.auth.managers.fab.models import Action, Permission, RegisterUser,
Resource, Role
from airflow.auth.managers.fab.models.anonymous_user import AnonymousUser
from airflow.auth.managers.fab.security_manager.modules.db import
FabAirflowSecurityManagerOverrideDb
from airflow.auth.managers.fab.security_manager.modules.oauth import
FabAirflowSecurityManagerOverrideOauth
from airflow.www.session import AirflowDatabaseSessionInterface
+if TYPE_CHECKING:
+ from airflow.auth.managers.fab.models import User
+
log = logging.getLogger(__name__)
# This is the limit of DB user sessions that we consider as "healthy". If you
have more sessions that this
diff --git a/airflow/callbacks/base_callback_sink.py
b/airflow/callbacks/base_callback_sink.py
index 2f02ce054c..f6a7aaf2e9 100644
--- a/airflow/callbacks/base_callback_sink.py
+++ b/airflow/callbacks/base_callback_sink.py
@@ -17,7 +17,10 @@
# under the License.
from __future__ import annotations
-from airflow.callbacks.callback_requests import CallbackRequest
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from airflow.callbacks.callback_requests import CallbackRequest
class BaseCallbackSink:
diff --git a/airflow/callbacks/database_callback_sink.py
b/airflow/callbacks/database_callback_sink.py
index 0be8127f6f..390f762002 100644
--- a/airflow/callbacks/database_callback_sink.py
+++ b/airflow/callbacks/database_callback_sink.py
@@ -17,13 +17,17 @@
# under the License.
from __future__ import annotations
-from sqlalchemy.orm import Session
+from typing import TYPE_CHECKING
from airflow.callbacks.base_callback_sink import BaseCallbackSink
-from airflow.callbacks.callback_requests import CallbackRequest
from airflow.models.db_callback_request import DbCallbackRequest
from airflow.utils.session import NEW_SESSION, provide_session
+if TYPE_CHECKING:
+ from sqlalchemy.orm import Session
+
+ from airflow.callbacks.callback_requests import CallbackRequest
+
class DatabaseCallbackSink(BaseCallbackSink):
"""Sends callbacks to database."""
diff --git a/airflow/callbacks/pipe_callback_sink.py
b/airflow/callbacks/pipe_callback_sink.py
index 0c9433b057..54acdd1552 100644
--- a/airflow/callbacks/pipe_callback_sink.py
+++ b/airflow/callbacks/pipe_callback_sink.py
@@ -17,11 +17,14 @@
# under the License.
from __future__ import annotations
-from multiprocessing.connection import Connection as MultiprocessingConnection
-from typing import Callable
+from typing import TYPE_CHECKING, Callable
from airflow.callbacks.base_callback_sink import BaseCallbackSink
-from airflow.callbacks.callback_requests import CallbackRequest
+
+if TYPE_CHECKING:
+ from multiprocessing.connection import Connection as
MultiprocessingConnection
+
+ from airflow.callbacks.callback_requests import CallbackRequest
class PipeCallbackSink(BaseCallbackSink):