Let me explain more why I came up with that specific argument. I read through the entire python-ideas thread, which I highly discourage anyone else from doing. The people arguing for falsey behavior fundamentally believed that midnight was a special time. There was a lot of disagreement back and forth on that subject.
Rather than attempting to walk into that line of reasoning, which seems intractable, I chose a different path that sidesteps it. So even though I don't believe it, I concede for the moment that midnight is special. That should mean that all date objects should have have this special condition at their minimum value and be False. Yet, they are always true. Thus, the rationale has been inconsistently applied and would need to be corrected, which refutes the argument that there is a compatibility, testing, and development cost to removing falsey behavior because it would need to be added to other classes.
Additionally, since months are not 0-indexed (i.e. 0-11), and datetime.MINYEAR is 1, it exposes another hole in the "midnight is special" argument. For consistency 1 CE January 1st, should be False, but that's not made up of all zeroes.
The point of my argument was that there's no need to get into the deep philosophical arguments of whether midnight is special and the wider discussion about what should be falsey. The most basic argument is that falsey behavior for datetime.time is inconsistent with the other datetime classes, and there should be consistency among them. Therefore, the whole depreciation and compatibility break has to happen anyways, and basically everyone (including Guido) agrees that if this were being redesigned falsey behavior would not be allowed.
There are a litany of other reasons that falsey behavior is bad.
Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds