...

Commits (3)
 ... ... @@ -5,9 +5,11 @@ EXAMPLES:: sage: from sagetypes import Exporter sage: e = Exporter() sage: e.harvest_categories() sage: e.harvest_sage_object(TransitiveGroups()) sage: e.harvest_sage_object(TransitiveGroup(4,1)) sage: e.harvest_sage_object(TransitiveGroup(4,1).an_element()) sage: for P in [ TransitiveGroup(4,1), Partitions(100), QQ['x,y'] ]: ....: e.harvest_sage_object(P) ....: e.harvest_sage_object(P.an_element()) sage: e.save('transitive_groups.json') .. TODO:: ... ... @@ -16,9 +18,49 @@ EXAMPLES:: - How to separate mathematical metadata from technical stuff - Currently, the metadata for an instance is added to that of its class; if there are several instances with the same class, the last one wins sage: import openmath.convert sage: from openmath import openmath as om sage: o = om.OMApplication(om.OMSymbol(name='apply_function', cd='python'), ....: [openmath.convert.to_openmath(x) for x in ["sage.rings.finite_rings.integer_mod_ring.IntegerModRing", int(3)]]) sage: openmath.convert.to_python(o) Ring of integers modulo 3 sage: o = om.OMApplication(om.OMSymbol(name='apply_function', cd='python'), ....: [openmath.convert.to_openmath(x) for x in ....: ["GL", int(3), int(4)]]) sage: openmath.convert.to_python(o) General Linear Group of degree 3 over Finite Field in a of size 2^2 n = 3 GL(n, n) om.OMAttribution(om.OMAttributionPairs([ [ om.OMSymbol(name='n'), om.OMInteger(3) ] ], om.OMApplication(om.OMSymbol(name='apply_function', cd='python'), [OMString("GL"), n """ import json import json, importlib import openmath.convert def apply_python_function(o): f = openmath.convert.to_python(o.arguments[0]).split(".") module = '.'.join(f[:-1]) if not module: module = "sage.all" module = importlib.import_module(module) f = getattr(module, f[-1]) return f(*[openmath.convert.to_python(arg) for arg in o.arguments[1:]]) openmath.convert.register_to_python('python', 'apply_function', apply_python_function ) from sage.misc.misc import attrcall from sage.misc.cachefunc import cached_function from sage.misc.abstract_method import AbstractMethod ... ... @@ -32,6 +74,8 @@ from sage.structure.parent import Parent from sage.structure.sage_object import SageObject # import mygap def related_categories(category): result = list(category.super_categories()) for key,value in category.__class__.__base__.__dict__.iteritems(): ... ...
This diff is collapsed.