summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-mathematics/sage/files/sage-4.4.2-jinja2.patch')
-rw-r--r--sci-mathematics/sage/files/sage-4.4.2-jinja2.patch319
1 files changed, 319 insertions, 0 deletions
diff --git a/sci-mathematics/sage/files/sage-4.4.2-jinja2.patch b/sci-mathematics/sage/files/sage-4.4.2-jinja2.patch
new file mode 100644
index 0000000..4baac66
--- /dev/null
+++ b/sci-mathematics/sage/files/sage-4.4.2-jinja2.patch
@@ -0,0 +1,319 @@
+--- sage/ext/gen_interpreters.py.orig 2010-05-22 16:10:12.349829112 +1200
++++ sage/ext/gen_interpreters.py 2010-05-22 16:09:19.408829582 +1200
+@@ -98,8 +98,8 @@
+
+ import os
+ import re
+-from jinja import Environment
+-from jinja.datastructure import ComplainingUndefined
++from jinja2 import Environment
++from jinja2.runtime import StrictUndefined
+ from collections import defaultdict
+ from distutils.extension import Extension
+
+@@ -114,12 +114,12 @@
+ ##############################
+
+
+-# We share a single jinja environment among all templating in this file.
+-# We use trim_blocks=True (which means that we ignore white space after
+-# "%}" jinja command endings), and set undefined_singleton to complain
+-# if we use an undefined variable.
+-jinja_env = Environment(trim_blocks=True,
+- undefined_singleton=ComplainingUndefined)
++# We share a single jinja2 environment among all templating in this
++# file. We use trim_blocks=True (which means that we ignore white
++# space after "%}" jinja2 command endings), and set undefined to
++# complain if we use an undefined variable.
++jinja_env = Environment(trim_blocks=True, undefined=StrictUndefined)
++
+ # Allow 'i' as a shorter alias for the built-in 'indent' filter.
+ jinja_env.filters['i'] = jinja_env.filters['indent']
+
+@@ -169,7 +169,7 @@
+ if len(template) > 0 and template[0] == '\n':
+ template = template[1:]
+
+- # It looks like Jinja automatically removes one trailing newline?
++ # It looks like Jinja2 automatically removes one trailing newline?
+ if len(template) > 0 and template[-1] == '\n':
+ template = template + '\n'
+
+@@ -424,8 +424,8 @@
+ return je("""
+ {# XXX Variables here (and everywhere, really) should actually be Py_ssize_t #}
+ cdef int _n_{{ name }}
+- cdef {{ self.cython_array_type() }} _{{ name }}
+-""", self=self, name=name)
++ cdef {{ myself.cython_array_type() }} _{{ name }}
++""", myself=self, name=name)
+
+ def alloc_chunk_data(self, name, len):
+ r"""
+@@ -444,13 +444,13 @@
+ """
+ return je("""
+ self._n_{{ name }} = {{ len }}
+- self._{{ name }} = <{{ self.c_ptr_type() }}>sage_malloc(sizeof({{ self.c_decl_type() }}) * {{ len }})
++ self._{{ name }} = <{{ myself.c_ptr_type() }}>sage_malloc(sizeof({{ myself.c_decl_type() }}) * {{ len }})
+ if self._{{ name }} == NULL: raise MemoryError
+-{% if self.needs_cython_init_clear() %}
++{% if myself.needs_cython_init_clear() %}
+ for i in range({{ len }}):
+- {{ self.cython_init('self._%s[i]' % name) }}
++ {{ myself.cython_init('self._%s[i]' % name) }}
+ {% endif %}
+-""", self=self, name=name, len=len)
++""", myself=self, name=name, len=len)
+
+ def dealloc_chunk_data(self, name):
+ r"""
+@@ -473,12 +473,12 @@
+ """
+ return je("""
+ if self._{{ name }}:
+-{% if self.needs_cython_init_clear() %}
++{% if myself.needs_cython_init_clear() %}
+ for i in range(self._n_{{ name }}):
+- {{ self.cython_clear('self._%s[i]' % name) }}
++ {{ myself.cython_clear('self._%s[i]' % name) }}
+ {% endif %}
+ sage_free(self._{{ name }})
+-""", self=self, name=name)
++""", myself=self, name=name)
+
+ class StorageTypeAssignable(StorageType):
+ r"""
+@@ -671,8 +671,8 @@
+ return je("""
+ cdef object _list_{{ name }}
+ cdef int _n_{{ name }}
+- cdef {{ self.cython_array_type() }} _{{ name }}
+-""", self=self, name=name)
++ cdef {{ myself.cython_array_type() }} _{{ name }}
++""", myself=self, name=name)
+
+ def alloc_chunk_data(self, name, len):
+ r"""
+@@ -691,7 +691,7 @@
+ self._n_{{ name }} = {{ len }}
+ self._list_{{ name }} = PyList_New(self._n_{{ name }})
+ self._{{ name }} = (<PyListObject *>self._list_{{ name }}).ob_item
+-""", self=self, name=name, len=len)
++""", myself=self, name=name, len=len)
+
+ def dealloc_chunk_data(self, name):
+ r"""
+@@ -901,8 +901,8 @@
+ sage: ty_mpfr.cython_init('foo[i]')
+ u'mpfr_init2(foo[i], self.domain.prec())'
+ """
+- return je("mpfr_init2({{ loc }}, self.domain{{ self.id }}.prec())",
+- self=self, loc=loc)
++ return je("mpfr_init2({{ loc }}, self.domain{{ myself.id }}.prec())",
++ myself=self, loc=loc)
+
+ def cython_clear(self, loc):
+ r"""
+@@ -928,8 +928,8 @@
+ u'rn = self.domain(bar[j])\nmpfr_set(foo[i], rn.value, GMP_RNDN)'
+ """
+ return je("""
+-rn{{ self.id }} = self.domain({{ py }})
+-mpfr_set({{ c }}, rn.value, GMP_RNDN)""", self=self, c=c, py=py)
++rn{{ myself.id }} = self.domain({{ py }})
++mpfr_set({{ c }}, rn.value, GMP_RNDN)""", myself=self, c=c, py=py)
+
+ ty_mpfr = StorageTypeMPFR()
+
+@@ -1184,9 +1184,9 @@
+ <BLANKLINE>
+ """
+ return je("""
+- count = args['{{ self.name }}']
+-{% print self.storage_type.alloc_chunk_data(self.name, 'count') %}
+-""", self=self)
++ count = args['{{ myself.name }}']
++{% print myself.storage_type.alloc_chunk_data(myself.name, 'count') %}
++""", myself=self)
+
+ def dealloc_class_members(self):
+ r"""
+@@ -1249,11 +1249,11 @@
+ <BLANKLINE>
+ """
+ return je("""
+- val = args['{{ self.name }}']
+-{% print self.storage_type.alloc_chunk_data(self.name, 'len(val)') %}
++ val = args['{{ myself.name }}']
++{% print myself.storage_type.alloc_chunk_data(myself.name, 'len(val)') %}
+ for i in range(len(val)):
+- {{ self.storage_type.assign_c_from_py('self._%s[i]' % self.name, 'val[i]') | i(12) }}
+-""", self=self)
++ {{ myself.storage_type.assign_c_from_py('self._%s[i]' % myself.name, 'val[i]') | i(12) }}
++""", myself=self)
+
+ class MemoryChunkArguments(MemoryChunkLonglivedArray):
+ r"""
+@@ -1282,11 +1282,11 @@
+ <BLANKLINE>
+ """
+ return je("""
+-cdef {{ self.storage_type.c_ptr_type() }} c_args = self._args
++cdef {{ myself.storage_type.c_ptr_type() }} c_args = self._args
+ cdef int i
+ for i from 0 <= i < len(args):
+- {{ self.storage_type.assign_c_from_py('self._args[i]', 'args[i]') | i(4) }}
+-""", self=self)
++ {{ myself.storage_type.assign_c_from_py('self._args[i]', 'args[i]') | i(4) }}
++""", myself=self)
+
+ def pass_argument(self):
+ r"""
+@@ -1383,9 +1383,9 @@
+ # XXX This is a lot slower than it needs to be, because
+ # we don't have a "cdef int i" in scope here.
+ return je("""
+-for i in range(self._n_{{ self.name }}):
+- Py_CLEAR(self._{{ self.name }}[i])
+-""", self=self)
++for i in range(self._n_{{ myself.name }}):
++ Py_CLEAR(self._{{ myself.name }}[i])
++""", myself=self)
+
+ class MemoryChunkRRRetval(MemoryChunk):
+ r"""
+@@ -1418,8 +1418,8 @@
+ u' cdef RealNumber retval = (self.domain)()\n'
+ """
+ return je("""
+- cdef RealNumber {{ self.name }} = (self.domain)()
+-""", self=self)
++ cdef RealNumber {{ myself.name }} = (self.domain)()
++""", myself=self)
+
+ def pass_argument(self):
+ r"""
+@@ -1432,7 +1432,7 @@
+ sage: mc.pass_argument()
+ u'&retval.value'
+ """
+- return je("""&{{ self.name }}.value""", self=self)
++ return je("""&{{ myself.name }}.value""", myself=self)
+
+ def pass_call_c_argument(self):
+ r"""
+@@ -1479,9 +1479,9 @@
+ u" count = args['args']\n self._n_args = count\n"
+ """
+ return je("""
+- count = args['{{ self.name }}']
++ count = args['{{ myself.name }}']
+ self._n_args = count
+-""", self=self)
++""", myself=self)
+
+ def setup_args(self):
+ r"""
+@@ -1579,8 +1579,8 @@
+ u' cdef object _domain\n'
+ """
+ return je("""
+- cdef object _{{ self.name }}
+-""", self=self)
++ cdef object _{{ myself.name }}
++""", myself=self)
+
+ def init_class_members(self):
+ r"""
+@@ -1595,8 +1595,8 @@
+ u" self._domain = args['domain']\n"
+ """
+ return je("""
+- self._{{ self.name }} = args['{{ self.name }}']
+-""", self=self)
++ self._{{ myself.name }} = args['{{ myself.name }}']
++""", myself=self)
+
+ def declare_parameter(self):
+ r"""
+@@ -2967,22 +2967,22 @@
+ /* Automatically generated by ext/gen_interpreters.py. Do not edit! */
+ #include <Python.h>
+ {% print s.header %}
+-{{ self.func_header() }} {
++{{ myself.func_header() }} {
+ while (1) {
+ switch (*code++) {
+-""", s=s, self=self, i=indent_lines))
++""", s=s, myself=self, i=indent_lines))
+ for instr_desc in s.instr_descs:
+ self.gen_code(instr_desc, w)
+ w(je("""
+ }
+ }
+-{% if self.uses_error_handler %}
++{% if myself.uses_error_handler %}
+ error:
+ return {{ s.err_return }};
+ {% endif %}
+ }
+
+-""", s=s, i=indent_lines, self=self))
++""", s=s, i=indent_lines, myself=self))
+
+ def write_wrapper(self, write):
+ r"""
+@@ -3059,7 +3059,7 @@
+ from sage.ext.fast_callable cimport Wrapper
+ {% print s.pyx_header %}
+
+-cdef extern {{ self.func_header(cython=true) -}}
++cdef extern {{ myself.func_header(cython=true) -}}
+ {% if s.err_return != 'NULL' %}
+ except? {{ s.err_return -}}
+ {% endif %}
+@@ -3146,7 +3146,7 @@
+ {% endfor %}
+ ],
+ ipow_range={{ s.ipow_range }})
+-""", s=s, self=self, types=types, arg_ch=arg_ch, indent_lines=indent_lines, the_call=the_call, the_call_c=the_call_c, do_cleanup=do_cleanup))
++""", s=s, myself=self, types=types, arg_ch=arg_ch, indent_lines=indent_lines, the_call=the_call, the_call_c=the_call_c, do_cleanup=do_cleanup))
+
+ def write_pxd(self, write):
+ r"""
+@@ -3199,7 +3199,7 @@
+ {{ arg_ch.storage_type.c_ptr_type() }} args,
+ {{ arg_ch.storage_type.c_ptr_type() }} result) except 0
+ {% endif %}
+-""", s=s, self=self, types=types, indent_lines=indent_lines, arg_ch=arg_ch))
++""", s=s, myself=self, types=types, indent_lines=indent_lines, arg_ch=arg_ch))
+
+ def get_interpreter(self):
+ r"""
+--- sage/server/notebook/template.py.orig 2010-05-22 16:11:11.629830799 +1200
++++ sage/server/notebook/template.py 2010-05-22 16:09:19.431829934 +1200
+@@ -28,12 +28,12 @@
+ # The full text of the GPL is available at:
+ # http://www.gnu.org/licenses/
+ #############################################################################
+-import jinja
++import jinja2
+ import sage.misc.misc
+ from sage.version import version
+
+ TEMPLATE_PATH = sage.misc.misc.SAGE_ROOT + '/devel/sage/sage/server/notebook/templates'
+-env = jinja.Environment(loader=jinja.FileSystemLoader(TEMPLATE_PATH))
++env = jinja2.Environment(loader=jinja2.FileSystemLoader(TEMPLATE_PATH))
+
+ def contained_in(container):
+ """
+@@ -100,7 +100,7 @@
+ """
+ try:
+ tmpl = env.get_template(filename)
+- except jinja.exceptions.TemplateNotFound:
++ except jinja2.exceptions.TemplateNotFound:
+ return template('template_error.html', template=filename)
+ context = dict(default_context)
+ context.update(user_context)