refactor: type hints should not be load in runtime (#15540)

This commit is contained in:
ofekisr 2021-07-05 16:48:53 +03:00 committed by GitHub
parent 624b41347b
commit 15796ea4ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 33 additions and 8 deletions

View File

@ -14,8 +14,10 @@
# KIND, either express or implied. See the License for the # KIND, either express or implied. See the License for the
# specific language governing permissions and limitations # specific language governing permissions and limitations
# under the License. # under the License.
from __future__ import annotations
import logging import logging
from typing import Any, ClassVar, Dict, List, Optional, Union from typing import Any, ClassVar, Dict, List, Optional, TYPE_CHECKING, Union
import numpy as np import numpy as np
import pandas as pd import pandas as pd
@ -34,7 +36,6 @@ from superset.exceptions import (
SupersetException, SupersetException,
) )
from superset.extensions import cache_manager, security_manager from superset.extensions import cache_manager, security_manager
from superset.stats_logger import BaseStatsLogger
from superset.utils import csv from superset.utils import csv
from superset.utils.cache import generate_cache_key, set_and_log_cache from superset.utils.cache import generate_cache_key, set_and_log_cache
from superset.utils.core import ( from superset.utils.core import (
@ -50,6 +51,9 @@ from superset.utils.core import (
) )
from superset.views.utils import get_viz from superset.views.utils import get_viz
if TYPE_CHECKING:
from superset.stats_logger import BaseStatsLogger
config = app.config config = app.config
stats_logger: BaseStatsLogger = config["STATS_LOGGER"] stats_logger: BaseStatsLogger = config["STATS_LOGGER"]
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View File

@ -14,10 +14,12 @@
# KIND, either express or implied. See the License for the # KIND, either express or implied. See the License for the
# specific language governing permissions and limitations # specific language governing permissions and limitations
# under the License. # under the License.
from __future__ import annotations
import logging import logging
from datetime import datetime, timedelta from datetime import datetime, timedelta
from functools import wraps from functools import wraps
from typing import Any, Callable, Dict, Optional, Union from typing import Any, Callable, Dict, Optional, TYPE_CHECKING, Union
from flask import current_app as app, request from flask import current_app as app, request
from flask_caching import Cache from flask_caching import Cache
@ -27,10 +29,12 @@ from werkzeug.wrappers.etag import ETagResponseMixin
from superset import db from superset import db
from superset.extensions import cache_manager from superset.extensions import cache_manager
from superset.models.cache import CacheKey from superset.models.cache import CacheKey
from superset.stats_logger import BaseStatsLogger
from superset.utils.core import json_int_dttm_ser from superset.utils.core import json_int_dttm_ser
from superset.utils.hashing import md5_sha_from_dict from superset.utils.hashing import md5_sha_from_dict
if TYPE_CHECKING:
from superset.stats_logger import BaseStatsLogger
config = app.config # type: ignore config = app.config # type: ignore
stats_logger: BaseStatsLogger = config["STATS_LOGGER"] stats_logger: BaseStatsLogger = config["STATS_LOGGER"]
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View File

@ -14,19 +14,23 @@
# KIND, either express or implied. See the License for the # KIND, either express or implied. See the License for the
# specific language governing permissions and limitations # specific language governing permissions and limitations
# under the License. # under the License.
from __future__ import annotations
import time import time
from functools import wraps from functools import wraps
from typing import Any, Callable, Dict, Iterator, Union from typing import Any, Callable, Dict, Iterator, TYPE_CHECKING, Union
from contextlib2 import contextmanager from contextlib2 import contextmanager
from flask import current_app, Response from flask import current_app, Response
from superset import is_feature_enabled from superset import is_feature_enabled
from superset.dashboards.commands.exceptions import DashboardAccessDeniedError from superset.dashboards.commands.exceptions import DashboardAccessDeniedError
from superset.stats_logger import BaseStatsLogger
from superset.utils import core as utils from superset.utils import core as utils
from superset.utils.dates import now_as_float from superset.utils.dates import now_as_float
if TYPE_CHECKING:
from superset.stats_logger import BaseStatsLogger
@contextmanager @contextmanager
def stats_timing(stats_key: str, stats_logger: BaseStatsLogger) -> Iterator[float]: def stats_timing(stats_key: str, stats_logger: BaseStatsLogger) -> Iterator[float]:

View File

@ -14,6 +14,8 @@
# KIND, either express or implied. See the License for the # KIND, either express or implied. See the License for the
# specific language governing permissions and limitations # specific language governing permissions and limitations
# under the License. # under the License.
from __future__ import annotations
import functools import functools
import inspect import inspect
import json import json
@ -22,14 +24,25 @@ import textwrap
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from contextlib import contextmanager from contextlib import contextmanager
from datetime import datetime, timedelta from datetime import datetime, timedelta
from typing import Any, Callable, cast, Dict, Iterator, Optional, Type, Union from typing import (
Any,
Callable,
cast,
Dict,
Iterator,
Optional,
Type,
TYPE_CHECKING,
Union,
)
from flask import current_app, g, request from flask import current_app, g, request
from flask_appbuilder.const import API_URI_RIS_KEY from flask_appbuilder.const import API_URI_RIS_KEY
from sqlalchemy.exc import SQLAlchemyError from sqlalchemy.exc import SQLAlchemyError
from typing_extensions import Literal from typing_extensions import Literal
from superset.stats_logger import BaseStatsLogger if TYPE_CHECKING:
from superset.stats_logger import BaseStatsLogger
def collect_request_payload() -> Dict[str, Any]: def collect_request_payload() -> Dict[str, Any]: