[issue32404] fromtimestamp does not call __new__ in datetime subclasses

2018-01-16 Thread Alexander Belopolsky

Alexander Belopolsky  added the comment:


New changeset 9f1b7b93f5f0ef589e7b272e127cacf4ce5d23f1 by Alexander Belopolsky 
(Paul Ganssle) in branch 'master':
bpo-32403: Faster date and datetime constructors (#4993)
https://github.com/python/cpython/commit/9f1b7b93f5f0ef589e7b272e127cacf4ce5d23f1


--
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed

___
Python tracker 

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



[issue32404] fromtimestamp does not call __new__ in datetime subclasses

2017-12-23 Thread Paul Ganssle

Change by Paul Ganssle :


--
keywords: +patch
pull_requests: +4882
stage:  -> patch review

___
Python tracker 

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



[issue32404] fromtimestamp does not call __new__ in datetime subclasses

2017-12-21 Thread Paul Ganssle

New submission from Paul Ganssle :

In writing some tests for the alternate date constructors as part of my PR for 
issue 32403 (https://bugs.python.org/issue32403), I noticed that for 
`datetime`, the `fromtimestamp` bypasses the `__new__` call on the subclass:

from datetime import datetime

args = (2003, 4, 14)
ts = 1050292800.0   # Equivalent timestamp
d_ord = 731319  # Equivalent ordinal date


class DatetimeSubclass(datetime):
def __new__(cls, *args, **kwargs):
result = datetime.__new__(cls, *args, **kwargs)
result.extra = 7
return result


base_d = DatetimeSubclass(*args)
assert isinstance(base_d, DatetimeSubclass) # Passes
assert base_d.extra == 7# Passes

ord_d = DatetimeSubclass.fromordinal(d_ord)
assert isinstance(ord_d, DatetimeSubclass)  # Passes
assert ord_d.extra == 7 # Passes

ts_d = DatetimeSubclass.fromtimestamp(ts)
assert isinstance(ts_d, DatetimeSubclass)   # Passes
assert ts_d.extra == 7  # Fails

Replacing `datetime` with `date` in the above code we don't get a failure, but 
with `datetime`, it fails with:

AttributeError: 'DatetimeSubclass' object has no attribute 'extra'

Regardless of the status of 32403, I think this should be fixed (though I can 
try to fix them both at the same time).

--
messages: 308908
nosy: belopolsky, p-ganssle
priority: normal
severity: normal
status: open
title: fromtimestamp does not call __new__ in datetime subclasses
versions: Python 3.6, Python 3.7, Python 3.8

___
Python tracker 

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