From 9889d8376d4a00ce7a6d3750f2f90841c3288849 Mon Sep 17 00:00:00 2001 From: Ronny Pfannschmidt Date: Thu, 27 Apr 2023 15:49:12 +0200 Subject: restore logging functionality there was an unintended misconfiguration in the logging setup enforcing always warning levels --- src/setuptools_scm/__init__.py | 33 +++++++++++++++------------------ src/setuptools_scm/_log.py | 23 ++++------------------- testing/test_internal_log_level.py | 15 +++++++++++++++ 3 files changed, 34 insertions(+), 37 deletions(-) create mode 100644 testing/test_internal_log_level.py diff --git a/src/setuptools_scm/__init__.py b/src/setuptools_scm/__init__.py index faea673..01b3da8 100644 --- a/src/setuptools_scm/__init__.py +++ b/src/setuptools_scm/__init__.py @@ -152,26 +152,23 @@ def get_version( def _get_version(config: Configuration) -> str | None: - from ._log import magic_debug - - with magic_debug(): - parsed_version = _do_parse(config) - if parsed_version is None: - return None - version_string = _format_version( - parsed_version, - version_scheme=config.version_scheme, - local_scheme=config.local_scheme, + parsed_version = _do_parse(config) + if parsed_version is None: + return None + version_string = _format_version( + parsed_version, + version_scheme=config.version_scheme, + local_scheme=config.local_scheme, + ) + if config.write_to is not None: + dump_version( + root=config.root, + version=version_string, + write_to=config.write_to, + template=config.write_to_template, ) - if config.write_to is not None: - dump_version( - root=config.root, - version=version_string, - write_to=config.write_to, - template=config.write_to_template, - ) - return version_string + return version_string # Public API diff --git a/src/setuptools_scm/_log.py b/src/setuptools_scm/_log.py index abbdd0c..1247d46 100644 --- a/src/setuptools_scm/_log.py +++ b/src/setuptools_scm/_log.py @@ -9,6 +9,7 @@ import os import sys from typing import IO from typing import Iterator +from typing import Mapping log = logging.getLogger(__name__.rsplit(".", 1)[0]) log.propagate = False @@ -46,19 +47,9 @@ _default_handler = make_default_handler() log.addHandler(_default_handler) -def _default_log_level() -> str | int: - val: str = os.environ.get("SETUPTOOLS_SCM_DEBUG", "") - level: str | int - if val: - level = logging.DEBUG - levelname: str | int = logging.getLevelName(val) - if isinstance(levelname, int): - level = val - else: - level = logging.WARNING - else: - level = logging.WARNING - return level +def _default_log_level(_env: Mapping[str, str] = os.environ) -> int: + val: str | None = _env.get("SETUPTOOLS_SCM_DEBUG") + return logging.WARN if val is None else logging.DEBUG log.setLevel(_default_log_level()) @@ -92,9 +83,3 @@ def enable_debug(handler: logging.Handler = _default_handler) -> Iterator[None]: handler.setLevel(old_handler_level) if handler is not _default_handler: log.removeHandler(handler) - - -@contextlib.contextmanager -def magic_debug() -> Iterator[None]: - with enable_debug(): - yield diff --git a/testing/test_internal_log_level.py b/testing/test_internal_log_level.py new file mode 100644 index 0000000..68ce8e0 --- /dev/null +++ b/testing/test_internal_log_level.py @@ -0,0 +1,15 @@ +from __future__ import annotations + +import logging + +from setuptools_scm import _log + + +def test_log_levels_when_set() -> None: + assert _log._default_log_level({"SETUPTOOLS_SCM_DEBUG": ""}) == logging.DEBUG + assert _log._default_log_level({"SETUPTOOLS_SCM_DEBUG": "INFO"}) == logging.DEBUG + assert _log._default_log_level({"SETUPTOOLS_SCM_DEBUG": "3"}) == logging.DEBUG + + +def test_log_levels_when_unset() -> None: + assert _log._default_log_level({}) == logging.WARNING -- cgit v1.2.1