bebraw
1/10/2010 - 7:35 AM

python.py

class Python:
    priority = 'low'

    def matches(self, expression):
        return True

    def execute(self, expression, variables):
        '''
        >>> from py.test import raises

        >>> python = Python()

        >>> python.execute('5+13', {})
        18

        >>> python.execute('a+7', {'a': 13, })
        20

        >>> exception = raises(NameError, python.execute, 'foobar', {})
        >>> exception.typename
        'NameError'
        '''
        return eval(expression, {}, variables)

if __name__ == "__main__":
    import doctest
    doctest.testmod()