diff --git a/config/pytest.ini b/config/pytest.ini index 2b36076c..06da40e8 100644 --- a/config/pytest.ini +++ b/config/pytest.ini @@ -13,3 +13,7 @@ filterwarnings = # TODO: remove once pytest-xdist 4 is released ignore:.*rsyncdir:DeprecationWarning:xdist ignore:.*slated for removal in Python:DeprecationWarning:.* + # YORE: Bump 1.0.0: Remove line. + ignore:.*`get_logger`:DeprecationWarning:_griffe + # YORE: Bump 1.0.0: Remove line. + ignore:.*`name`:DeprecationWarning:_griffe diff --git a/docs/reference/api/loggers.md b/docs/reference/api/loggers.md index 07ceedd1..858af7e0 100644 --- a/docs/reference/api/loggers.md +++ b/docs/reference/api/loggers.md @@ -3,11 +3,22 @@ ## **Main API** ::: griffe.DEFAULT_LOG_LEVEL + options: + annotations_path: full -::: griffe.get_logger + + + +::: griffe.Logger ::: griffe.LogLevel ## **Advanced API** +::: griffe.patch_logger + +## **Deprecated API** + +::: griffe.get_logger + ::: griffe.patch_loggers diff --git a/src/_griffe/agents/inspector.py b/src/_griffe/agents/inspector.py index 45d5b836..ad38aca1 100644 --- a/src/_griffe/agents/inspector.py +++ b/src/_griffe/agents/inspector.py @@ -34,6 +34,9 @@ from _griffe.expressions import safe_get_annotation from _griffe.extensions.base import Extensions, load_extensions from _griffe.importer import dynamic_import + +# YORE: Bump 1.0.0: Replace `_logger` with `logger` within file. +# YORE: Bump 1.0.0: Replace `get_logger` with `logger` within line. from _griffe.logger import get_logger from _griffe.models import Alias, Attribute, Class, Docstring, Function, Module, Parameter, Parameters @@ -44,7 +47,7 @@ from _griffe.expressions import Expr -# YORE: Bump 1.0.0: Regex-replace `\.[^"]+` with `` within line. +# YORE: Bump 1.0.0: Remove line. _logger = get_logger("griffe.agents.inspector") _empty = Signature.empty diff --git a/src/_griffe/agents/nodes/assignments.py b/src/_griffe/agents/nodes/assignments.py index 89b38514..4e1c55d4 100644 --- a/src/_griffe/agents/nodes/assignments.py +++ b/src/_griffe/agents/nodes/assignments.py @@ -5,11 +5,6 @@ import ast from typing import Any, Callable -from _griffe.logger import get_logger - -# YORE: Bump 1.0.0: Regex-replace `\.[^"]+` with `` within line. -_logger = get_logger("griffe.agents.nodes._names") - def _get_attribute_name(node: ast.Attribute) -> str: return f"{get_name(node.value)}.{node.attr}" diff --git a/src/_griffe/agents/nodes/ast.py b/src/_griffe/agents/nodes/ast.py index 66662d95..d2e52dff 100644 --- a/src/_griffe/agents/nodes/ast.py +++ b/src/_griffe/agents/nodes/ast.py @@ -6,10 +6,6 @@ from typing import Iterator from _griffe.exceptions import LastNodeError -from _griffe.logger import get_logger - -# YORE: Bump 1.0.0: Regex-replace `\.[^"]+` with `` within line. -_logger = get_logger("griffe.agents.nodes._ast") def ast_kind(node: AST) -> str: diff --git a/src/_griffe/agents/nodes/docstrings.py b/src/_griffe/agents/nodes/docstrings.py index 1059efaf..ee9a1879 100644 --- a/src/_griffe/agents/nodes/docstrings.py +++ b/src/_griffe/agents/nodes/docstrings.py @@ -4,9 +4,11 @@ import ast +# YORE: Bump 1.0.0: Replace `_logger` with `logger` within file. +# YORE: Bump 1.0.0: Replace `get_logger` with `logger` within line. from _griffe.logger import get_logger -# YORE: Bump 1.0.0: Regex-replace `\.[^"]+` with `` within line. +# YORE: Bump 1.0.0: Remove line. _logger = get_logger("griffe.agents.nodes._docstrings") diff --git a/src/_griffe/agents/nodes/exports.py b/src/_griffe/agents/nodes/exports.py index 21bb940b..56373ee1 100644 --- a/src/_griffe/agents/nodes/exports.py +++ b/src/_griffe/agents/nodes/exports.py @@ -9,13 +9,16 @@ from _griffe.agents.nodes.values import get_value from _griffe.enumerations import LogLevel + +# YORE: Bump 1.0.0: Replace `_logger` with `logger` within file. +# YORE: Bump 1.0.0: Replace `get_logger` with `logger` within line. from _griffe.logger import get_logger if TYPE_CHECKING: from _griffe.models import Module -# YORE: Bump 1.0.0: Regex-replace `\.[^"]+` with `` within line. +# YORE: Bump 1.0.0: Remove line. _logger = get_logger("griffe.agents.nodes._all") diff --git a/src/_griffe/agents/nodes/imports.py b/src/_griffe/agents/nodes/imports.py index 1116bf98..0306ebf5 100644 --- a/src/_griffe/agents/nodes/imports.py +++ b/src/_griffe/agents/nodes/imports.py @@ -4,18 +4,12 @@ from typing import TYPE_CHECKING -from _griffe.logger import get_logger - if TYPE_CHECKING: import ast from _griffe.models import Module -# YORE: Bump 1.0.0: Regex-replace `\.[^"]+` with `` within line. -_logger = get_logger("griffe.agents.nodes._imports") - - def relative_to_absolute(node: ast.ImportFrom, name: ast.alias, current_module: Module) -> str: """Convert a relative import path to an absolute one. diff --git a/src/_griffe/agents/nodes/parameters.py b/src/_griffe/agents/nodes/parameters.py index 50bd30b6..a1c7b215 100644 --- a/src/_griffe/agents/nodes/parameters.py +++ b/src/_griffe/agents/nodes/parameters.py @@ -7,10 +7,6 @@ from typing import Iterable, List, Optional, Tuple, Union from _griffe.enumerations import ParameterKind -from _griffe.logger import get_logger - -# YORE: Bump 1.0.0: Regex-replace `\.[^"]+` with `` within line. -_logger = get_logger("griffe.agents.nodes._parameters") ParametersType = List[Tuple[str, Optional[ast.AST], ParameterKind, Optional[Union[str, ast.AST]]]] """Type alias for the list of parameters of a function.""" diff --git a/src/_griffe/agents/nodes/runtime.py b/src/_griffe/agents/nodes/runtime.py index 66c4d445..2fdba870 100644 --- a/src/_griffe/agents/nodes/runtime.py +++ b/src/_griffe/agents/nodes/runtime.py @@ -8,9 +8,12 @@ from typing import Any, ClassVar, Sequence from _griffe.enumerations import ObjectKind + +# YORE: Bump 1.0.0: Replace `_logger` with `logger` within file. +# YORE: Bump 1.0.0: Replace `get_logger` with `logger` within line. from _griffe.logger import get_logger -# YORE: Bump 1.0.0: Regex-replace `\.[^"]+` with `` within line. +# YORE: Bump 1.0.0: Remove line. _logger = get_logger("griffe.agents.nodes._runtime") _builtin_module_names = {_.lstrip("_") for _ in sys.builtin_module_names} diff --git a/src/_griffe/agents/nodes/values.py b/src/_griffe/agents/nodes/values.py index 4f2de2e4..071968ac 100644 --- a/src/_griffe/agents/nodes/values.py +++ b/src/_griffe/agents/nodes/values.py @@ -6,6 +6,8 @@ import sys from typing import TYPE_CHECKING +# YORE: Bump 1.0.0: Replace `_logger` with `logger` within file. +# YORE: Bump 1.0.0: Replace `get_logger` with `logger` within line. from _griffe.logger import get_logger # YORE: EOL 3.8: Replace block with line 4. @@ -17,7 +19,7 @@ if TYPE_CHECKING: from pathlib import Path -# YORE: Bump 1.0.0: Regex-replace `\.[^"]+` with `` within line. +# YORE: Bump 1.0.0: Remove line. _logger = get_logger("griffe.agents.nodes._values") diff --git a/src/_griffe/cli.py b/src/_griffe/cli.py index 6d5c932b..8228e5b5 100644 --- a/src/_griffe/cli.py +++ b/src/_griffe/cli.py @@ -32,6 +32,9 @@ from _griffe.extensions.base import load_extensions from _griffe.git import get_latest_tag, get_repo_root from _griffe.loader import GriffeLoader, load, load_git + +# YORE: Bump 1.0.0: Replace `_logger` with `logger` within file. +# YORE: Bump 1.0.0: Replace `get_logger` with `logger` within line. from _griffe.logger import get_logger if TYPE_CHECKING: @@ -40,7 +43,7 @@ DEFAULT_LOG_LEVEL = os.getenv("GRIFFE_LOG_LEVEL", "INFO").upper() -# YORE: Bump 1.0.0: Regex-replace `\.[^"]+` with `` within line. +# YORE: Bump 1.0.0: Remove line. _logger = get_logger("griffe.cli") diff --git a/src/_griffe/diff.py b/src/_griffe/diff.py index b115bf70..a3d7d96d 100644 --- a/src/_griffe/diff.py +++ b/src/_griffe/diff.py @@ -12,6 +12,9 @@ from _griffe.enumerations import BreakageKind, ExplanationStyle, ParameterKind from _griffe.exceptions import AliasResolutionError from _griffe.git import _WORKTREE_PREFIX + +# YORE: Bump 1.0.0: Replace `_logger` with `logger` within file. +# YORE: Bump 1.0.0: Replace `get_logger` with `logger` within line. from _griffe.logger import get_logger if TYPE_CHECKING: @@ -22,7 +25,7 @@ _POSITIONAL_KEYWORD_ONLY = frozenset((ParameterKind.positional_only, ParameterKind.keyword_only)) _VARIADIC = frozenset((ParameterKind.var_positional, ParameterKind.var_keyword)) -# YORE: Bump 1.0.0: Regex-replace `\.[^"]+` with `` within line. +# YORE: Bump 1.0.0: Remove line. _logger = get_logger("griffe.diff") diff --git a/src/_griffe/docstrings/google.py b/src/_griffe/docstrings/google.py index ec644875..1385ad8b 100644 --- a/src/_griffe/docstrings/google.py +++ b/src/_griffe/docstrings/google.py @@ -44,7 +44,8 @@ from _griffe.expressions import Expr from _griffe.models import Docstring -# YORE: Bump 1.0.0: Regex-replace `\.[^"]+` with `` within line. +# YORE: Bump 1.0.0: Regex-replace `\b_warn\b` with `docstring_warning` within file. +# YORE: Bump 1.0.0: Remove line. _warn = docstring_warning("griffe.docstrings.google") _section_kind = { diff --git a/src/_griffe/docstrings/numpy.py b/src/_griffe/docstrings/numpy.py index e1953292..e243d978 100644 --- a/src/_griffe/docstrings/numpy.py +++ b/src/_griffe/docstrings/numpy.py @@ -63,7 +63,8 @@ from _griffe.models import Docstring -# YORE: Bump 1.0.0: Regex-replace `\.[^"]+` with `` within line. +# YORE: Bump 1.0.0: Regex-replace `\b_warn\b` with `docstring_warning` within file. +# YORE: Bump 1.0.0: Remove line. _warn = docstring_warning("griffe.docstrings.numpy") _section_kind = { diff --git a/src/_griffe/docstrings/sphinx.py b/src/_griffe/docstrings/sphinx.py index 728f89e6..3e66706a 100644 --- a/src/_griffe/docstrings/sphinx.py +++ b/src/_griffe/docstrings/sphinx.py @@ -29,7 +29,8 @@ from _griffe.expressions import Expr from _griffe.models import Docstring -# YORE: Bump 1.0.0: Regex-replace `\.[^"]+` with `` within line. +# YORE: Bump 1.0.0: Regex-replace `\b_warn\b` with `docstring_warning` within file. +# YORE: Bump 1.0.0: Remove line. _warn = docstring_warning("griffe.docstrings.sphinx") # TODO: Examples: from the documentation, we're not sure there is a standard format for examples diff --git a/src/_griffe/docstrings/utils.py b/src/_griffe/docstrings/utils.py index 2c26b037..3f24784a 100644 --- a/src/_griffe/docstrings/utils.py +++ b/src/_griffe/docstrings/utils.py @@ -2,13 +2,16 @@ from __future__ import annotations +import warnings from ast import PyCF_ONLY_AST from contextlib import suppress -from typing import TYPE_CHECKING, Protocol +from typing import TYPE_CHECKING, Protocol, overload from _griffe.enumerations import LogLevel from _griffe.exceptions import BuiltinModuleError from _griffe.expressions import safe_get_annotation + +# YORE: Bump 1.0.0: Replace `get_logger` with `logger` within line. from _griffe.logger import get_logger if TYPE_CHECKING: @@ -16,6 +19,7 @@ from _griffe.models import Docstring +# YORE: Bump 1.0.0: Remove block. class DocstringWarningCallable(Protocol): """A callable that logs a warning message.""" @@ -30,23 +34,58 @@ def __call__(self, docstring: Docstring, offset: int, message: str, log_level: L """ -def docstring_warning(name: str) -> DocstringWarningCallable: - """Create and return a warn function. +# YORE: Bump 1.0.0: Remove line. +_sentinel = object() - Parameters: - name: The logger name. - Returns: - A function used to log parsing warnings. +# YORE: Bump 1.0.0: Remove block. +@overload +def docstring_warning(name: str) -> DocstringWarningCallable: ... + + +# YORE: Bump 1.0.0: Remove block. +@overload +def docstring_warning( + docstring: Docstring, + offset: int, + message: str, + log_level: LogLevel = LogLevel.warning, +) -> None: ... + + +def docstring_warning( # type: ignore[misc] + # YORE: Bump 1.0.0: Remove line. + name: str | None = None, + # YORE: Bump 1.0.0: Replace line with `docstring: Docstring,`. + docstring: Docstring = _sentinel, # type: ignore[assignment] + # YORE: Bump 1.0.0: Replace line with `offset: int,`. + offset: int = _sentinel, # type: ignore[assignment] + # YORE: Bump 1.0.0: Replace line with `message: str,`. + message: str = _sentinel, # type: ignore[assignment] + log_level: LogLevel = LogLevel.warning, + # YORE: Bump 1.0.0: Replace line with `) -> None:`. +) -> DocstringWarningCallable | None: + """Log a warning when parsing a docstring. This function logs a warning message by prefixing it with the filepath and line number. - Other parameters: Parameters of the returned function: - docstring (Docstring): The docstring object. - offset (int): The offset in the docstring lines. - message (str): The message to log. + Parameters: + name: Deprecated. If passed, the function returns a callable, and other arguments are ignored. + docstring: The docstring object. + offset: The offset in the docstring lines. + message: The message to log. + + Returns: + A function used to log parsing warnings if `name` was passed, else none. """ - logger = get_logger(name) + # YORE: Bump 1.0.0: Remove block. + if name is not None: + warnings.warn("The `name` parameter is deprecated.", DeprecationWarning, stacklevel=1) + logger = get_logger(name) + else: + if docstring is _sentinel or offset is _sentinel or message is _sentinel: + raise ValueError("Missing required arguments docstring/offset/message.") + logger = get_logger("griffe") def warn(docstring: Docstring, offset: int, message: str, log_level: LogLevel = LogLevel.warning) -> None: try: @@ -58,7 +97,11 @@ def warn(docstring: Docstring, offset: int, message: str, log_level: LogLevel = log = getattr(logger, log_level.value) log(f"{prefix}:{(docstring.lineno or 0)+offset}: {message}") - return warn + if name is not None: + return warn + + warn(docstring, offset, message, log_level) + return None def parse_docstring_annotation( diff --git a/src/_griffe/expressions.py b/src/_griffe/expressions.py index d4d11058..942c7c1f 100644 --- a/src/_griffe/expressions.py +++ b/src/_griffe/expressions.py @@ -13,6 +13,9 @@ from _griffe.agents.nodes.parameters import get_parameters from _griffe.enumerations import LogLevel, ParameterKind from _griffe.exceptions import NameResolutionError + +# YORE: Bump 1.0.0: Replace `_logger` with `logger` within file. +# YORE: Bump 1.0.0: Replace `get_logger` with `logger` within line. from _griffe.logger import get_logger if TYPE_CHECKING: @@ -21,7 +24,7 @@ from _griffe.models import Class, Module -# YORE: Bump 1.0.0: Regex-replace `\.[^"]+` with `` within line. +# YORE: Bump 1.0.0: Remove line. _logger = get_logger("griffe.expressions") diff --git a/src/_griffe/finder.py b/src/_griffe/finder.py index a43ea48b..975bb375 100644 --- a/src/_griffe/finder.py +++ b/src/_griffe/finder.py @@ -25,6 +25,9 @@ from typing import TYPE_CHECKING, ClassVar, Iterator, Sequence, Tuple from _griffe.exceptions import UnhandledEditableModuleError + +# YORE: Bump 1.0.0: Replace `_logger` with `logger` within file. +# YORE: Bump 1.0.0: Replace `get_logger` with `logger` within line. from _griffe.logger import get_logger if TYPE_CHECKING: @@ -32,7 +35,7 @@ from _griffe.models import Module -# YORE: Bump 1.0.0: Regex-replace `\.[^"]+` with `` within line. +# YORE: Bump 1.0.0: Remove line. _logger = get_logger("griffe.finder") _editable_editables_patterns = [re.compile(pat) for pat in (r"^__editables_\w+\.py$", r"^_editable_impl_\w+\.py$")] diff --git a/src/_griffe/loader.py b/src/_griffe/loader.py index 7328c3ac..cf2eb6d4 100644 --- a/src/_griffe/loader.py +++ b/src/_griffe/loader.py @@ -37,6 +37,9 @@ from _griffe.finder import ModuleFinder, NamespacePackage, Package from _griffe.git import tmp_worktree from _griffe.importer import dynamic_import + +# YORE: Bump 1.0.0: Replace `_logger` with `logger` within file. +# YORE: Bump 1.0.0: Replace `get_logger` with `logger` within line. from _griffe.logger import get_logger from _griffe.merger import merge_stubs from _griffe.models import Alias, Module, Object @@ -45,7 +48,7 @@ if TYPE_CHECKING: from _griffe.enumerations import Parser -# YORE: Bump 1.0.0: Regex-replace `\.[^"]+` with `` within line. +# YORE: Bump 1.0.0: Remove line. _logger = get_logger("griffe.loader") _builtin_modules: set[str] = set(sys.builtin_module_names) diff --git a/src/_griffe/logger.py b/src/_griffe/logger.py index 2a688fa6..de4877fc 100644 --- a/src/_griffe/logger.py +++ b/src/_griffe/logger.py @@ -1,7 +1,7 @@ """This module contains logging utilities. We provide the [`patch_loggers`][griffe.patch_loggers] -function so dependant libraries can patch loggers as they see fit. +function so dependant libraries can patch Griffe's logger as they see fit. For example, to fit in the MkDocs logging configuration and prefix each log message with the module name: @@ -29,17 +29,25 @@ def get_logger(name): ``` """ +# YORE: Bump 1.0.0: Replace `patch_loggers` with `patch_logger` within file. from __future__ import annotations import logging -from typing import Any, Callable, ClassVar +import warnings +from contextlib import contextmanager +from typing import Any, Callable, ClassVar, Iterator -class _Logger: +class Logger: _default_logger: Any = logging.getLogger - _instances: ClassVar[dict[str, _Logger]] = {} + # YORE: Bump 1.0.0: Replace line with `_instance: _Logger | None = None`. + _instances: ClassVar[dict[str, Logger]] = {} def __init__(self, name: str) -> None: + # YORE: Bump 1.0.0: Uncomment block. + # if self._instance: + # raise ValueError("Logger is a singleton.") + # Default logger that can be patched by third-party. self._logger = self.__class__._default_logger(name) @@ -47,45 +55,76 @@ def __getattr__(self, name: str) -> Any: # Forward everything to the logger. return getattr(self._logger, name) - @classmethod - def get(cls, name: str) -> _Logger: - """Get a logger instance. - - Parameters: - name: The logger name. + @contextmanager + def disable(self) -> Iterator[None]: + """Temporarily disable logging.""" + old_level = self._logger.level + self._logger.setLevel(100) + try: + yield + finally: + self._logger.setLevel(old_level) - Returns: - The logger instance. - """ + @classmethod + def _get(cls, name: str = "griffe") -> Logger: + # YORE: Bump 1.0.0: Replace line with `if not cls._instance:`. if name not in cls._instances: + # YORE: Bump 1.0.0: Replace line with `cls._instance = cls(name)`.` cls._instances[name] = cls(name) + # YORE: Bump 1.0.0: Replace line with `return cls._instance`.` return cls._instances[name] @classmethod - def _patch_loggers(cls, get_logger_func: Callable) -> None: - # Patch current instances. + def _patch_logger(cls, get_logger_func: Callable) -> None: + # YORE: Bump 1.0.0: Uncomment block. + # if not cls._instance: + # raise ValueError("Logger is not initialized.") + + # Patch current instance. + # YORE: Bump 1.0.0: Replace block with `cls._instance._logger = get_logger_func(cls._instance._logger.name)`. for name, instance in cls._instances.items(): instance._logger = get_logger_func(name) + # Future instances will be patched as well. cls._default_logger = get_logger_func -def get_logger(name: str) -> _Logger: - """Create and return a new logger instance. +# YORE: Bump 1.0.0: Uncomment block. +# logger: Logger = Logger._get() +# """Our global logger, used throughout the library.""" + + +# YORE: Bump 1.0.0: Remove block. +def get_logger(name: str) -> Logger: + # YORE: Bump 1.0.0: Replace `Deprecated.` with `Deprecated, use [logger][griffe.logger] directly.`. + """Deprecated. Create and return a new logger instance. Parameters: - name: The logger name. + name: The logger name (unused). Returns: The logger. """ - return _Logger.get(name) + # YORE: Bump 1.0.0: Replace `deprecated.` with `deprecated. Use [logger][griffe.logger] directly.`. + warnings.warn("The `get_logger` function is deprecated.", DeprecationWarning, stacklevel=1) + return Logger._get(name) -def patch_loggers(get_logger_func: Callable[[str], Any]) -> None: - """Patch loggers. +def patch_logger(get_logger_func: Callable[[str], Any]) -> None: + """Patch Griffe's logger. Parameters: get_logger_func: A function accepting a name as parameter and returning a logger. """ - _Logger._patch_loggers(get_logger_func) + Logger._patch_logger(get_logger_func) + + +# YORE: Bump 1.0.0: Remove block. +def patch_loggers(get_logger_func: Callable[[str], Any]) -> None: + """Deprecated, use `patch_logger` instead.""" + warnings.warn( + "The `patch_loggers` function is deprecated. Use `patch_logger` instead.", + DeprecationWarning, + stacklevel=1, + ) + return patch_logger(get_logger_func) diff --git a/src/_griffe/merger.py b/src/_griffe/merger.py index 1bfac755..45ed3666 100644 --- a/src/_griffe/merger.py +++ b/src/_griffe/merger.py @@ -6,13 +6,16 @@ from typing import TYPE_CHECKING from _griffe.exceptions import AliasResolutionError, CyclicAliasError + +# YORE: Bump 1.0.0: Replace `_logger` with `logger` within file. +# YORE: Bump 1.0.0: Replace `get_logger` with `logger` within line. from _griffe.logger import get_logger if TYPE_CHECKING: from _griffe.models import Attribute, Class, Function, Module, Object -# YORE: Bump 1.0.0: Regex-replace `\.[^"]+` with `` within line. +# YORE: Bump 1.0.0: Remove line. _logger = get_logger("griffe.merger") diff --git a/src/_griffe/mixins.py b/src/_griffe/mixins.py index ec78e914..b5ec9dc3 100644 --- a/src/_griffe/mixins.py +++ b/src/_griffe/mixins.py @@ -9,13 +9,16 @@ from _griffe.enumerations import Kind from _griffe.exceptions import AliasResolutionError, CyclicAliasError + +# YORE: Bump 1.0.0: Replace `_logger` with `logger` within file. +# YORE: Bump 1.0.0: Replace `get_logger` with `logger` within line. from _griffe.logger import get_logger from _griffe.merger import merge_stubs if TYPE_CHECKING: from _griffe.models import Alias, Attribute, Class, Function, Module, Object -# YORE: Bump 1.0.0: Regex-replace `\.[^"]+` with `` within line. +# YORE: Bump 1.0.0: Remove line. _logger = get_logger("griffe.mixins") _ObjType = TypeVar("_ObjType") diff --git a/src/_griffe/models.py b/src/_griffe/models.py index 8f5b911c..464854e9 100644 --- a/src/_griffe/models.py +++ b/src/_griffe/models.py @@ -30,6 +30,9 @@ from _griffe.enumerations import Kind, ParameterKind, Parser from _griffe.exceptions import AliasResolutionError, BuiltinModuleError, CyclicAliasError, NameResolutionError from _griffe.expressions import ExprCall, ExprName + +# YORE: Bump 1.0.0: Replace `_logger` with `logger` within file. +# YORE: Bump 1.0.0: Replace `get_logger` with `logger` within line. from _griffe.logger import get_logger from _griffe.mixins import ObjectAliasMixin @@ -40,7 +43,7 @@ from functools import cached_property -# YORE: Bump 1.0.0: Replace `.dataclasses` with `` within line. +# YORE: Bump 1.0.0: Remove line. _logger = get_logger("griffe.dataclasses") diff --git a/src/griffe/__init__.py b/src/griffe/__init__.py index 0f0074c9..16cf3122 100644 --- a/src/griffe/__init__.py +++ b/src/griffe/__init__.py @@ -187,7 +187,10 @@ from _griffe.git import assert_git_repo, get_latest_tag, get_repo_root, tmp_worktree from _griffe.importer import dynamic_import, sys_path from _griffe.loader import GriffeLoader, load, load_git -from _griffe.logger import get_logger, patch_loggers + +# YORE: Bump 1.0.0: Replace `get_logger` with `logger` within line. +# YORE: Bump 1.0.0: Replace `, patch_loggers` with `` within line. +from _griffe.logger import Logger, get_logger, patch_logger, patch_loggers from _griffe.merger import merge_stubs from _griffe.mixins import ( DelMembersMixin, @@ -272,6 +275,8 @@ "DocstringSectionWarns", "DocstringSectionYields", "DocstringWarn", + # YORE: Bump 1.0.0: Remove line. + "DocstringWarningCallable", "DocstringYield", "ExplanationStyle", "ExportedName", @@ -329,6 +334,7 @@ "LinesCollection", "LoadableExtensionType", "LoadingError", + "Logger", "LogLevel", "Module", "ModuleFinder", @@ -366,7 +372,6 @@ "Visitor", # YORE: Bump 1.0.0: Remove line. "VisitorExtension", - "DocstringWarningCallable", # YORE: Bump 1.0.0: Remove line. "When", "assert_git_repo", @@ -384,6 +389,7 @@ "c3linear_merge", "check", "dump", + "docstring_warning", "dynamic_import", "find_breaking_changes", "get__all__", @@ -394,6 +400,7 @@ "get_expression", "get_instance_names", "get_latest_tag", + # YORE: Bump 1.0.0: Remove line. "get_logger", "get_name", "get_names", @@ -407,6 +414,8 @@ "load", "load_extensions", "load_git", + # YORE: Bump 1.0.0: Uncomment line. + # "logger", "main", "merge_stubs", "module_vtree", @@ -416,6 +425,8 @@ "parse_numpy", "parse_sphinx", "parsers", + "patch_logger", + # YORE: Bump 1.0.0: Remove line. "patch_loggers", "relative_to_absolute", "safe_get__all__", @@ -435,5 +446,4 @@ "typing_overload", "visit", "vtree", - "docstring_warning", ]