Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.3k
Closed
Description
Right now we have an interesting problem:_CRLock supports*args, **kwargs in__new__, while_PYRLock does not.
See:
Line 133 in128379b
def__init__(self): - (they are unused)
cpython/Modules/_threadmodule.c
Line 506 in128379b
rlock_new(PyTypeObject*type,PyObject*args,PyObject*kwds)
I am leaving aside the problem that_PYRLock is not ever used (unless imported directly) for now.
Right now our docs does not say what the signature should be.
Some facts:
- CPython's code never use
RLockwith arguments (and never say it has arguments) - typeshed (a source of truth for all typecheckers and several IDEsnever had a single issue about missing
*args, **kwargsin theirRLock's stub:https://github.com/python/typeshed/blob/0bb7d621d39d38bee7ce32e1ee920bd5bc4f9503/stdlib/threading.pyi#L113-L119 - We don't have any docs about
RLock's signature
So, I think we can:
- Document that
RLockhas()signature - Remove
*args, **kwargsfrom C impl - Document this in "What's new"
Does it sound like a plan? If yes, I would like to do the honours :)