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
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
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], '')])
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)')