[issue45821] Many method parameters in the datetime module are positional-only in the C implementation but positional-or-keyword in the Python implementation

2021-11-21 Thread Alex Waygood


Alex Waygood  added the comment:

Ref to discussion on typeshed: https://github.com/python/typeshed/pull/6343

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue45821] Many method parameters in the datetime module are positional-only in the C implementation but positional-or-keyword in the Python implementation

2021-11-19 Thread Alex Waygood


Alex Waygood  added the comment:

It seems to me that there are two ways of resolving this:


(1) Change the Python implementation to match the C implementation (make these 
parameters positional-only in the Python implementation).

(2) Change the C implementation to match the Python implementation (make these 
parameters positional-or-keyword in the C implementation).


If the decision is that solution (1) is the way to go, I'd be happy to submit a 
PR fixing this. If the decision is that solution (2) would be better, however, 
I'm not confident enough with writing C code to submit a PR.

The C implementation is most widely used, so I think strategy (1) would not 
have too many backwards-compatibility concerns. Strategy (2) is still probably 
slightly more backwards-compatible, however.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue45821] Many method parameters in the datetime module are positional-only in the C implementation but positional-or-keyword in the Python implementation

2021-11-16 Thread Alex Waygood


New submission from Alex Waygood :

The following methods have parameters that are positional-only in the C 
implementation of the `datetime` module, but positional-or-keyword in the 
pure-Python implementation:

* tzinfo.tzname
* tzinfo.utcoffset
* tzinfo.dst
* tzinfo.fromutc
* date.fromordinal
* date.fromisoformat
* date.__format__
* date.__le__
* date.__lt__
* date.__ge__
* date.__gt__
* date.__add__
* date.__radd__
* date.__sub__
* date.__reduce_ex__
* time.__le__
* time.__lt__
* time.__ge__
* time.__gt__
* time.fromisoformat
* time.__format__
* timedelta.__add__
* timedelta.__radd__
* timedelta.__sub__
* timedelta.__rsub__
* timedelta.__mul__
* timedelta.__rmul__
* timedelta.__floordiv__
* timedelta.__truediv__
* timedelta.__mod__
* timedelta.__divmod__
* timedelta.__le__
* timedelta.__lt__
* timedelta.__ge__
* timedelta.__gt__
* datetime.utcfromtimestamp
* datetime.fromisoformat
* datetime.strptime
* datetime.__le__
* datetime.__lt__
* datetime.__ge__
* datetime.__gt__

These inconsistencies make it extremely difficult to provide an accurate stub 
for these methods in typeshed.

--
components: Extension Modules, Library (Lib)
messages: 406423
nosy: AlexWaygood, belopolsky, p-ganssle
priority: normal
severity: normal
status: open
title: Many method parameters in the datetime module are positional-only in the 
C implementation but positional-or-keyword in the Python implementation
type: behavior
versions: Python 3.10, Python 3.11, Python 3.9

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com