From 1e7e2c9788c0203d66b959fa573ec824afded9e6 Mon Sep 17 00:00:00 2001 From: "oleg.hoefling" Date: Tue, 24 Aug 2021 11:47:17 +0200 Subject: [PATCH 1/2] introduce generic logger type in loggingadapter Signed-off-by: oleg.hoefling --- stdlib/logging/__init__.pyi | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/stdlib/logging/__init__.pyi b/stdlib/logging/__init__.pyi index f01f2455d9e9..499085555486 100644 --- a/stdlib/logging/__init__.pyi +++ b/stdlib/logging/__init__.pyi @@ -315,15 +315,17 @@ class LogRecord: ) -> None: ... def getMessage(self) -> str: ... -class LoggerAdapter: - logger: Logger | LoggerAdapter +_L = TypeVar("_L", Logger, LoggerAdapter) + +class LoggerAdapter(Generic[_L]): + logger: _L manager: Manager # undocumented if sys.version_info >= (3, 10): extra: Mapping[str, Any] | None - def __init__(self, logger: Logger | LoggerAdapter, extra: Mapping[str, Any] | None) -> None: ... + def __init__(self, logger: _L, extra: Mapping[str, Any] | None) -> None: ... else: extra: Mapping[str, Any] - def __init__(self, logger: Logger | LoggerAdapter, extra: Mapping[str, Any]) -> None: ... + def __init__(self, logger: _L, extra: Mapping[str, Any]) -> None: ... def process(self, msg: Any, kwargs: MutableMapping[str, Any]) -> tuple[Any, MutableMapping[str, Any]]: ... if sys.version_info >= (3, 8): def debug( From 316fa026c8d75e9183d5aef4c476b893194895d5 Mon Sep 17 00:00:00 2001 From: "oleg.hoefling" Date: Tue, 24 Aug 2021 12:17:11 +0200 Subject: [PATCH 2/2] work around missing support for recursive typevars Signed-off-by: oleg.hoefling --- stdlib/logging/__init__.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/logging/__init__.pyi b/stdlib/logging/__init__.pyi index 499085555486..509d8272bf3a 100644 --- a/stdlib/logging/__init__.pyi +++ b/stdlib/logging/__init__.pyi @@ -315,7 +315,7 @@ class LogRecord: ) -> None: ... def getMessage(self) -> str: ... -_L = TypeVar("_L", Logger, LoggerAdapter) +_L = TypeVar("_L", Logger, LoggerAdapter[Logger], LoggerAdapter[Any]) class LoggerAdapter(Generic[_L]): logger: _L