improved python2.3 support
authorArmin Ronacher <armin.ronacher@active-4.com>
Sun, 9 Dec 2007 21:53:46 +0000 (22:53 +0100)
committerArmin Ronacher <armin.ronacher@active-4.com>
Sun, 9 Dec 2007 21:53:46 +0000 (22:53 +0100)
--HG--
branch : trunk

jinja/filters.py
jinja/lexer.py
jinja/loaders.py
tests/test_syntax.py

index 7cd5e706d2664da6cc90f17411536252a97e9a47..2902919e3ed11c3baaaeef4b721a6c13567e70e8 100644 (file)
 """
 import re
 from random import choice
-from operator import itemgetter
+try:
+    from operator import itemgetter
+except ImportError:
+    itemgetter = lambda a: lambda b: b[a]
 from urllib import urlencode, quote
 from jinja.utils import urlize, escape, reversed, sorted, groupby, \
      get_attribute, pformat
index 974bc39cf117528c92af5d80763a44aa81b6223e..ef0b537d11238a8978927c97e6af4c99e83734c2 100644 (file)
@@ -45,7 +45,7 @@ string_re = re.compile(r"('([^'\\]*(?:\\.[^'\\]*)*)'"
                        r'|"([^"\\]*(?:\\.[^"\\]*)*)")(?ms)')
 integer_re = re.compile(r'\d+')
 float_re = re.compile(r'\d+\.\d+')
-regex_re = re.compile(r'@/([^/\\]*(?:\\.[^/\\]*)*)*/[a-z]*(?ms)')
+regex_re = re.compile(r'\@/([^/\\]*(?:\\.[^/\\]*)*)*/[a-z]*(?ms)')
 
 
 # set of used keywords
index b76df4ffa105f0187b9e3a1b378747bac77d1d9b..e3dccde26476999a3f7b21b0bbc2e0cc749dd83d 100644 (file)
@@ -150,7 +150,7 @@ class ControlledLoader(LoaderWrapper):
         try:
             new_method.__name__ = method.__name__
             new_method.__doc__ = method.__doc__
-        except AttributeError:
+        except:
             pass
         return new_method
 
index abcd0586d66f98863fc069f329f4b0fbf113d8c1..c31c0fbc5f0c33f6740be132b0d7022f051632ae 100644 (file)
@@ -28,7 +28,7 @@ GROUPING = '''{{ (true and false) or (false and true) and not false }}'''
 CONDEXPR = '''{{ 0 if true else 1 }}'''
 DJANGOATTR = '''{{ [1, 2, 3].0 }}'''
 FILTERPRIORITY = '''{{ "foo"|upper + "bar"|upper }}'''
-REGEX = '''{{ @/\S+/.findall('foo bar baz') }}'''
+REGEX = r'''{{ @/\S+/.findall('foo bar baz') }}'''
 TUPLETEMPLATES = [
     '{{ () }}',
     '{{ (1, 2) }}',
@@ -110,7 +110,7 @@ def test_inop(env):
 
 def test_literals(env):
     tmpl = env.from_string(LITERALS)
-    assert tmpl.render() == '[]|{}|()||set([])'
+    assert tmpl.render().lower() == '[]|{}|()||set([])'
 
 
 def test_bool(env):
@@ -174,7 +174,7 @@ def test_tuple_expr(env):
 
 def test_trailing_comma(env):
     tmpl = env.from_string(TRAILINGCOMMA)
-    assert tmpl.render() == '(1, 2)|[1, 2]|{1: 2}|set([1, 2])'
+    assert tmpl.render().lower() == '(1, 2)|[1, 2]|{1: 2}|set([1, 2])'
 
 
 def test_extends_position():