Changeset 39 for trunk

Show
Ignore:
Timestamp:
25/01/05 09:14:30 (7 years ago)
Author:
steve
Message:

Patched for jython 2.1 compatibility

Location:
trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/airspeed.py

    r38 r39  
    88__all__ = ['Template', 'TemplateError', 'TemplateSyntaxError', 'CachingFileLoader'] 
    99 
     10 
     11############################################################################### 
     12# Compatibility for old Pythons & Jython 
     13############################################################################### 
     14try: True 
     15except NameError: 
     16    False, True = 0, 1 
     17try: dict 
     18except NameError: 
     19    from UserDict import UserDict 
     20    class dict(UserDict): 
     21        def __init__(self): self.data = {} 
     22try: operator.__gt__ 
     23except AttributeError: 
     24    operator.__gt__ = lambda a, b: a > b 
     25    operator.__lt__ = lambda a, b: a < b 
     26    operator.__ge__ = lambda a, b: a >= b 
     27    operator.__le__ = lambda a, b: a <= b 
     28    operator.__eq__ = lambda a, b: a == b 
     29    operator.__ne__ = lambda a, b: a != b 
    1030 
    1131############################################################################### 
     
    85105    def load_template(self, name): 
    86106        mtime = os.path.getmtime(self.filename_of(name)) 
    87         if name in self.known_templates: 
     107        if self.known_templates.has_key(name): 
    88108            template, prev_mtime = self.known_templates[name] 
    89109            if mtime <= prev_mtime: 
     
    268288 
    269289    def calculate(self, namespace, loader): 
    270         for value in self.values: 
    271             yield value.calculate(namespace, loader) 
     290        return [value.calculate(namespace, loader) for value in self.values] 
    272291 
    273292 
     
    534553    def evaluate(self, stream, namespace, loader): 
    535554        macro_key = '#' + self.macro_name.lower() 
    536         if macro_key in namespace: 
     555        if namespace.has_key(macro_key): 
    537556            raise Exception("cannot redefine macro") 
    538557        namespace[macro_key] = self 
     
    637656        counter = 1 
    638657        try: 
     658            if hasattr(iterable, 'keys'): iterable = iterable.keys() 
     659            if not hasattr(iterable, '__getitem__'): 
     660                raise AttributeError("value for $%s is not iterable in #foreach: %s" % (self.loop_var_name, iterable)) 
    639661            for item in iterable: 
    640662                namespace = LocalNamespace(namespace) 
  • trunk/airspeed_test.py

    r38 r39  
    33from unittest import TestCase, main 
    44import airspeed 
     5 
     6############################################################################### 
     7# Compatibility for old Pythons & Jython 
     8############################################################################### 
     9try: True 
     10except NameError: 
     11    False, True = 0, 1 
    512 
    613