<div dir="ltr">Oddly I don't like the enum (flag names get too long that way), but I do agree with everything else Barry said (it should be a trivalue flag and please don't name it cmp).<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 11, 2017 at 3:16 PM, Ethan Furman <span dir="ltr"><<a href="mailto:ethan@stoneleaf.us" target="_blank">ethan@stoneleaf.us</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 09/11/2017 03:00 PM, Barry Warsaw wrote:<span class=""><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Sep 10, 2017, at 20:08, Nathaniel Smith wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I've sometimes wished that attrs let me control whether it generated equality methods (eq/ne/hash) separately from ordering methods (lt/gt/...). Maybe the cmp= argument should take an enum with options none/equality-only/full?<br>
</blockquote>
<br>
I have had use cases where I needed equality comparisons but not ordered comparisons, so I’m in favor of the option to split them.  (atm, I can’t bring up a specific case, but it’s not uncommon.)<br>
<br>
Given that you only want to support the three states that Nathaniel describes, I think an enum makes the most sense, and it certainly would read well.  I.e. there’s no sense in supporting the ordered comparisons and not equality, so that’s not a state that needs to be represented.<br>
<br>
I’d make one other suggestion here: please let’s not call the keyword `cmp`.  That’s reminiscent of Python 2’s `cmp` built-in, which of course doesn’t exist in Python 3.  Using `cmp` is just an unnecessarily obfuscating abbreviation.  I’d suggest just `compare` with an enum like so:<br>
<br>
enum Compare(enum.Enum):<br>
     none = 1<br>
     unordered = 2<br>
     ordered = 3<br>
</blockquote>
<br></span>
I like the enum idea (suprise! ;) but I would suggest "equal" or "equivalent" instead of "unordered"; better to say what they are rather than what they are not.<br>
<br>
--<br>
~Ethan~<span class=""><br>
<br>
______________________________<wbr>_________________<br>
Python-Dev mailing list<br>
<a href="mailto:Python-Dev@python.org" target="_blank">Python-Dev@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-dev" rel="noreferrer" target="_blank">https://mail.python.org/mailma<wbr>n/listinfo/python-dev</a><br></span>
Unsubscribe: <a href="https://mail.python.org/mailman/options/python-dev/guido%40python.org" rel="noreferrer" target="_blank">https://mail.python.org/mailma<wbr>n/options/python-dev/guido%<wbr>40python.org</a><br>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">--Guido van Rossum (<a href="http://python.org/~guido" target="_blank">python.org/~guido</a>)</div>
</div>