]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-92128: Add `__class_getitem__` to `logging.LoggerAdapter` and `logging.StreamHandl...
authorAlex Waygood <Alex.Waygood@Gmail.com>
Mon, 2 May 2022 15:10:02 +0000 (16:10 +0100)
committerGitHub <noreply@github.com>
Mon, 2 May 2022 15:10:02 +0000 (09:10 -0600)
Closes #92128

Lib/logging/__init__.py
Lib/test/test_genericalias.py
Misc/NEWS.d/next/Library/2022-05-01-21-45-41.gh-issue-92128.Di7VbE.rst [new file with mode: 0644]

index d6315b047334ec974f7b2fdb469f0cfebb788312..432fefcb5b3141b5b2d6d598cf6523d688fc4cfa 100644 (file)
@@ -25,6 +25,7 @@ To use, simply 'import logging' and log away!
 
 import sys, os, time, io, re, traceback, warnings, weakref, collections.abc
 
+from types import GenericAlias
 from string import Template
 from string import Formatter as StrFormatter
 
@@ -1145,6 +1146,8 @@ class StreamHandler(Handler):
             name += ' '
         return '<%s %s(%s)>' % (self.__class__.__name__, name, level)
 
+    __class_getitem__ = classmethod(GenericAlias)
+
 
 class FileHandler(StreamHandler):
     """
@@ -1939,6 +1942,8 @@ class LoggerAdapter(object):
         level = getLevelName(logger.getEffectiveLevel())
         return '<%s %s (%s)>' % (self.__class__.__name__, logger.name, level)
 
+    __class_getitem__ = classmethod(GenericAlias)
+
 root = RootLogger(WARNING)
 Logger.root = root
 Logger.manager = Manager(Logger.root)
index bf96ba065fbb04010e0267cb274812fc4631f3cc..635ac0f7a85d7d3366d16211f694751ca7cde8eb 100644 (file)
@@ -14,6 +14,7 @@ from contextvars import ContextVar, Token
 from dataclasses import Field
 from functools import partial, partialmethod, cached_property
 from graphlib import TopologicalSorter
+from logging import LoggerAdapter, StreamHandler
 from mailbox import Mailbox, _PartialFile
 try:
     import ctypes
@@ -113,6 +114,7 @@ class BaseTest(unittest.TestCase):
                      MappingProxyType, AsyncGeneratorType,
                      DirEntry,
                      chain,
+                     LoggerAdapter, StreamHandler,
                      TemporaryDirectory, SpooledTemporaryFile,
                      Queue, SimpleQueue,
                      _AssertRaisesContext,
diff --git a/Misc/NEWS.d/next/Library/2022-05-01-21-45-41.gh-issue-92128.Di7VbE.rst b/Misc/NEWS.d/next/Library/2022-05-01-21-45-41.gh-issue-92128.Di7VbE.rst
new file mode 100644 (file)
index 0000000..e4d62d2
--- /dev/null
@@ -0,0 +1,3 @@
+Add :meth:`~object.__class_getitem__` to :class:`logging.LoggerAdapter` and\r
+:class:`logging.StreamHandler`, allowing them to be parameterized at runtime.\r
+Patch by Alex Waygood.\r