Yeah, looks like it had support in principle but just went quiet. I'd be ok with just having it as a third-party library, but the real value comes when your data layer supports it directly - psycopg2, ORMs, etc. That's far more likely to happen if it's built-in.
Thanks for responding! Cheers, Alex On Wed, Jun 17, 2020 at 11:48 AM Christopher Barker <python...@gmail.com> wrote: > I think I recall that discussion -- but don't recall how it ended. Did it > just peter out? > > Anyway, +1 form me -- I've actually got my own implementation as well. So > it certainly has a use case, and it's really better to have one version in > the stdlib. > > I haven't had a chance to review your implementation, but if it looks like > you're getting support, I'll be sure to do so. > > -CHB > > > > On Tue, Jun 16, 2020 at 5:45 AM Alexander Hill <a...@hill.net.au> wrote: > >> Hi all, >> >> I’d like to propose support for infinite dates, datetimes and timedeltas. >> They're very useful when you need to model ranges with one or both ends >> unbounded (e.g. “forever starting from June 15th 2020”). >> >> Without first-class infinite values, you can use None, or you can use the >> `min` and `max` attributes of Python’s datetime types, or some other >> arbitrary large values. Using None means you need to implement a path for >> None, and a path for everything else, and your various infinite values are >> indistinguishable. Using max/min means comparisons just work, but >> calculations need special treatment and you’re fundamentally >> misrepresenting your meaning. >> >> Temporal infinities give the best of both worlds: infinite values that >> interoperate seamlessly with the built-in types and behave sensibly and >> predictably. They’re also supported by Postgres! >> >> Usage examples: >> >> >>> from temporal_infinities import * >> >>> from datetime import * >> >>> DATETIME_POS_INF - datetime(2020, 6, 15) >> TIMEDELTA_POS_INF >> >>> DATETIME_NEG_INF < date(2020, 6, 15) >> Traceback (most recent call last): >> File "<stdin>", line 1, in <module> >> TypeError: '<' not supported between instances of 'DatetimeInfinity' and >> 'datetime.date' >> >>> DATE_NEG_INF < date(2020, 6, 15) >> True >> >>> date(2020, 6, 15) + TIMEDELTA_POS_INF >> DATE_POS_INF >> >>> TIMEDELTA_NEG_INF == TIMEDELTA_NEG_INF >> True >> >> My implementation is at >> https://github.com/AlexHillAlexHill/temporal-infinities >> <https://github.com/AlexHill/temporal-infinities> and is designed to be >> as consistent with the behaviour of floating-point infinities as possible. >> The expected behaviour of the various types is captured in test_matrix.csv, >> which is used to produce test cases. Blank cells indicate that a TypeError >> should be raised. It's tested back to Python 3.4. >> >> Previous discussion: >> https://mail.python.org/pipermail/python-ideas/2015-January/031414.html >> >> Thanks for your time! >> >> Alex >> _______________________________________________ >> Python-ideas mailing list -- python-ideas@python.org >> To unsubscribe send an email to python-ideas-le...@python.org >> https://mail.python.org/mailman3/lists/python-ideas.python.org/ >> Message archived at >> https://mail.python.org/archives/list/python-ideas@python.org/message/S4H553FNZPX62RJLHVKCF4JFXBWQWXS6/ >> Code of Conduct: http://python.org/psf/codeofconduct/ >> > > > -- > Christopher Barker, PhD > > Python Language Consulting > - Teaching > - Scientific Software Development > - Desktop GUI and Web Development > - wxPython, numpy, scipy, Cython >
_______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/QT4K3ZNPRCAFMXT4VEVW5W3W2FOMDZDZ/ Code of Conduct: http://python.org/psf/codeofconduct/