Jeroen Demeyer wrote: >> Does Element.__richcmp__() (via CoercionModel_cache_maps.richcmp()) >> really need to fall back on comparing by type/id when no common >> parent is found? > > No. As far as I know, It does so for historical reasons only. I am in > favour of making elements without a common parent uncomparable.
Okay, here is an attempt at doing so: https://trac.sagemath.org/ticket/22029 I had to touch corners of Sage I'm far for comfortable with; if people more familiar with them can have a look at the changes and perhaps help with cleaner fixes, that would be more than welcome! src/doc/de/tutorial/programming.rst | 12 ------ src/doc/en/reference/graphs/index.rst | 1 + src/doc/en/tutorial/programming.rst | 10 ----- src/doc/en/tutorial/tour_coercion.rst | 2 - src/doc/fr/tutorial/programming.rst | 10 ----- src/doc/fr/tutorial/tour_coercion.rst | 2 - src/doc/ja/tutorial/programming.rst | 11 ----- src/doc/ja/tutorial/tour_coercion.rst | 2 - src/doc/pt/tutorial/programming.rst | 10 ----- src/doc/pt/tutorial/tour_coercion.rst | 2 - src/doc/ru/tutorial/programming.rst | 9 ----- src/module_list.py | 3 ++ src/sage/algebras/group_algebra.py | 4 +- src/sage/categories/finite_posets.py | 4 +- src/sage/categories/sets_cat.py | 2 +- src/sage/combinat/crystals/alcove_path.py | 2 +- src/sage/combinat/crystals/fast_crystals.py | 6 ++- src/sage/combinat/designs/incidence_structures.py | 8 +++- src/sage/combinat/finite_state_machine.py | 19 +++++++-- src/sage/combinat/misc.py | 2 +- src/sage/combinat/posets/posets.py | 9 +++-- src/sage/combinat/rigged_configurations/bij_type_A2_even.py | 13 +++--- src/sage/combinat/sf/sfa.py | 2 +- src/sage/combinat/species/product_species.py | 2 +- src/sage/combinat/species/recursive_species.py | 2 +- src/sage/combinat/species/series_order.py | 49 +++++++++++++++++++++++ src/sage/combinat/species/species.py | 7 ++-- src/sage/combinat/subset.py | 3 +- src/sage/combinat/words/abstract_word.py | 5 ++- src/sage/combinat/words/finite_word.py | 6 +-- src/sage/combinat/words/morphism.py | 8 ++-- src/sage/combinat/words/words.py | 16 ++++++-- src/sage/geometry/cone.py | 4 -- src/sage/geometry/fan.py | 2 - src/sage/geometry/polyhedron/base.py | 7 ---- src/sage/geometry/toric_lattice.py | 2 - src/sage/geometry/triangulation/element.py | 2 - src/sage/graphs/base/c_graph.pyx | 30 ++++++++++++-- src/sage/graphs/base/label_cmp.pxd | 4 ++ src/sage/graphs/base/label_cmp.pyx | 84 +++++++++++++++++++++++++++++++++++++++ src/sage/graphs/base/sparse_graph.pyx | 21 ++++++---- src/sage/graphs/generic_graph.py | 46 +++++++++++++-------- src/sage/graphs/graph_plot.py | 29 +++++++++----- src/sage/graphs/schnyder.py | 6 +-- src/sage/groups/affine_gps/group_element.py | 2 - src/sage/homology/chain_complex.py | 17 ++++---- src/sage/homology/simplicial_complex.py | 25 ++++++------ src/sage/interfaces/ecm.py | 2 +- src/sage/libs/ntl/ntl_mat_ZZ.pyx | 4 -- src/sage/misc/misc.py | 12 +++--- src/sage/modular/abvar/abvar.py | 2 +- src/sage/modular/abvar/finite_subgroup.py | 4 -- src/sage/modular/abvar/torsion_subgroup.py | 2 - src/sage/modular/hecke/ambient_module.py | 9 ++++- src/sage/modules/multi_filtered_vector_space.py | 6 ++- src/sage/modules/quotient_module.py | 2 - src/sage/plot/graphics.py | 4 +- src/sage/plot/plot3d/base.pyx | 4 +- src/sage/plot/plot3d/platonic.py | 2 +- src/sage/quivers/representation.py | 4 +- src/sage/rings/number_field/number_field.py | 2 +- src/sage/rings/rational.pyx | 5 ++- src/sage/sandpiles/sandpile.py | 6 +-- src/sage/schemes/elliptic_curves/ell_number_field.py | 4 +- src/sage/schemes/elliptic_curves/height.py | 5 ++- src/sage/schemes/elliptic_curves/isogeny_class.py | 6 +-- src/sage/schemes/toric/variety.py | 2 +- src/sage/sets/totally_ordered_finite_set.py | 27 ++++--------- src/sage/structure/coerce.pyx | 82 +++++++++++++++++++++++++++++--------- src/sage/structure/element_wrapper.pyx | 13 +++--- src/sage/structure/formal_sum.py | 18 +++++---- src/sage/symbolic/expression.pyx | 2 +- 72 files changed, 468 insertions(+), 285 deletions(-) Thanks, -- Marc -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.
