예제 #1
0
def verify_source(source):
    tree = fix_tree(parse(source, 'exec'))
    code = pycodegen.ModuleCodeGenerator(tree).getCode()
    generator = ModuleSourceCodeGenerator(tree)
    source = generator.getSourceCode()
    tree = fix_tree(parse(source, 'exec'))
    if code.co_code != pycodegen.ModuleCodeGenerator(tree).getCode().co_code:
        return source
예제 #2
0
def verify_source(source):
    tree = fix_tree(parse(source, 'exec'))
    code = pycodegen.ModuleCodeGenerator(tree).getCode()
    generator = ModuleSourceCodeGenerator(tree)
    generated = generator.getSourceCode()
    try:
        new = fix_tree(parse(generated, 'exec'))
    except SyntaxError:
        return generated

    old = code.co_code
    new = pycodegen.ModuleCodeGenerator(new).getCode().co_code

    if old != new:
        return generated
예제 #3
0
def verify_source(source):
    tree = fix_tree(parse(source, 'exec'))
    code = pycodegen.ModuleCodeGenerator(tree).getCode()
    generator = ModuleSourceCodeGenerator(tree)
    generated = generator.getSourceCode()
    try:
        new = fix_tree(parse(generated, 'exec'))
    except SyntaxError:
        return generated

    old = code.co_code
    new = pycodegen.ModuleCodeGenerator(new).getCode().co_code

    if old != new:
        return generated
예제 #4
0
 def assertNamesIsHandled(self, name):
     try:
         from sourcecodegen.generation import ModuleSourceCodeGenerator
         tree = compiler.parse(name)
         source = ModuleSourceCodeGenerator(tree).getSourceCode()[:-1] #strip newline
         if source != name:
             print('pycodegen: %s != %s' % (source, name))
     except ImportError:
         pass
     out = self.getModule("""
     def f(a=%s):
         pass
     """ % name)
     self.assertEqual(out['FUNCTIONS'], [('TestPackage.TestModule.f', ['a=%s' % name], '')])
예제 #5
0
 def testSliceobj(self):
     node = ast.Sliceobj([ast.Const(1), ast.Const(2), ast.Const(3)])
     source = ModuleSourceCodeGenerator(node).getSourceCode()
     self.assertEqual(source, 'slice(1, 2, 3)')