From 36af470927677e73c2569e48a31a9890770eafe9 Mon Sep 17 00:00:00 2001 From: DEBREUVE Eric <eric.debreuve@cnrs.fr> Date: Mon, 13 Jan 2025 14:46:58 +0100 Subject: [PATCH] now beartyped when run from source folder (as opposed to installation folder), which allowed to correct some type hints --- package/logger_36/__init__.py | 12 ++++++++++++ package/logger_36/catalog/handler/console_rich.py | 6 +++--- package/logger_36/catalog/handler/file.py | 2 +- package/logger_36/catalog/logger/memory.py | 2 +- package/logger_36/task/format/memory.py | 2 +- package/logger_36/task/measure/chronos.py | 2 +- package/logger_36/task/storage.py | 4 ++-- package/logger_36/version.py | 2 +- 8 files changed, 22 insertions(+), 10 deletions(-) diff --git a/package/logger_36/__init__.py b/package/logger_36/__init__.py index 7dbf1ab..d3242c6 100644 --- a/package/logger_36/__init__.py +++ b/package/logger_36/__init__.py @@ -4,6 +4,18 @@ Contributor(s): Eric Debreuve (eric.debreuve@cnrs.fr) since 2023 SEE COPYRIGHT NOTICE BELOW """ +try: + from beartype.claw import beartype_this_package # noqa +except ModuleNotFoundError: + pass +else: + import site + from pathlib import Path as path_t + paths = site.getsitepackages() + [site.getusersitepackages()] + folder = path_t(__file__).parent + if folder not in paths: + beartype_this_package() + from logger_36.instance.logger import LOGGER from logger_36.version import __version__ diff --git a/package/logger_36/catalog/handler/console_rich.py b/package/logger_36/catalog/handler/console_rich.py index 6c3c712..2f9585a 100644 --- a/package/logger_36/catalog/handler/console_rich.py +++ b/package/logger_36/catalog/handler/console_rich.py @@ -22,7 +22,7 @@ from logger_36.catalog.config.console_rich import ( from logger_36.config.message import ACTUAL_PATTERNS, EXPECTED_PATTERNS, WHERE_SEPARATOR from logger_36.constant.message import CONTEXT_LENGTH, LINE_INDENT from logger_36.constant.record import SHOW_W_RULE_ATTR -from logger_36.task.format.rule import Rule +from logger_36.task.format.rule import Rule, rule_t from logger_36.type.handler import handler_extension_t from rich.console import Console as console_t from rich.console import RenderableType as renderable_t @@ -145,12 +145,12 @@ class console_rich_handler_t(lggg.Handler): ) self.console.print(richer, crop=False, overflow="ignore") - def ShowMessage(self, message: str, /, *, indented: bool = False) -> None: + def ShowMessage(self, message: str | rule_t, /, *, indented: bool = False) -> None: """ See documentation of logger_36.catalog.handler.generic.generic_handler_t.ShowMessage. """ - if indented: + if isinstance(message, str) and indented: message = txt_.indent(message, LINE_INDENT) self.console.print(message, crop=False, overflow="ignore") diff --git a/package/logger_36/catalog/handler/file.py b/package/logger_36/catalog/handler/file.py index 4ddc305..4b24539 100644 --- a/package/logger_36/catalog/handler/file.py +++ b/package/logger_36/catalog/handler/file.py @@ -40,7 +40,7 @@ class file_handler_t(lggg.FileHandler): message_width: int, formatter: lggg.Formatter | None, path: path_t | None, - handler_args: tuple[h.Any], + handler_args: tuple[h.Any, ...] | None, handler_kwargs: dict[str, h.Any] | None, ) -> None: """""" diff --git a/package/logger_36/catalog/logger/memory.py b/package/logger_36/catalog/logger/memory.py index 7c31de4..2d9129c 100644 --- a/package/logger_36/catalog/logger/memory.py +++ b/package/logger_36/catalog/logger/memory.py @@ -70,7 +70,7 @@ def LogMemoryUsages( def LogMaximumMemoryUsage( *, unit: storage_units_h | None = "a", - decimals: int = None, + decimals: int | None = None, logger: logger_t = LOGGER, ) -> None: """ diff --git a/package/logger_36/task/format/memory.py b/package/logger_36/task/format/memory.py index 5c4a433..82d9606 100644 --- a/package/logger_36/task/format/memory.py +++ b/package/logger_36/task/format/memory.py @@ -20,7 +20,7 @@ def FormattedUsage( /, *, unit: storage_units_h | None = "a", - decimals: int = None, + decimals: int | None = None, ) -> tuple[int | float, str]: """ unit: b or None=bytes, k=kilo, m=mega, g=giga, a=auto diff --git a/package/logger_36/task/measure/chronos.py b/package/logger_36/task/measure/chronos.py index 8c3117b..dc75c94 100644 --- a/package/logger_36/task/measure/chronos.py +++ b/package/logger_36/task/measure/chronos.py @@ -24,7 +24,7 @@ def TimeStamp(*, precision: str = "microseconds") -> str: def ElapsedTime( *, should_return_now: bool = False -) -> str | tuple[str, date_time_t.date]: +) -> str | tuple[str, date_time_t]: """""" now = date_time_t.now() elapsed_seconds = (now - _START_DATE_AND_TIME).total_seconds() diff --git a/package/logger_36/task/storage.py b/package/logger_36/task/storage.py index b4e00d1..8644891 100644 --- a/package/logger_36/task/storage.py +++ b/package/logger_36/task/storage.py @@ -7,8 +7,8 @@ SEE COPYRIGHT NOTICE BELOW import dataclasses as d import logging as lggg import re as regx -import typing as h from html.parser import HTMLParser as html_parser_t +from io import IOBase as io_base_t from pathlib import Path as path_t try: @@ -70,7 +70,7 @@ class html_reader_t(html_parser_t): return "".join(self.pieces).strip() -def SaveLOGasHTML(path: str | path_t | h.TextIO = None) -> None: +def SaveLOGasHTML(path: str | path_t | io_base_t | None = None) -> None: """ From first console handler found. """ diff --git a/package/logger_36/version.py b/package/logger_36/version.py index 3c58504..f5216c9 100644 --- a/package/logger_36/version.py +++ b/package/logger_36/version.py @@ -4,7 +4,7 @@ Contributor(s): Eric Debreuve (eric.debreuve@cnrs.fr) since 2023 SEE COPYRIGHT NOTICE BELOW """ -__version__ = "2025.1" +__version__ = "2025.2" """ COPYRIGHT NOTICE -- GitLab