Issue 14180: Factorize code to convert int/float to time_t, timeval or timespec
Created on 2012-03-03 00:10 by vstinner, last changed 2022-04-11 14:57 by admin. This issue is now closed.
Messages (9)
msg154811 - (view)
Author: STINNER Victor (vstinner) *
Date: 2012-03-03 00:10
Date: 2012-03-05 22:41
Date: 2012-03-13 12:38
Date: 2012-03-13 12:50
Date: 2012-03-13 14:31
Date: 2012-03-13 15:25
Date: 2012-03-13 16:42
Date: 2012-03-13 18:12
Date: 2012-03-13 23:20
Date: 2012-03-03 00:10
There are various ways to convert a Python int/float to a C time_t, timeval or timespec structure. Attached patch factorize code by adding functions to convert a Python object to a C type (time_t, timeval or timespec). My patch changes how datetime rounds microsecond: round towards zero instead of rounding to nearest with ties going away from zero. I chose this rounding method because it is the method used by int(float) and int(time.time()) is a common in programs (more than round(time.time()). Rounding towards zero avoids also producing timestamps in the future. On overflow, an OverflowError is now raises instead of a ValueError. I prefer OverflowError over ValueError because it is an implementation detail. For example, time_t is 32 bits on Linux 32 bits, 64 bits on Linux 64 bits or on Windows (32 or 64 bits). PyTime_ObjectToXXX() functions are part of Python and so can be used by the posix, time, datetime and select modules. The patch removes _time.c, _time.h and timefunc.h because these files were only used for one function (_PyTime_DoubleToTime_t) which is no more used and it required to link a module to _time.c to get this function. -- If it is a problem to replace ValueError with OverflowError for backward compatibility, it is easy to adapt the patch to raise ValueError instead. timedelta*float and timedelta/float rounding method may also be changed.msg154984 - (view) Author: STINNER Victor (vstinner) *
Date: 2012-03-05 22:41
Alexander: No complain if I remove _time.c?msg155600 - (view) Author: Roundup Robot (python-dev)
Date: 2012-03-13 12:38
New changeset 1e9cc1a03365 by Victor Stinner in branch 'default': Close #14180: Factorize code to convert a number of seconds to time_t, timeval or timespec http://hg.python.org/cpython/rev/1e9cc1a03365msg155601 - (view) Author: Roundup Robot (python-dev)
Date: 2012-03-13 12:50
New changeset ed73006bac42 by Victor Stinner in branch 'default': Issue #14180: Remove commented code http://hg.python.org/cpython/rev/ed73006bac42msg155616 - (view) Author: Roundup Robot (python-dev)
Date: 2012-03-13 14:31
New changeset 1eaf6e899f02 by Victor Stinner in branch 'default': Issue #14180: Fix select.select() compilation on BSD and a typo in kqueue_queue_control() http://hg.python.org/cpython/rev/1eaf6e899f02msg155625 - (view) Author: Roundup Robot (python-dev)
Date: 2012-03-13 15:25
New changeset cb1c877a27f2 by Victor Stinner in branch 'default': Issue #14180: Fix another typo in kqueue_queue_control() http://hg.python.org/cpython/rev/cb1c877a27f2msg155631 - (view) Author: Roundup Robot (python-dev)
Date: 2012-03-13 16:42
New changeset 760cf150bb99 by Victor Stinner in branch 'default': Issue #14180: Fix pythoncore.vcproj, Modules/_time.[ch] have been removed http://hg.python.org/cpython/rev/760cf150bb99msg155639 - (view) Author: Roundup Robot (python-dev)
Date: 2012-03-13 18:12
New changeset 9d69a2418d80 by Victor Stinner in branch 'default': Issue #14180: Fix an invalid rounding when compiler optimization are enabled http://hg.python.org/cpython/rev/9d69a2418d80msg155689 - (view) Author: Roundup Robot (python-dev)
Date: 2012-03-13 23:20
New changeset 5d6a5c5a4ebe by Victor Stinner in branch 'default': Issue #14180: datetime.date.fromtimestamp(), datetime.datetime.fromtimestamp() http://hg.python.org/cpython/rev/5d6a5c5a4ebe New changeset 706689b2d678 by Victor Stinner in branch 'default': Issue #14180: TestDateTime.test_microsecond_rounding() handles localtime() and http://hg.python.org/cpython/rev/706689b2d678 New changeset a0d101220f96 by Victor Stinner in branch 'default': Issue #14180: Fix the select module to handle correctly the Windows timeval http://hg.python.org/cpython/rev/a0d101220f96
History
Date
User
Action
Args
2022-04-11 14:57:27adminsetgithub: 58388
2014-06-22 07:57:17loewislinkissue9012 superseder
2012-03-13 23:20:38python-devsetmessages:
+ msg155689
2012-03-13 18:12:26python-devsetmessages:
+ msg155639
2012-03-13 16:42:24python-devsetmessages:
+ msg155631
2012-03-13 15:25:45python-devsetmessages:
+ msg155625
2012-03-13 14:31:00python-devsetmessages:
+ msg155616
2012-03-13 12:50:39python-devsetmessages:
+ msg155601
2012-03-13 12:38:43python-devsetstatus: open -> closed
nosy:
+ python-dev
messages:
+ msg155600
resolution: fixed
stage: resolved