On Tue, Nov 11, 2008 at 7:06 AM, M.-A. Lemburg <span dir="ltr">&lt;<a href="mailto:mal@egenix.com">mal@egenix.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Why was the special case for None being &quot;smaller&quot; than all other<br>
objects in Python removed from Python 3.0 ? (see object.c in Py2.x)<br>
</blockquote><div><br>It wasn&#39;t true in Python 2.5, either.&nbsp; Observe:<br><br>Cashew:~/pokersleuth/tracker$ python2.5<br>Python 2.5 (r25:51908, Feb 26 2007, 08:19:26)<br>[GCC 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)] on cygwin<br>
Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.<br>&gt;&gt;&gt; import datetime<br>&gt;&gt;&gt; now = datetime.datetime.now()<br>&gt;&gt;&gt; now &lt; None<br>
Traceback (most recent call last):<br>&nbsp; File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;<br>TypeError: can&#39;t compare datetime.datetime to NoneType<br><br><br>Right now to get the desired semantics, I implement a custom AlwaysLeast and/or AlwaysGreatest singletons for whatever type I&#39;m dealing with.&nbsp; It&#39;s a bit of&nbsp; of a pain.&nbsp; My use cases are all along the following lines:<br>
</div></div><br>class TimeSpan:<br>&nbsp;&nbsp; def __init__(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.earliest = AlwaysGreatest<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.latest = AlwaysLeast<br><br>&nbsp;&nbsp;&nbsp; def update(self, v):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.earliest = min(self.earliest, v)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.latest = max(self.latest, v)<br><blockquote style="margin: 1.5em 0pt;">--<br>
Daniel Stutzbach, Ph.D.<br>
<a href="http://www.barsoom.org/%7Eagthorr">http://www.barsoom.org/~agthorr</a></blockquote>