Géry <gery.o...@gmail.com> added the comment:

More precisely:

The following relationships are always valid and therefore implemented by 
default in Python (_except for the union relationships, which seems arbitrary 
and is the reason of this Python issue_):

- 2 [complementary](https://en.wikipedia.org/wiki/Binary_relation#Complement) 
relationships: "= and ≠ are each other’s complement";
- 6 [converse](https://en.wikipedia.org/wiki/Binary_relation#Converse) 
relationships*: "= is the converse of itself", "≠ is the converse of itself", 
"< and > are each other’s converse", and "≤ and ≥ are each other’s converse";
- 2 [union](https://en.wikipedia.org/wiki/Binary_relation#Union) relationships: 
"≤ is the union < and =" and "≥ is the union of > and ≤".

The following relationships are only valid for [total 
orders](https://en.wikipedia.org/wiki/Binary_relation#Properties) and therefore 
not implemented by default in Python (but users can conveniently implement them 
when they are valid with the 
[`functools.total_ordering`](https://docs.python.org/3/library/functools.html#functools.total_ordering)
 class decorator provided by the Python standard library):

- 4 [complementary](https://en.wikipedia.org/wiki/Binary_relation#Complement) 
relationships: "< and ≥ are each other’s complement" and "> and ≤ are each 
other’s complement".

----

\* Converse relationships are implemented in Python through the 
[`NotImplemented` 
protocol](https://docs.python.org/3/reference/datamodel.html#the-standard-type-hierarchy).

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue39862>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to