surface_category#

Category types for surfaces.

This module provides alternative implementations for the SageMath types Category and CategoryWithAxiom. It patches the _cmp_key of these types to produce a more stable sorting of surface categories exactly in the same way that SageMath does for its builtin categories.

Without this, the MRO of surfaces is session dependent and in particular we get somewhat random printing of categories such as translation surfaces.

While we do not claim to actually understand all the details here, you can consult c3_controlled.py in SageMath for all the (rather technical) details.

class flatsurf.geometry.categories.surface_category.SurfaceCategory[source]#
class flatsurf.geometry.categories.surface_category.SurfaceCategoryWithAxiom(base_category)[source]#
class flatsurf.geometry.categories.surface_category.SurfaceCmpKey[source]#