Skip to content

Commit 7c110c8

Browse files
committed
add __class_getitem__ to the python implementation of functools.partial
1 parent 49f15d8 commit 7c110c8

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

Lib/functools.py

+3
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,9 @@ def __setstate__(self, state):
433433
self._phcount = phcount
434434
self._merger = merger
435435

436+
__class_getitem__ = classmethod(GenericAlias)
437+
438+
436439
try:
437440
from _functools import partial, Placeholder, _PlaceholderType
438441
except ImportError:

Lib/test/test_functools.py

+6
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,12 @@ class A:
472472
self.assertEqual(a.cmeth(3, b=4), ((1, A, 3), {'a': 2, 'b': 4}))
473473
self.assertEqual(a.smeth(3, b=4), ((1, 3), {'a': 2, 'b': 4}))
474474

475+
def test_partial_genericalias(self):
476+
alias = self.partial[int]
477+
self.assertIs(alias.__origin__, self.partial)
478+
self.assertEqual(alias.__args__, (int,))
479+
self.assertEqual(alias.__parameters__, ())
480+
475481

476482
@unittest.skipUnless(c_functools, 'requires the C _functools module')
477483
class TestPartialC(TestPartial, unittest.TestCase):

0 commit comments

Comments
 (0)