[Python-Dev] datetime module enhancements
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
* APBP = "Although, practicality beats purity"
More information about the Python-Dev
mailing list