`threading.RLock` must not support `*args, **kwargs` arguments
Right now we have an interesting problem: _CRLock supports *args, **kwargs in __new__, while _PYRLock does not.
See:
- (they are unused)
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 IDEs never 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 :)