reloaded now.
- Implemented a block ``set`` tag.
- Default cache size was incrased to 400 from a low 50.
+- Fixed ``is number`` test to accept long integers in all Python versions.
Version 2.7.3
-------------
range_type = range
text_type = str
string_types = (str,)
+ integer_types = (int,)
iterkeys = lambda d: iter(d.keys())
itervalues = lambda d: iter(d.values())
text_type = unicode
range_type = xrange
string_types = (str, unicode)
+ integer_types = (int, long)
iterkeys = lambda d: d.iterkeys()
itervalues = lambda d: d.itervalues()
import re
from collections import Mapping
from jinja2.runtime import Undefined
-from jinja2._compat import text_type, string_types
+from jinja2._compat import text_type, string_types, integer_types
number_re = re.compile(r'^-?\d+(\.\d+)?$')
def test_number(value):
"""Return true if the variable is a number."""
- return isinstance(value, (int, float, complex))
+ return isinstance(value, integer_types + (float, complex))
def test_sequence(value):
{{ {} is mapping }}
{{ mydict is mapping }}
{{ [] is mapping }}
+ {{ 10 is number }}
+ {{ (10 ** 100) is number }}
''')
class MyDict(dict):
pass
assert tmpl.render(mydict=MyDict()).split() == [
'False', 'True', 'False', 'True', 'True', 'False',
'True', 'True', 'True', 'True', 'False', 'True',
- 'True', 'True', 'False'
+ 'True', 'True', 'False', 'True', 'True'
]
def test_sequence(self):