[Datetime-SIG] Another round on error-checking

Alexander Belopolsky alexander.belopolsky at gmail.com
Mon Aug 31 20:33:59 CEST 2015


On Mon, Aug 31, 2015 at 1:58 PM, Tim Peters <tim.peters at gmail.com> wrote:

> I think I'd rather acknowledge that problem cases exist in a direct
> and straightforward way, by adding a new tzinfo (say).classify()
> method.  For example, .classify() could return a
>
>     (kind, detail)
>
> 2-tuple.
>
> - kind==DTKIND_NORMAL.
>   Not an exceptional case.
>   detail is None.
>
> - kind==DTKIND_FOLD_NORMAL.
>   The datetime is in a fold, and its `fold` value is sane.
>   detail is the datetime's `fold` value (0 or 1).
>
> - kind==DTKIND_FOLD_INVALID.
>   The datetime does not have `fold==0`, but the datetime is not in a fold.
>   detail is the datetime's `fold` value (whatever it may be).
>
> - kind==DTKIND_GAP.
>   The datetime is in a gap.
>   detail is a (d1, d2) 2-tuple, where `d1` and `d2` are
>   timedeltas such that (in classic arithmetic):
>       datetime - d1 is the closest earlier non-gap time
>       datetime + d2 is the closest later non-gap time
>
> Users can call that directly when they like.
>

I have no objection to this method as long as a default implementation in
terms of a PEP 495 compliant .utcoffset() is provided in the basic
datetime.tzinfo.   Not a bad idea for another PEP. :-)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/datetime-sig/attachments/20150831/0364d703/attachment.html>


More information about the Datetime-SIG mailing list