sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.33k stars 453 forks source link

Minor fixes to symmetric functions #15473

Closed darijgr closed 10 years ago

darijgr commented 10 years ago

One doctest is disabled waiting for :trac:10963 to be merged.

CC: @tscrim @zabrocki @sagetrac-sage-combinat @simon-king-jena @nthiery

Component: combinatorics

Keywords: sage-combinat, symmetric functions

Author: Darij Grinberg

Branch/Commit: public/combinat/sf/fixes-15473 @ 7f9be88

Reviewer: Travis Scrimshaw

Issue created by migration from https://trac.sagemath.org/ticket/15473

darijgr commented 10 years ago
comment:1

So, here's the file... but... it fails doctests for no reason whatsoever!

**********************************************************************
File "devel/sage-main/sage/combinat/sf/sfa.py", line 875, in sage.combinat.sf.sfa.SymmetricFunctionsBases.ParentMethods.corresponding_basis_over
Failed example:
    s.corresponding_basis_over(Integers(13))
Exception raised:
    Traceback (most recent call last):
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 479, in _run
        self.execute(example, compiled, test.globs)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 838, in execute
        exec compiled in globs
      File "<doctest sage.combinat.sf.sfa.SymmetricFunctionsBases.ParentMethods.corresponding_basis_over[5]>", line 1, in <module>
        s.corresponding_basis_over(Integers(Integer(13)))
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sfa.py", line 937, in corresponding_basis_over
        return attrcall(self._basis)(SymmetricFunctions(R))
      File "classcall_metaclass.pyx", line 330, in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (sage/misc/classcall_metaclass.c:1224)
      File "cachefunc.pyx", line 1030, in sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:5675)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/unique_representation.py", line 1005, in __classcall__
        instance = typecall(cls, *args, **options)
      File "classcall_metaclass.pyx", line 518, in sage.misc.classcall_metaclass.typecall (sage/misc/classcall_metaclass.c:1586)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sf.py", line 764, in __init__
        Parent.__init__(self, category = GradedHopfAlgebras(R).WithRealizations())
      File "parent.pyx", line 368, in sage.structure.parent.Parent.__init__ (sage/structure/parent.c:4392)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sf.py", line 1225, in __init_extra__
        basis1 = getattr(self, basis1_name)()
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sf.py", line 812, in powersum
        return powersum.SymmetricFunctionAlgebra_power(self)
      File "classcall_metaclass.pyx", line 330, in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (sage/misc/classcall_metaclass.c:1224)
      File "cachefunc.pyx", line 1030, in sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:5675)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/unique_representation.py", line 1005, in __classcall__
        instance = typecall(cls, *args, **options)
      File "classcall_metaclass.pyx", line 518, in sage.misc.classcall_metaclass.typecall (sage/misc/classcall_metaclass.c:1586)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/powersum.py", line 41, in __init__
        classical.SymmetricFunctionAlgebra_classical.__init__(self, Sym, "powersum", 'p')
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sfa.py", line 1025, in __init__
        category = SymmetricFunctionsBases(Sym),
      File "classcall_metaclass.pyx", line 330, in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (sage/misc/classcall_metaclass.c:1224)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 464, in __classcall__
        return super(Category, cls).__classcall__(cls, *args, **options)
      File "cachefunc.pyx", line 1030, in sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:5675)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/unique_representation.py", line 1005, in __classcall__
        instance = typecall(cls, *args, **options)
      File "classcall_metaclass.pyx", line 518, in sage.misc.classcall_metaclass.typecall (sage/misc/classcall_metaclass.c:1586)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sfa.py", line 477, in __init__
        Category_realization_of_parent.__init__(self, base)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/realizations.py", line 147, in __init__
        Category_over_base.__init__(self, parent_with_realization)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category_types.py", line 204, in __init__
        Category.__init__(self, name)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 499, in __init__
        (self.__class__, self.subcategory_class, ),
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1277, in subcategory_class
        cache=False, picklable=False)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 2064, in _make_named_class
        cache=cache, **options)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1233, in _make_named_class
        tuple(getattr(cat,name) for cat in self._super_categories_for_classes),
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1059, in _super_categories_for_classes
        self._all_super_categories
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 885, in _all_super_categories
        for cat in self._super_categories] +
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1034, in _super_categories
        return sorted(Category._flatten_categories(self.super_categories()), key = category_sort_key, reverse=True)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sfa.py", line 514, in super_categories
        return [GradedHopfAlgebrasWithBasis(self.base().base_ring()),
      File "classcall_metaclass.pyx", line 330, in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (sage/misc/classcall_metaclass.c:1224)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 464, in __classcall__
        return super(Category, cls).__classcall__(cls, *args, **options)
      File "cachefunc.pyx", line 1030, in sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:5675)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/unique_representation.py", line 1005, in __classcall__
        instance = typecall(cls, *args, **options)
      File "classcall_metaclass.pyx", line 518, in sage.misc.classcall_metaclass.typecall (sage/misc/classcall_metaclass.c:1586)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category_types.py", line 327, in __init__
        Category_over_base.__init__(self, base, name)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category_types.py", line 204, in __init__
        Category.__init__(self, name)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 499, in __init__
        (self.__class__, self.subcategory_class, ),
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1277, in subcategory_class
        cache=False, picklable=False)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 2064, in _make_named_class
        cache=cache, **options)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1233, in _make_named_class
        tuple(getattr(cat,name) for cat in self._super_categories_for_classes),
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1059, in _super_categories_for_classes
        self._all_super_categories
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 885, in _all_super_categories
        for cat in self._super_categories] +
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1034, in _super_categories
        return sorted(Category._flatten_categories(self.super_categories()), key = category_sort_key, reverse=True)
      File "cachefunc.pyx", line 1775, in sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__ (sage/misc/cachefunc.c:9548)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/graded_hopf_algebras_with_basis.py", line 42, in super_categories
        return [GradedBialgebrasWithBasis(R), GradedHopfAlgebras(R), HopfAlgebrasWithBasis(R)]
      File "classcall_metaclass.pyx", line 330, in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (sage/misc/classcall_metaclass.c:1224)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 464, in __classcall__
        return super(Category, cls).__classcall__(cls, *args, **options)
      File "cachefunc.pyx", line 1030, in sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:5675)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/unique_representation.py", line 1005, in __classcall__
        instance = typecall(cls, *args, **options)
      File "classcall_metaclass.pyx", line 518, in sage.misc.classcall_metaclass.typecall (sage/misc/classcall_metaclass.c:1586)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category_types.py", line 327, in __init__
        Category_over_base.__init__(self, base, name)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category_types.py", line 204, in __init__
        Category.__init__(self, name)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 499, in __init__
        (self.__class__, self.subcategory_class, ),
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1277, in subcategory_class
        cache=False, picklable=False)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 2064, in _make_named_class
        cache=cache, **options)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1233, in _make_named_class
        tuple(getattr(cat,name) for cat in self._super_categories_for_classes),
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1059, in _super_categories_for_classes
        self._all_super_categories
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 885, in _all_super_categories
        for cat in self._super_categories] +
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1034, in _super_categories
        return sorted(Category._flatten_categories(self.super_categories()), key = category_sort_key, reverse=True)
      File "cachefunc.pyx", line 1775, in sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__ (sage/misc/cachefunc.c:9548)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/graded_bialgebras_with_basis.py", line 40, in super_categories
        return [GradedAlgebrasWithBasis(R), GradedCoalgebrasWithBasis(R), GradedBialgebras(R)]
      File "classcall_metaclass.pyx", line 330, in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (sage/misc/classcall_metaclass.c:1224)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 464, in __classcall__
        return super(Category, cls).__classcall__(cls, *args, **options)
      File "cachefunc.pyx", line 1030, in sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:5675)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/unique_representation.py", line 1005, in __classcall__
        instance = typecall(cls, *args, **options)
      File "classcall_metaclass.pyx", line 518, in sage.misc.classcall_metaclass.typecall (sage/misc/classcall_metaclass.c:1586)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category_types.py", line 327, in __init__
        Category_over_base.__init__(self, base, name)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category_types.py", line 204, in __init__
        Category.__init__(self, name)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 499, in __init__
        (self.__class__, self.subcategory_class, ),
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1277, in subcategory_class
        cache=False, picklable=False)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 2064, in _make_named_class
        cache=cache, **options)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1235, in _make_named_class
        reduction = reduction, cache = cache)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/dynamic_class.py", line 316, in dynamic_class
        return dynamic_class_internal.f(name, bases, cls, reduction, doccls, prepend_cls_bases)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/dynamic_class.py", line 411, in dynamic_class_internal
        return metaclass(name, bases, methods)
    TypeError: Cannot create a consistent method resolution
    order (MRO) for bases ModulesWithBasis.subcategory_class, Modules.subcategory_class, GradedModules.subcategory_class
**********************************************************************

This happens only because of the doctest

                sage: s = SymmetricFunctions(Zmod(14)).s()
                sage: s.is_integral_domain()
                False

before it. Both doctests work fine in isolation, but it seems that the Zmod(14) one corrupts the MRO for the Integers(13) one.

What the fuck???

simon-king-jena commented 10 years ago
comment:4

No idea about this failure. On #15303, I need to touch qsym.py for different reasons: Coercion maps use weak references to their domain (by #14711), and thus one should copy them when using outside of the coercion system.

darijgr commented 10 years ago
comment:5

This is, sadly, not the patch where I'm touching QSym; I cc'ed you because it seems to be a category issue. Thanks for looking into it nevertheless!

simon-king-jena commented 10 years ago
comment:6

Replying to @darijgr:

This is, sadly, not the patch where I'm touching QSym; I cc'ed you because it seems to be a category issue.

I see!

Actually I thought that with Nicolas' modification of the C3 algorithm, an inconsistent method resolution order should never occur.

darijgr commented 10 years ago
comment:7

Nevermind my patch -- the bug is already triggered by

sage: SymmetricFunctions(Zmod(2)); SymmetricFunctions(Zmod(4))

If I use two primes instead of 2 and 4, then it works! It is probably a field/ring distinction. Maybe determining a category at runtime is bad for caching?

There should be a contest for the shortest string that breaks Sage...

darijgr commented 10 years ago
comment:8

But... not all is well in field-land either!

┌────────────────────────────────────────────────────────────────────┐
│ Sage Version 5.13.beta3, Release Date: 2013-11-14                  │
│ Type "notebook()" for the browser-based notebook interface.        │
│ Type "help()" for help.                                            │
└────────────────────────────────────────────────────────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Warning: this is a prerelease version, and it may be unstable.     ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
sage: SymmetricFunctions(Zmod(2)); SymmetricFunctions(Zmod(5)); SymmetricFunctions(Zmod(3))
Symmetric Functions over Ring of integers modulo 2
Symmetric Functions over Ring of integers modulo 5
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-1-55467dc7f5ca> in <module>()
----> 1 SymmetricFunctions(Zmod(Integer(2))); SymmetricFunctions(Zmod(Integer(5))); SymmetricFunctions(Zmod(Integer(3)))

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/classcall_metaclass.so in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (sage/misc/classcall_metaclass.c:1224)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/cachefunc.so in sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:5675)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/unique_representation.pyc in __classcall__(cls, *args, **options)
   1003             True
   1004         """
-> 1005         instance = typecall(cls, *args, **options)
   1006         assert isinstance( instance, cls )
   1007         if instance.__class__.__reduce__ == CachedRepresentation.__reduce__:

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/classcall_metaclass.so in sage.misc.classcall_metaclass.typecall (sage/misc/classcall_metaclass.c:1586)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sf.pyc in __init__(self, R)
    762         assert(R in Rings())
    763         self._base = R # Won't be needed when CategoryObject won't override anymore base_ring
--> 764         Parent.__init__(self, category = GradedHopfAlgebras(R).WithRealizations())
    765 
    766     def a_realization(self):

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/parent.so in sage.structure.parent.Parent.__init__ (sage/structure/parent.c:4392)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sf.pyc in __init_extra__(self)
   1223 
   1224         for (basis1_name, basis2_name) in conversion_functions.keys():
-> 1225             basis1 = getattr(self, basis1_name)()
   1226             basis2 = getattr(self, basis2_name)()
   1227             on_basis = SymmetricaConversionOnBasis(t = conversion_functions[basis1_name,basis2_name], domain = basis1, codomain = basis2)

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sf.pyc in powersum(self)
    810             Symmetric Functions over Rational Field in the powersum basis
    811         """
--> 812         return powersum.SymmetricFunctionAlgebra_power(self)
    813     p = powersum
    814     power = powersum # Todo: get rid of this one when it won't be needed anymore

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/classcall_metaclass.so in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (sage/misc/classcall_metaclass.c:1224)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/cachefunc.so in sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:5675)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/unique_representation.pyc in __classcall__(cls, *args, **options)
   1003             True
   1004         """
-> 1005         instance = typecall(cls, *args, **options)
   1006         assert isinstance( instance, cls )
   1007         if instance.__class__.__reduce__ == CachedRepresentation.__reduce__:

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/classcall_metaclass.so in sage.misc.classcall_metaclass.typecall (sage/misc/classcall_metaclass.c:1586)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/powersum.pyc in __init__(self, Sym)
     39             sage: TestSuite(p).run(elements = [p[1,1]+p[2], p[1]+2*p[1,1]])
     40         """
---> 41         classical.SymmetricFunctionAlgebra_classical.__init__(self, Sym, "powersum", 'p')
     42 
     43     def coproduct_on_generators(self, i):

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sfa.pyc in __init__(self, Sym, basis_name, prefix)
   1020         self._sym = Sym
   1021         CombinatorialFreeModule.__init__(self, Sym.base_ring(), sage.combinat.partition.Partitions(),
-> 1022                                          category = SymmetricFunctionsBases(Sym),
   1023                                          bracket = "", prefix = prefix)
   1024 

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/classcall_metaclass.so in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (sage/misc/classcall_metaclass.c:1224)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.pyc in __classcall__(cls, *args, **options)
    462         if isinstance(cls, DynamicMetaclass):
    463             cls = cls.__base__
--> 464         return super(Category, cls).__classcall__(cls, *args, **options)
    465 
    466     def __init__(self, s=None):

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/cachefunc.so in sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:5675)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/unique_representation.pyc in __classcall__(cls, *args, **options)
   1003             True
   1004         """
-> 1005         instance = typecall(cls, *args, **options)
   1006         assert isinstance( instance, cls )
   1007         if instance.__class__.__reduce__ == CachedRepresentation.__reduce__:

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/classcall_metaclass.so in sage.misc.classcall_metaclass.typecall (sage/misc/classcall_metaclass.c:1586)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sfa.pyc in __init__(self, base)
    475             True
    476         """
--> 477         Category_realization_of_parent.__init__(self, base)
    478 
    479     def _repr_(self):

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/realizations.pyc in __init__(self, parent_with_realization)
    145             sage: TestSuite(C).run()
    146         """
--> 147         Category_over_base.__init__(self, parent_with_realization)
    148         self.parent_with_realization = parent_with_realization
    149 

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category_types.pyc in __init__(self, base, name)
    202     def __init__(self, base, name=None):
    203         self.__base = base
--> 204         Category.__init__(self, name)
    205 
    206     def _make_named_class_key(self, name):

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.pyc in __init__(self, s)
    497                 raise TypeError, "Argument string must be a string."
    498         self.__class__ = dynamic_class("%s_with_category"%self.__class__.__name__,
--> 499                                        (self.__class__, self.subcategory_class, ),
    500                                        cache = False, reduction = None,
    501                                        doccls=self.__class__)

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/lazy_attribute.so in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.pyc in subcategory_class(self)
   1275         """
   1276         return self._make_named_class('subcategory_class', 'SubcategoryMethods',
-> 1277                                       cache=False, picklable=False)
   1278 
   1279     @lazy_attribute

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.pyc in _make_named_class(self, name, method_provider, cache, **options)
   2062             pass
   2063         result = Category._make_named_class(self, name, method_provider,
-> 2064                                             cache=cache, **options)
   2065         self._make_named_class_cache[key] = result
   2066         return result

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.pyc in _make_named_class(self, name, method_provider, cache, picklable)
   1231             reduction = None
   1232         return dynamic_class(class_name,
-> 1233                              tuple(getattr(cat,name) for cat in self._super_categories_for_classes),
   1234                              method_provider_cls, prepend_cls_bases = False, doccls = doccls,
   1235                              reduction = reduction, cache = cache)

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/lazy_attribute.so in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.pyc in _super_categories_for_classes(self)
   1057             [Category of rngs, Category of semirings]
   1058         """
-> 1059         self._all_super_categories
   1060         return self._super_categories_for_classes
   1061 

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/lazy_attribute.so in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.pyc in _all_super_categories(self)
    885                                            for cat in self._super_categories] +
    886                                           [self._super_categories],
--> 887                                           category_sort_key)
    888         self._super_categories_for_classes = bases
    889         return [self] + result

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/c3_controlled.so in sage.misc.c3_controlled.C3_sorted_merge (sage/misc/c3_controlled.c:4377)()

KeyError: (6048, 95)
darijgr commented 10 years ago

without the offending doctest

darijgr commented 10 years ago
comment:10

Attachment: trac_15473-sym-dg.patch.gz

darijgr commented 10 years ago

Description changed:

--- 
+++ 
@@ -3,3 +3,5 @@
 - `is_integral_domain` added fwiw (maybe we can have the fraction field eventually).

 - Some deprecated stuff is now lazy-imported rather than imported.
+
+One doctest is disabled waiting for :trac:`10963` to be merged.
darijgr commented 10 years ago
comment:11

All is well that ends well -- it turns out that both bugs are fixed by the hg version of #10963. I'll open a new ticket to not lose track of this issue, but this patch can be reviewed independently of it since I've disabled the doctest.

tscrim commented 10 years ago

Branch: public/combinat/sf/fixes-15473

tscrim commented 10 years ago

Commit: 4277d46

tscrim commented 10 years ago

Reviewer: Travis Scrimshaw

tscrim commented 10 years ago
comment:12

Hey Darij,

I've converted this to a branch, removed the deprecated functions (15 months old) except the k-Schurs (they are more tricky), and formally deprecated SymmetricFunctionAlgebra. If you agree with my changes, then we can set this to positive review.

Best,

Travis

For the record, the doctests are re-enabled at #15475.


New commits:

[4277d46](https://github.com/sagemath/sagetrac-mirror/commit/4277d46)Removed deprecated functions from HL, Jack, an Macdonald SF's.
[df59b0a](https://github.com/sagemath/sagetrac-mirror/commit/df59b0a)Removed deprecated LLT functions and fixed kschur.py doctests.
[ddea29a](https://github.com/sagemath/sagetrac-mirror/commit/ddea29a)Removed additional SymmetricFunctionAlgebras in symmetrica.pxi.
[35e6b34](https://github.com/sagemath/sagetrac-mirror/commit/35e6b34)trac #15473: symmetric function fixes
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

[7f9be88](https://github.com/sagemath/sagetrac-mirror/commit/7f9be88)reinstating a couple doctests, and removing a superficial Qqt definition (there were two in the same file)
[ca45cad](https://github.com/sagemath/sagetrac-mirror/commit/ca45cad)Merge branch 'public/combinat/sf/fixes-15473' of trac.sagemath.org:sage into 15473
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Changed commit from 4277d46 to 7f9be88

darijgr commented 10 years ago
comment:14

Thanks for the review again! Good job clearing up the deprecations. If these couple new changes are fine, please set to positive_review.

tscrim commented 10 years ago
comment:15

Looks good to me.