Skip to content

Commit ab616d3

Browse files
authored
gh-92128: Add __class_getitem__ to logging.LoggerAdapter and logging.StreamHandler (#92129)
Closes #92128
1 parent 0313970 commit ab616d3

File tree

3 files changed

+10
-0
lines changed

3 files changed

+10
-0
lines changed

Lib/logging/__init__.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
import sys, os, time, io, re, traceback, warnings, weakref, collections.abc
2727

28+
from types import GenericAlias
2829
from string import Template
2930
from string import Formatter as StrFormatter
3031

@@ -1145,6 +1146,8 @@ def __repr__(self):
11451146
name += ' '
11461147
return '<%s %s(%s)>' % (self.__class__.__name__, name, level)
11471148

1149+
__class_getitem__ = classmethod(GenericAlias)
1150+
11481151

11491152
class FileHandler(StreamHandler):
11501153
"""
@@ -1939,6 +1942,8 @@ def __repr__(self):
19391942
level = getLevelName(logger.getEffectiveLevel())
19401943
return '<%s %s (%s)>' % (self.__class__.__name__, logger.name, level)
19411944

1945+
__class_getitem__ = classmethod(GenericAlias)
1946+
19421947
root = RootLogger(WARNING)
19431948
Logger.root = root
19441949
Logger.manager = Manager(Logger.root)

Lib/test/test_genericalias.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from dataclasses import Field
1515
from functools import partial, partialmethod, cached_property
1616
from graphlib import TopologicalSorter
17+
from logging import LoggerAdapter, StreamHandler
1718
from mailbox import Mailbox, _PartialFile
1819
try:
1920
import ctypes
@@ -113,6 +114,7 @@ class BaseTest(unittest.TestCase):
113114
MappingProxyType, AsyncGeneratorType,
114115
DirEntry,
115116
chain,
117+
LoggerAdapter, StreamHandler,
116118
TemporaryDirectory, SpooledTemporaryFile,
117119
Queue, SimpleQueue,
118120
_AssertRaisesContext,
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Add :meth:`~object.__class_getitem__` to :class:`logging.LoggerAdapter` and
2+
:class:`logging.StreamHandler`, allowing them to be parameterized at runtime.
3+
Patch by Alex Waygood.

0 commit comments

Comments
 (0)