From 7023088d13f05a2b2987c3b7c43744b5869b4a25 Mon Sep 17 00:00:00 2001 From: Dima Gerasimov Date: Fri, 16 Aug 2024 12:12:40 +0300 Subject: [PATCH] core.common: deprecate outdated LazyLogger alias --- my/core/__init__.py | 7 ++++++- my/core/__main__.py | 4 ++-- my/core/common.py | 15 +++++++++++---- my/core/influxdb.py | 4 ++-- my/core/logging.py | 16 +++++++++++++--- my/core/pandas.py | 4 ++-- my/core/structure.py | 4 ++-- my/foursquare.py | 4 ++-- my/google/takeout/parser.py | 5 ++--- my/jawbone/__init__.py | 4 ++-- my/location/fallback/via_ip.py | 4 ++-- my/location/google.py | 5 ++--- my/rtm.py | 4 ++-- 13 files changed, 50 insertions(+), 30 deletions(-) diff --git a/my/core/__init__.py b/my/core/__init__.py index c65991a..247aab0 100644 --- a/my/core/__init__.py +++ b/my/core/__init__.py @@ -13,10 +13,15 @@ from .utils.itertools import warn_if_empty from .cfg import make_config from .error import Res, unwrap -from .logging import make_logger, LazyLogger +from .logging import ( + make_logger, +) from .util import __NOT_HPI_MODULE__ +LazyLogger = make_logger # TODO deprecate this in favor of make_logger + + if not TYPE_CHECKING: # we used to keep these here for brevity, but feels like it only adds confusion, # e.g. suggest that we perhaps somehow modify builtin behaviour or whatever diff --git a/my/core/__main__.py b/my/core/__main__.py index c9a4945..e0d5c12 100644 --- a/my/core/__main__.py +++ b/my/core/__main__.py @@ -485,8 +485,8 @@ def _locate_functions_or_prompt(qualified_names: List[str], prompt: bool = True) def _warn_exceptions(exc: Exception) -> None: - from my.core.common import LazyLogger - logger = LazyLogger('CLI', level='warning') + from my.core import make_logger + logger = make_logger('CLI', level='warning') logger.exception(f'hpi query: {exc}') diff --git a/my/core/common.py b/my/core/common.py index efd6f48..f20e1d4 100644 --- a/my/core/common.py +++ b/my/core/common.py @@ -15,14 +15,11 @@ import warnings from . import warnings as core_warnings from . import compat -from .compat import deprecated # some helper functions +# TODO start deprecating this? soon we'd be able to use Path | str syntax which is shorter and more explicit PathIsh = Union[Path, str] -from .logging import setup_logger, LazyLogger - - Paths = Union[Sequence[PathIsh], PathIsh] @@ -152,6 +149,7 @@ from .utils.itertools import unique_everseen ## perhaps it doesn't work when it's used from typing_extensions if not TYPE_CHECKING: + from .compat import deprecated @deprecated('use my.core.compat.assert_never instead') def assert_never(*args, **kwargs): @@ -207,9 +205,18 @@ if not TYPE_CHECKING: return stats.stat(*args, **kwargs) + @deprecated('use my.core.make_logger instead') + def LazyLogger(*args, **kwargs): + from . import logging + + return logging.LazyLogger(*args, **kwargs) + # todo wrap these in deprecated decorator as well? from .cachew import mcachew # noqa: F401 + # this is kinda internal, should just use my.core.logging.setup_logger if necessary + from .logging import setup_logger + # TODO hmm how to deprecate these in runtime? # tricky cause they are actually classes/types diff --git a/my/core/influxdb.py b/my/core/influxdb.py index 2ac2c79..c4b6409 100644 --- a/my/core/influxdb.py +++ b/my/core/influxdb.py @@ -6,11 +6,11 @@ from .internal import assert_subpackage; assert_subpackage(__name__) from typing import Iterable, Any, Optional, Dict -from .common import LazyLogger +from .logging import make_logger from .types import asdict, Json -logger = LazyLogger(__name__) +logger = make_logger(__name__) class config: diff --git a/my/core/logging.py b/my/core/logging.py index 5d2af99..882ab12 100644 --- a/my/core/logging.py +++ b/my/core/logging.py @@ -4,7 +4,7 @@ from functools import lru_cache import logging import os import sys -from typing import Union +from typing import Union, TYPE_CHECKING import warnings @@ -249,6 +249,16 @@ if __name__ == '__main__': ## legacy/deprecated methods for backwards compatilibity -LazyLogger = make_logger -logger = make_logger +if not TYPE_CHECKING: + from .compat import deprecated + + @deprecated('use make_logger instead') + def LazyLogger(*args, **kwargs): + return make_logger(*args, **kwargs) + + @deprecated('use make_logger instead') + def logger(*args, **kwargs): + return make_logger(*args, **kwargs) + + ## diff --git a/my/core/pandas.py b/my/core/pandas.py index 2b34b23..5688aa3 100644 --- a/my/core/pandas.py +++ b/my/core/pandas.py @@ -13,12 +13,12 @@ from typing import TYPE_CHECKING, Any, Iterable, Type, Dict, Literal, Callable, from decorator import decorator from . import warnings, Res -from .common import LazyLogger +from .logging import make_logger from .types import Json, asdict from .error import error_to_json, extract_error_datetime -logger = LazyLogger(__name__) +logger = make_logger(__name__) if TYPE_CHECKING: diff --git a/my/core/structure.py b/my/core/structure.py index 7a0c2a2..458440e 100644 --- a/my/core/structure.py +++ b/my/core/structure.py @@ -8,10 +8,10 @@ from typing import Sequence, Generator, List, Union, Tuple from contextlib import contextmanager from pathlib import Path -from .common import LazyLogger +from .logging import make_logger -logger = LazyLogger(__name__, level="info") +logger = make_logger(__name__, level="info") def _structure_exists(base_dir: Path, paths: Sequence[str], partial: bool = False) -> bool: diff --git a/my/foursquare.py b/my/foursquare.py index b50ab0e..63e1837 100644 --- a/my/foursquare.py +++ b/my/foursquare.py @@ -9,11 +9,11 @@ import json # TODO pytz for timezone??? -from .core.common import get_files, LazyLogger +from my.core import get_files, make_logger from my.config import foursquare as config -logger = LazyLogger(__name__) +logger = make_logger(__name__) def inputs(): diff --git a/my/google/takeout/parser.py b/my/google/takeout/parser.py index 173f99a..c4e5682 100644 --- a/my/google/takeout/parser.py +++ b/my/google/takeout/parser.py @@ -19,9 +19,8 @@ from dataclasses import dataclass import os from typing import List, Sequence, cast from pathlib import Path -from my.core import make_config, stat, Stats +from my.core import make_config, stat, Stats, get_files, Paths, make_logger from my.core.cachew import mcachew -from my.core.common import LazyLogger, get_files, Paths from my.core.error import ErrorPolicy from my.core.structure import match_structure @@ -52,7 +51,7 @@ class google(user_config): config = make_config(google) -logger = LazyLogger(__name__, level="warning") +logger = make_logger(__name__, level="warning") # patch the takeout parser logger to match the computed loglevel from google_takeout_parser.log import setup as setup_takeout_logger diff --git a/my/jawbone/__init__.py b/my/jawbone/__init__.py index 0659bc6..5d43296 100644 --- a/my/jawbone/__init__.py +++ b/my/jawbone/__init__.py @@ -8,9 +8,9 @@ from pathlib import Path import pytz -from ..core.common import LazyLogger +from my.core import make_logger -logger = LazyLogger(__name__) +logger = make_logger(__name__) from my.config import jawbone as config # type: ignore[attr-defined] diff --git a/my/location/fallback/via_ip.py b/my/location/fallback/via_ip.py index 87802e7..db03c7c 100644 --- a/my/location/fallback/via_ip.py +++ b/my/location/fallback/via_ip.py @@ -27,13 +27,13 @@ config = make_config(ip_config) from functools import lru_cache from typing import Iterator, List -from my.core.common import LazyLogger +from my.core import make_logger from my.core.compat import bisect_left from my.ip.all import ips from my.location.common import Location from my.location.fallback.common import FallbackLocation, DateExact, _datetime_timestamp -logger = LazyLogger(__name__, level="warning") +logger = make_logger(__name__, level="warning") def fallback_locations() -> Iterator[FallbackLocation]: diff --git a/my/location/google.py b/my/location/google.py index 11cb576..a7a92d3 100644 --- a/my/location/google.py +++ b/my/location/google.py @@ -19,8 +19,7 @@ import re # pip3 install geopy import geopy # type: ignore -from my.core import stat, Stats -from my.core.common import LazyLogger +from my.core import stat, Stats, make_logger from my.core.cachew import cache_dir, mcachew from my.core.warnings import high @@ -33,7 +32,7 @@ high("Please set up my.google.takeout.parser module for better takeout support") USE_GREP = False -logger = LazyLogger(__name__) +logger = make_logger(__name__) class Location(NamedTuple): diff --git a/my/rtm.py b/my/rtm.py index 56f4d07..22752fe 100644 --- a/my/rtm.py +++ b/my/rtm.py @@ -11,7 +11,7 @@ from functools import cached_property import re from typing import Dict, List, Iterator -from my.core.common import LazyLogger, get_files +from my.core import make_logger, get_files from my.core.utils.itertools import make_dict from my.config import rtm as config @@ -22,7 +22,7 @@ import icalendar # type: ignore from icalendar.cal import Todo # type: ignore -logger = LazyLogger(__name__) +logger = make_logger(__name__) # TODO extract in a module to parse RTM's ical?