From f7bf731bb97317edb19447d72e8f1a54a4aed3f7 Mon Sep 17 00:00:00 2001 From: Vishal Pankaj Chandratreya <19171016+tfpf@users.noreply.github.com> Date: Thu, 26 Sep 2024 22:09:09 +0530 Subject: [PATCH 1/2] Added a logger --- src/ScrollableContainers/__init__.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/ScrollableContainers/__init__.py b/src/ScrollableContainers/__init__.py index 861f82d..1e44fe5 100644 --- a/src/ScrollableContainers/__init__.py +++ b/src/ScrollableContainers/__init__.py @@ -1,7 +1,30 @@ import contextlib as _contextlib +import logging as _logging + +def _get_logger(name: str | None = None, level: int = _logging.INFO, fmt: str = "\x1b\x5b90m%(asctime)s\x1b\x5bm \x1b\x5b36m%(name)s\x1b\x5bm:\x1b\x5b36m%(lineno)s\x1b\x5bm %(message)s", datefmt: str = "%F %T%z") -> _logging.Logger: + """ + Create a logger (if not already created). + + :param name: Logger name. + :param level: Logging level. + :param fmt: Logging format. + :param datafmt: Date format in ``fmt``. + + :return: Logger. + """ + formatter =_logging.Formatter(fmt, datefmt) + stream_handler = _logging.StreamHandler() + stream_handler.setFormatter(formatter) + logger = _logging.getLogger(name) + logger.setLevel(level) + logger.addHandler(stream_handler) + return logger + +_logger = _get_logger(__name__) with _contextlib.suppress(ImportError): from ScrollableContainers._qt5 import ScrollableAreaQt5 + _logger.info("Imported `ScrollableAreaQt5`.") with _contextlib.suppress(ImportError): from ScrollableContainers._qt6 import ScrollableAreaQt6 with _contextlib.suppress(ImportError): From 4d265e0d2ab5f4a5a8462b1fad8d90fd64af0a79 Mon Sep 17 00:00:00 2001 From: Vishal Pankaj Chandratreya <19171016+tfpf@users.noreply.github.com> Date: Thu, 26 Sep 2024 22:37:49 +0530 Subject: [PATCH 2/2] Warnings are a better way to do what I was trying here --- pyproject.toml | 3 +++ src/ScrollableContainers/__init__.py | 28 +++++----------------------- 2 files changed, 8 insertions(+), 23 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 9856823..64f88ab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,6 +34,9 @@ features = [ ] system-packages = true +[tool.ruff] +line-length = 119 + [tool.ruff.lint.per-file-ignores] "src/ScrollableContainers/__init__.py" = ["F401", "N999"] "src/ScrollableContainers/_tk.py" = ["PLR2004"] diff --git a/src/ScrollableContainers/__init__.py b/src/ScrollableContainers/__init__.py index 1e44fe5..eefcfba 100644 --- a/src/ScrollableContainers/__init__.py +++ b/src/ScrollableContainers/__init__.py @@ -1,33 +1,15 @@ import contextlib as _contextlib -import logging as _logging - -def _get_logger(name: str | None = None, level: int = _logging.INFO, fmt: str = "\x1b\x5b90m%(asctime)s\x1b\x5bm \x1b\x5b36m%(name)s\x1b\x5bm:\x1b\x5b36m%(lineno)s\x1b\x5bm %(message)s", datefmt: str = "%F %T%z") -> _logging.Logger: - """ - Create a logger (if not already created). - - :param name: Logger name. - :param level: Logging level. - :param fmt: Logging format. - :param datafmt: Date format in ``fmt``. - - :return: Logger. - """ - formatter =_logging.Formatter(fmt, datefmt) - stream_handler = _logging.StreamHandler() - stream_handler.setFormatter(formatter) - logger = _logging.getLogger(name) - logger.setLevel(level) - logger.addHandler(stream_handler) - return logger - -_logger = _get_logger(__name__) +import warnings as _warnings with _contextlib.suppress(ImportError): from ScrollableContainers._qt5 import ScrollableAreaQt5 - _logger.info("Imported `ScrollableAreaQt5`.") with _contextlib.suppress(ImportError): from ScrollableContainers._qt6 import ScrollableAreaQt6 with _contextlib.suppress(ImportError): from ScrollableContainers._tk import ScrollableFrameTk with _contextlib.suppress(ImportError): from ScrollableContainers._wx import ScrollablePanelWx + +_not_imported = {"ScrollableAreaQt5", "ScrollableAreaQt6", "ScrollableFrameTk", "ScrollablePanelWx"}.difference(dir()) +if _not_imported: + _warnings.warn(f"The following submodules could not be imported: {_not_imported}.", UserWarning, stacklevel=1)