Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change inheritance order in UniqueRepresentation #38203

Merged
merged 11 commits into from
Aug 3, 2024
2 changes: 1 addition & 1 deletion src/sage/categories/category_singleton.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -218,9 +218,9 @@ class Category_singleton(Category):
<class 'sage.categories.category_singleton.Category_singleton'>,
<class 'sage.categories.category.Category'>,
<class 'sage.structure.unique_representation.UniqueRepresentation'>,
<class 'sage.misc.fast_methods.WithEqualityById'>,
<class 'sage.structure.unique_representation.CachedRepresentation'>,
<class 'sage.structure.unique_representation.WithPicklingByInitArgs'>,
<class 'sage.misc.fast_methods.WithEqualityById'>,
<class 'sage.structure.sage_object.SageObject'>,
<class '__main__.R.subcategory_class'>,
<class 'sage.categories.sets_cat.Sets.subcategory_class'>,
Expand Down
2 changes: 1 addition & 1 deletion src/sage/categories/sets_cat.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,9 +136,9 @@ class Sets(Category_singleton):
<class 'sage.categories.examples.sets_cat.PrimeNumbers_Inherits'>
<class 'sage.categories.examples.sets_cat.PrimeNumbers_Abstract'>
<class 'sage.structure.unique_representation.UniqueRepresentation'>
<class 'sage.misc.fast_methods.WithEqualityById'>
<class 'sage.structure.unique_representation.CachedRepresentation'>
<class 'sage.structure.unique_representation.WithPicklingByInitArgs'>
<class 'sage.misc.fast_methods.WithEqualityById'>
<class 'sage.structure.parent.Parent'>
<class 'sage.structure.category_object.CategoryObject'>
<class 'sage.structure.sage_object.SageObject'>
Expand Down
36 changes: 0 additions & 36 deletions src/sage/combinat/root_system/cartan_type.py
Original file line number Diff line number Diff line change
Expand Up @@ -3069,39 +3069,3 @@ def __getitem__(self, i):
raise IndexError("index out of range")

options = CartanType.options

##############################################################################
# For backward compatibility


class CartanType_simple_finite:
def __setstate__(self, dict):
"""
Implements the unpickling of Cartan types pickled by Sage <= 4.0.

EXAMPLES:

This is the pickle for CartanType(["A", 4])::

sage: pg_CartanType_simple_finite = unpickle_global('sage.combinat.root_system.cartan_type', 'CartanType_simple_finite')
sage: si1 = unpickle_newobj(pg_CartanType_simple_finite, ())
sage: from sage.misc.fpickle import unpickleModule
sage: pg_make_integer = unpickle_global('sage.rings.integer', 'make_integer')
sage: si2 = pg_make_integer('4')
sage: unpickle_build(si1, {'tools':unpickleModule('sage.combinat.root_system.type_A'), 't':['A', si2], 'letter':'A', 'n':si2})

sage: si1
['A', 4]
sage: si1.dynkin_diagram() # needs sage.graphs
O---O---O---O
1 2 3 4
A4

This is quite hacky; in particular unique representation is not preserved::

sage: si1 == CartanType(["A", 4]) # todo: not implemented
True
"""
T = CartanType([dict['letter'], dict['n']])
self.__class__ = T.__class__
self.__dict__ = T.__dict__
2 changes: 1 addition & 1 deletion src/sage/structure/unique_representation.py
Original file line number Diff line number Diff line change
Expand Up @@ -1201,7 +1201,7 @@ def _clear_cache_(cls):
del cache[k]


class UniqueRepresentation(CachedRepresentation, WithEqualityById):
class UniqueRepresentation(WithEqualityById, CachedRepresentation):
r"""
Classes derived from ``UniqueRepresentation`` inherit a unique
representation behavior for their instances.
Expand Down
Loading