Sophie

Sophie

distrib > Mandriva > 2010.1 > i586 > by-pkgid > 9da83a8bc265938a49778802db2ba7c9 > files > 1

polybori-0.6.3.20091028-7mdv2010.1.src.rpm

diff -p -up polybori-0.6.3-20091028/src/polybori-0.6/ipbori/ipbori.orig polybori-0.6.3-20091028/src/polybori-0.6/ipbori/ipbori
--- polybori-0.6.3-20091028/src/polybori-0.6/ipbori/ipbori.orig	2009-10-28 08:47:25.000000000 -0200
+++ polybori-0.6.3-20091028/src/polybori-0.6/ipbori/ipbori	2010-02-04 16:22:36.854123237 -0200
@@ -65,5 +65,12 @@ cd ${OLDPWD}
 # installing the profile, but custom settings like IPYTHONDIR/ipythonrc are
 # still available. 
 # (For the latter, ipythonrc-polybori needs to import ipythonrc.)
+export DOT_SAGE="$HOME/.sage/"
+export SAGE_ROOT="/usr/share/sage"
+export SAGE_LOCAL="/usr/share/sage/local"
+export SAGE_DOC="/usr/share/sage/devel/doc"
+export SINGULARPATH=/usr/share/singular/LIB
+export SINGULAR_BIN_DIR=/usr/share/singular/x86_64
+export PYTHONPATH=/usr/share/sage/site-packages
 ${IPYTHONPREFIX}ipython -rcfile ${IPBDIR}/ipythonrc-polybori  $@
 
diff -p -up polybori-0.6.3-20091028/src/polybori-0.6/pyroot/polybori/PyPolyBoRi.py.orig polybori-0.6.3-20091028/src/polybori-0.6/pyroot/polybori/PyPolyBoRi.py
--- polybori-0.6.3-20091028/src/polybori-0.6/pyroot/polybori/PyPolyBoRi.py.orig	2010-02-04 16:20:51.371020971 -0200
+++ polybori-0.6.3-20091028/src/polybori-0.6/pyroot/polybori/PyPolyBoRi.py	2010-02-04 16:21:46.715017209 -0200
@@ -1,124 +1,25 @@
-from sys import modules
-from itertools import chain
-import re
-import warnings
-compatibility_mode=False
-# First try, whether PyPolyBoRi is already in modules (e.g. static profiling)
-try:
-    pb = modules["PyPolyBoRi"]
-    for k in dir(pb):
-        globals()[k]=getattr(pb,k)   
-except:
-    from polybori.dynamic.PyPolyBoRi import *
-def replace_init_proc(cls):
-    old_init=cls.__init__
-    def init(self,iteratable=None):
-        old_init(self)
-        if iteratable:
-            for item in iteratable:
-                self.append(item)
-    cls.__init__=init
-    
-replace_init_proc(BoolePolynomialVector)
-replace_init_proc(IntVector)
-
-monomial_old_init=Monomial.__init__
-def monomial_new_init(self,arg=None):
-    if arg==None:
-        monomial_old_init(self)
-    else:
-        try:
-            monomial_old_init(self,arg)
-        except:
-            prototype=Monomial()
-            items=sorted((x for x in arg),reverse=True, key=top_index)
-            for x in items:
-                prototype*=x
-            monomial_old_init(self,prototype)
-Monomial.__init__=monomial_new_init
-booleset_old_init=BooleSet.__init__
-def booleset_new_init(self,arg=None, second=None):
-    if arg==None:
-        booleset_old_init(self)
-    elif second != None:
-        booleset_old_init(self, arg, second)
-    else:
-        try:
-            booleset_old_init(self,arg)
-        except:
-            s=set()
-            v=BoolePolynomialVector()
-            for i in list(arg):
-                s.add(Monomial(i))
-            for i in s:
-                v.append(i)
-            p=add_up_polynomials(v)
-            booleset_old_init(self,p.set())
-BooleSet.__init__=booleset_new_init
-
-for k in OrderCode.values:
-    globals()[str(OrderCode.values[k])]=OrderCode.values[k]
-
-monomial_cplusplus_div = Monomial.__div__
-
-def monomial_python_div(self, arg):
-    try:
-        return monomial_cplusplus_div(self, arg)
-    except ValueError:
-        return Polynomial(0, self.ring())
-
-Monomial.__div__ = monomial_python_div
-
-variable_cplusplus_div = Variable.__div__
-
-def variable_python_div(self, arg):
-    try:
-        return variable_cplusplus_div(self,arg)
-    except ValueError:
-        return Polynomial(0, self.ring())
-
-Variable.__div__ = variable_python_div
-_gauss_on_polys=gauss_on_polys
-def gauss_on_polys(l):
-    vec=BoolePolynomialVector(l)
-    return list(_gauss_on_polys(vec))
-
-snake_pattern=re.compile('(((?<=[a-z])[A-Z])|([A-Z](?![A-Z]|$)))')
-def to_snake_case(s):
-    return snake_pattern.sub('_\\1', s).lower().strip('_')
-    
-def warn_snake_case(a, snaked):
-    warnings.warn("access to %s is deprecated, use %s instead" % (a, snaked), stacklevel=3)
-def _strategy_getattr(self, a):
-    if hasattr(self.reduction_strategy, a):
-        return getattr(self.reduction_strategy,a)
-    snaked=to_snake_case(a)
-
-    if snaked in self.__dict__:
-        warn_snake_case(a, snaked)
-        return self.__dict__[snaked]
-    if hasattr(self.reduction_strategy, snaked):
-        warn_snake_case(a, snaked)
-        return getattr(self.reduction_strategy, snaked)
-    raise AttributeError
-def _strategy_setattr(self, a, v):
-    if a in self.__dict__:
-        self.__dict__[a]=v
-        return
-    if hasattr(self.reduction_strategy, a):
-        return setattr(self.reduction_strategy, a, v)
-    snaked=to_snake_case(a)
-    if snaked in self.__dict__:
-        warn_snake_case(a, snaked)
-        return setattr(self, snaked, v)
-    
-    if hasattr(self.reduction_strategy, snaked):
-        warn_snake_case(a, snaked)
-        return setattr(self.reduction_strategy, snaked, v)
-    self.__dict__[a]=v
-if compatibility_mode:
-    GroebnerStrategy.__getattr__=_strategy_getattr
-    GroebnerStrategy.__setattr__=_strategy_setattr
+from sage import all
+from sage.rings.polynomial.pbori import *
+
+def global_ring():
+    return get_cring()
+
+Polynomial = PolynomialFactory()
+
+Monomial = MonomialFactory()
+
+class OrderCode:
+    pass
+
+OrderCode.__dict__ = order_dict
+
+Variable = VariableFactory()
+
+def Ring(n, order='lp'):
+    return BooleanPolynomialRing(n, 'x', order=order)
+
+BoolePolynomialVector = BooleanPolynomialVector
+
 
 _add_up_polynomials=add_up_polynomials
 def add_up_polynomials(polys):
diff -p -up polybori-0.6.3-20091028/src/polybori-0.6/SConstruct.orig polybori-0.6.3-20091028/src/polybori-0.6/SConstruct
--- polybori-0.6.3-20091028/src/polybori-0.6/SConstruct.orig	2009-10-28 08:47:24.000000000 -0200
+++ polybori-0.6.3-20091028/src/polybori-0.6/SConstruct	2010-02-04 16:21:46.719021393 -0200
@@ -321,7 +321,7 @@ env.AppendUnique(PYTHONSITE = pyconf.sit
 Help(opts.GenerateHelpText(env))
 
 have_l2h = have_t4h = False
-external_m4ri = False
+external_m4ri = True
 
 if not env.GetOption('clean'):
     conf = Configure(env)
@@ -676,21 +676,21 @@ if HAVE_PYTHON_EXTENSION or extern_pytho
 
         return (target, source)
 
-    bld = Builder(action = "$PYTHON doc/python/genpythondoc.py " + pyroot,
-                  emitter = pypb_emitter)
+#    bld = Builder(action = "$PYTHON doc/python/genpythondoc.py " + pyroot,
+#                  emitter = pypb_emitter)
 
     # Add the new Builder to the list of builders
-    env['BUILDERS']['PYTHONDOC'] = bld
+#    env['BUILDERS']['PYTHONDOC'] = bld
 
     # Generate foo.vds from foo.txt using mk_vds
     #for f in Split("ll.py nf.py gbrefs.py blocks.py PyPolyBoRi.so specialsets.py"):
-    if have_pydoc:
-        pydocu = env.PYTHONDOC(target=[DocPath('python/polybori.html'),
-                                       DocPath('python/polybori.dynamic.html')],
-                               source = documentable_python_modules)
+#    if have_pydoc:
+#        pydocu = env.PYTHONDOC(target=[DocPath('python/polybori.html'),
+#                                       DocPath('python/polybori.dynamic.html')],
+#                               source = documentable_python_modules)
 
-        env.Clean(pydocu, glob(PyRootPath('polybori/*.pyc')) +
-                  glob(PyRootPath('polybori/dynamic/*.pyc')))
+#        env.Clean(pydocu, glob(PyRootPath('polybori/*.pyc')) +
+#                  glob(PyRootPath('polybori/dynamic/*.pyc')))
 #        env.Ignore(pydocu, dynamic_modules)
     #bld=Builder("cd")
 
@@ -771,10 +771,10 @@ if distribute or rpm_generation or deb_g
         allsrcs.append(env.Dir(TestsPath(dirname)))
 
     # doc is not distributed completely
-    allsrcs += [ DocPath(dsrc) for dsrc in Split("""doxygen.conf index.html.in
-    tutorial/tutorial.tex tutorial/tutorial_content.tex python/genpythondoc.py
-    man/ipbori.1 """) ]
-    allsrcs.append(env.Dir(DocPath('images')))
+#    allsrcs += [ DocPath(dsrc) for dsrc in Split("""doxygen.conf index.html.in
+#    tutorial/tutorial.tex tutorial/tutorial_content.tex python/genpythondoc.py
+#    man/ipbori.1 """) ]
+#    allsrcs.append(env.Dir(DocPath('images')))
 
 if distribute:
     presrcdistri = env.DistTar(debname, allsrcs)
@@ -1232,6 +1232,11 @@ if 'install' in COMMAND_LINE_TARGETS:
     env.AlwaysBuild(ipboribin)   
     env.Alias('install', ipboribin)
 
+    # we dump the flags for reuse by Sage
+    if not path.exists(InstPath()):
+        Execute(Mkdir(InstPath())) 
+    opts.Save(InstPath("flags.conf"), env)
+
 env.Alias('prepare-devel', devellibs + readabledevellibs)
 env.Alias('prepare-install', [pyroot, DocPath()])