Skip to content

Cannot create consistent method resolution order (MRO) when using filtered categories #39154

Closed
@tobiasdiez

Description

@tobiasdiez

Steps To Reproduce

In https://github.com/tobiasdiez/sage/tree/pytest-no-isolation-bug, run pytest --doctest src/sage/algebras/{af,ass,clifford}**.py.
(It is not necessary to really use this branch, but in it a few unrelated doctests are deleted to make investigation hopefully easier).

It's a combination of the following 3 doctests that trigger the error (but in a sage session it works well):

# src/sage/algebras/affine_nil_temperley_lieb.py
A = AffineNilTemperleyLiebTypeA(3)

# src/sage/algebras/associated_graded.py
A = Algebras(QQ).WithBasis().Filtered()

# src/sage/algebras/clifford_algebra.py
Qp = QuadraticForm(QQ, 3, [1,2,3,4,5,6])
Clp = CliffordAlgebra(Qp)

In particular, it works if you remove Filtered in the second line.

(Note that pytest by default doesn't isolate doctests from each other, so the code is just run in the same process, after an initial sage.all import - similar to how you would run it in a linear sage terminal session.)

(I'm using the meson build in a conda environment, but I doubt this makes a difference.)

Expected Behavior

Tests pass, as they do if you run pytest --doctest src/sage/algebras --isolated (with https://github.com/gilfree/pytest-isolate installed).

Actual Behavior

Fails with

    JoinCategory.subcategory_class (<class 'sage.categories.super_algebras_with_basis.SuperAlgebrasWithBasis.subcategory_class'>, <class 'sage.categories.finite_dimensional_algebras_with_basis.FiniteDimensionalAlgebrasWithBasis.subcategory_class'>, <class 'sage.categories.filtered_modules_with_basis.FilteredModulesWithBasis.FiniteDimensional.subcategory_class'>, <class 'sage.categories.vector_spaces.VectorSpaces.WithBasis.Filtered.subcategory_class'>, <class 'sage.categories.vector_spaces.VectorSpaces.WithBasis.FiniteDimensional.subcategory_class'>) <class 'sage.structure.dynamic_class.DynamicMetaclass'>
    Cannot create a consistent method resolution
    order (MRO) for bases VectorSpaces.WithBasis.subcategory_class, FiniteDimensionalModulesWithBasis.subcategory_class
    JoinCategory.subcategory_class (<class 'sage.categories.filtered_modules_with_basis.FilteredModulesWithBasis.FiniteDimensional.subcategory_class'>, <class 'sage.categories.vector_spaces.VectorSpaces.WithBasis.Filtered.subcategory_class'>, <class 'sage.categories.vector_spaces.VectorSpaces.FiniteDimensional.subcategory_class'>) <class 'sage.structure.dynamic_class.DynamicMetaclass'>
    Cannot create a consistent method resolution
    order (MRO) for bases VectorSpaces.subcategory_class, Modules.FiniteDimensional.subcategory_class
    JoinCategory.subcategory_class (<class 'sage.categories.filtered_modules_with_basis.FilteredModulesWithBasis.FiniteDimensional.subcategory_class'>, <class 'sage.categories.vector_spaces.VectorSpaces.WithBasis.Filtered.subcategory_class'>, <class 'sage.categories.vector_spaces.VectorSpaces.WithBasis.FiniteDimensional.subcategory_class'>) <class 'sage.structure.dynamic_class.DynamicMetaclass'>
    Cannot create a consistent method resolution
    order (MRO) for bases VectorSpaces.WithBasis.subcategory_class, FiniteDimensionalModulesWithBasis.subcategory_class
    JoinCategory.subcategory_class (<class 'sage.categories.magmatic_algebras.MagmaticAlgebras.WithBasis.FiniteDimensional.subcategory_class'>, <class 'sage.categories.filtered_modules_with_basis.FilteredModulesWithBasis.FiniteDimensional.subcategory_class'>, <class 'sage.categories.vector_spaces.VectorSpaces.WithBasis.Filtered.subcategory_class'>, <class 'sage.categories.filtered_modules_with_basis.FilteredModulesWithBasis.subcategory_class'>, <class 'sage.categories.vector_spaces.VectorSpaces.WithBasis.FiniteDimensional.subcategory_class'>, <class 'sage.categories.filtered_modules.FilteredModules.subcategory_class'>, <class 'sage.categories.vector_spaces.VectorSpaces.FiniteDimensional.subcategory_class'>) <class 'sage.structure.dynamic_class.DynamicMetaclass'>
    Cannot create a consistent method resolution
    order (MRO) for bases FiniteDimensionalModulesWithBasis.subcategory_class, VectorSpaces.WithBasis.subcategory_class, FilteredModules.subcategory_class, VectorSpaces.FiniteDimensional.subcategory_class
    JoinCategory.subcategory_class (<class 'sage.categories.filtered_algebras_with_basis.FilteredAlgebrasWithBasis.subcategory_class'>, <class 'sage.categories.finite_dimensional_algebras_with_basis.FiniteDimensionalAlgebrasWithBasis.subcategory_class'>, <class 'sage.categories.filtered_modules_with_basis.FilteredModulesWithBasis.FiniteDimensional.subcategory_class'>, <class 'sage.categories.vector_spaces.VectorSpaces.WithBasis.Filtered.subcategory_class'>, <class 'sage.categories.vector_spaces.VectorSpaces.WithBasis.FiniteDimensional.subcategory_class'>) <class 'sage.structure.dynamic_class.DynamicMetaclass'>
    Cannot create a consistent method resolution
    order (MRO) for bases VectorSpaces.WithBasis.subcategory_class, FiniteDimensionalModulesWithBasis.subcategory_class
    JoinCategory.parent_class (<class 'sage.categories.super_algebras_with_basis.SuperAlgebrasWithBasis.parent_class'>, <class 'sage.categories.finite_dimensional_algebras_with_basis.FiniteDimensionalAlgebrasWithBasis.parent_class'>, <class 'sage.categories.filtered_modules_with_basis.FilteredModulesWithBasis.FiniteDimensional.parent_class'>, <class 'sage.categories.vector_spaces.VectorSpaces.WithBasis.Filtered.parent_class'>, <class 'sage.categories.vector_spaces.VectorSpaces.WithBasis.FiniteDimensional.parent_class'>) <class 'sage.structure.dynamic_class.DynamicMetaclass'>
    Cannot create a consistent method resolution
    order (MRO) for bases VectorSpaces.WithBasis.parent_class, FiniteDimensionalModulesWithBasis.parent_class

Additional Information

Similar #20460 and #20896

Does anyone has an idea how to debug this further?

Environment

Latest

Checklist

  • I have searched the existing issues for a bug report that matches the one I want to file, without success.
  • I have read the documentation and troubleshoot guide

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions