[Python-ideas] datetime: Support infinity

Yawar Amin yawar.amin at gmail.com
Thu Jan 29 20:55:00 CET 2015


Hi Chris, agreed, it's not great to have years, months and dates inside the infinity datetimes. That's why ideally datetime, datetime_neg_inf and datetime_pos_inf should have been sibling types deriving from datetime_base.

I'll try to explore making this change in the stdlib ad seeing if that breaks th vs really badly.

On 2015-01-29, at 14:35, Chris Barker <chris.barker at noaa.gov> wrote:

> On Thu, Jan 29, 2015 at 11:19 AM, Yawar Amin <yawar.amin at gmail.com> wrote:
>> My test implementation works for me on Python 2.7, see http://repl.it/9Wz
> 
> cool site! 
> 
> And yes, it does appear to work.
> 
> However the subclassing approach is really weird, as the infinite datetimes have a year, month, day, etc -- that strikes me as ripe for error. That's why I didn't subclass, but just had them e independent.
> 
> Another option would be to override just about everything...
> 
> -Chris
> 
>  
>> Notice especially the last few assertions, where normal datetime objects are on the LHS.
>> 
>> Regards,
>> 
>> Yawar
>> 
>> On 2015-01-29, at 2:04, Chris Barker <chris.barker at noaa.gov> wrote:
>> 
>>> On Wed, Jan 28, 2015 at 6:55 PM, Yawar Amin <yawar.amin at gmail.com> wrote:
>>>> Cool, the comparison operator logic looks very similar to mine:
>>>> 
>>>> https://groups.google.com/d/msg/python-ideas/G3jeWoa6h14/ELpDLFu28QcJ
>>> 
>>> Did you get it to work both ways? i.e.
>>> 
>>> datetime.neg_inf < datetime.now()
>>> 
>>> and 
>>> 
>>> datetime.now() > datetime.neg_inf 
>>> 
>>> I had trouble with that, because the regular datetime doesn't know how to compare itself to a neg_inf object.
>>>  
>>>> I believe the ideal design is the following type hierarchy:
>>>> 
>>>>     datetime_base
>>>>       datetime_neg_inf
>>>>       datetime_pos_inf
>>>>       datetime
>>>> 
>>>> But in the interests of pragmatism, I think this one can be made to
>>>> work:
>>>> 
>>>>     datetime
>>>>       datetime_neg_inf
>>>>       datetime_pos_inf
>>> 
>>> yup -- should work.
>>> 
>>> and you could add class methods to the datetime object, so you could do:
>>> 
>>> datetime.neg_inf()
>>> and
>>> datetime.pos_inf()
>>>  
>>>> The
>>>> advantage to this is that we don't have to switch everything over to
>>>> using a new derived type--just use the normal datetime for the majority
>>>> of cases where we don't need inifinity dates.
>>> 
>>> And it could be a third part package, too. -- particularly good for backward compatibility.
>>> 
>>> -Chris
>>> 
>>> 
>>> -- 
>>> 
>>> Christopher Barker, Ph.D.
>>> Oceanographer
>>> 
>>> Emergency Response Division
>>> NOAA/NOS/OR&R            (206) 526-6959   voice
>>> 7600 Sand Point Way NE   (206) 526-6329   fax
>>> Seattle, WA  98115       (206) 526-6317   main reception
>>> 
>>> Chris.Barker at noaa.gov
> 
> 
> 
> -- 
> 
> Christopher Barker, Ph.D.
> Oceanographer
> 
> Emergency Response Division
> NOAA/NOS/OR&R            (206) 526-6959   voice
> 7600 Sand Point Way NE   (206) 526-6329   fax
> Seattle, WA  98115       (206) 526-6317   main reception
> 
> Chris.Barker at noaa.gov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20150129/bc476321/attachment.html>


More information about the Python-ideas mailing list