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.

Reply via email to