Serhiy Storchaka added the comment:
The support of **kwargs in Path.__new__ is needed if you want to implement a
subclass of Path with __init__ accepting keyword arguments (and since Path
constructor takes variable number of positional arguments, new arguments should
be keyword-only).
>>> import pathlib
>>> class MyPath(pathlib.PosixPath):
... def __init__(self, *args, spam=False):
... self.spam = spam
...
>>> p = MyPath('/', spam=True)
>>> p
MyPath('/')
>>> p.spam
True
Removing **kwargs from Path.__new__ will break the above example.
>>> MyPath('/', spam=True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __new__() got an unexpected keyword argument 'spam'
----------
nosy: +serhiy.storchaka
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue29847>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com