Skip to content

Commit e864e26

Browse files
authored
update abc module (RustPython#4985)
1 parent 59df92d commit e864e26

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

Lib/abc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ class ABCMeta(type):
106106
implementations defined by the registering ABC be callable (not
107107
even via super()).
108108
"""
109-
def __new__(mcls, name, bases, namespace, **kwargs):
109+
def __new__(mcls, name, bases, namespace, /, **kwargs):
110110
cls = super().__new__(mcls, name, bases, namespace, **kwargs)
111111
_abc_init(cls)
112112
return cls

Lib/test/test_abc.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -679,6 +679,19 @@ def __init_subclass__(cls, **kwargs):
679679
class Receiver(ReceivesClassKwargs, abc_ABC, x=1, y=2, z=3):
680680
pass
681681
self.assertEqual(saved_kwargs, dict(x=1, y=2, z=3))
682+
683+
def test_positional_only_and_kwonlyargs_with_init_subclass(self):
684+
saved_kwargs = {}
685+
686+
class A:
687+
def __init_subclass__(cls, **kwargs):
688+
super().__init_subclass__()
689+
saved_kwargs.update(kwargs)
690+
691+
class B(A, metaclass=abc_ABCMeta, name="test"):
692+
pass
693+
self.assertEqual(saved_kwargs, dict(name="test"))
694+
682695
return TestLegacyAPI, TestABC, TestABCWithInitSubclass
683696

684697
TestLegacyAPI_Py, TestABC_Py, TestABCWithInitSubclass_Py = test_factory(abc.ABCMeta,

0 commit comments

Comments
 (0)