[Python-Dev] Store timestamps as decimal.Decimal objects (original) (raw)
Victor Stinner victor.stinner at haypocalc.com
Tue Jan 31 10:42:39 CET 2012
- Previous message: [Python-Dev] Store timestamps as decimal.Decimal objects
- Next message: [Python-Dev] Store timestamps as decimal.Decimal objects
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I think this is definitely worth elaborating in a PEP (to recap the long discussion in #11457 if nothing else).
The discussion in issues #13882 and #11457 already lists many alternatives with their costs and benefits, but I can produce a PEP if you need a summary.
In particular, I'd want to see a very strong case being made for supporting multiple formats over standardising on a single new higher precision format (for example, using decimal.Decimal in conjunction with integration of Stefan's cdecimal work) that can then be converted to other formats (like datetime) via the appropriate APIs.
To convert a Decimal to a datetime object, we have already the datetime.datetime.fromtimestamp() function (it converts Decimal to float, but the function can be improved without touching its API). But I like the possibility of getting the file modification time directly as a datetime object to have something like:
s=os.stat("setup.py", timestamp="datetime") print(s.statime - s.stctime) 52 days, 1:44:06.191293
We have already more than one timestamp format: os.stat() uses int or float depending on os.stat_float_times() value. In 5 years, we may prefer to use directly float128 instead of Decimal. I prefer to have an extensible API to prepare future needs, even if we just add Decimal today.
Hum, by the way, we need a "int" format for os.stat(), so os.stat_float_times() can be deprecated. So there will be a minimum of 3 types:
- int
- float
- decimal.Decimal
Victor
- Previous message: [Python-Dev] Store timestamps as decimal.Decimal objects
- Next message: [Python-Dev] Store timestamps as decimal.Decimal objects
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]