On 09/11/2017 03:00 PM, Barry Warsaw wrote: > On Sep 10, 2017, at 20:08, Nathaniel Smith wrote: >> >> 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? > > 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.) > > 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. > > 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: > > enum Compare(enum.Enum): > none = 1 > unordered = 2 > ordered = 3 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. -- ~Ethan~
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4