[Python-Dev] datetime module enhancements (original) (raw)

Robert Brewer fumanchu at amor.org
Fri Mar 9 22:06:14 CET 2007


Brett Cannon wrote:

On 3/9/07, Collin Winter <collinw at gmail.com> wrote: > On the subject of datetime enhancements, I came across an SF patch > (#1673403) the other day that proposed making it possible to compare > date and datetime objects...

I personally like the current solution. The proposal to just assume midnight goes against EIBTI in my mind.

Yeah, but the current solution goes against, um, APBP*. Not in my mind, but in my code. Repeatedly. I can't count how many times I've written code like:

if created > fdate:

when I "should" have written:

if isinstance(created, datetime.date):
    date_version_of_created = created
else:
    date_version_of_created = created.date()
if date_version_of_created > fdate:

But it gets better, because:

>>> isinstance(datetime.datetime(x, y, z), datetime.date)
True

So the above won't work, you must remember to reverse the if/else:

if isinstance(created, datetime.datetime):
    date_version_of_created = created.date()
else:
    date_version_of_created = created
if date_version_of_created > fdate:

That's at least one too many "must remembers" for dumb (and busy!) ol' me. EIBTI until it's a PITA.

Is an implicit time of 0 really so surprising? It doesn't seem to be surprising for the datetime constructor:

datetime.datetime(2007, 3, 9) datetime.datetime(2007, 3, 9, 0, 0)

Why should it be surprising for comparisons?

Robert Brewer System Architect Amor Ministries fumanchu at amor.org



More information about the Python-Dev mailing list