X7ROOT File Manager
Current Path:
/lib64/python2.7/compiler
lib64
/
python2.7
/
compiler
/
??
..
??
__init__.py
(1023 B)
??
__init__.pyc
(1.27 KB)
??
__init__.pyo
(1.27 KB)
??
ast.py
(36.63 KB)
??
ast.pyc
(70.43 KB)
??
ast.pyo
(70.43 KB)
??
consts.py
(468 B)
??
consts.pyc
(737 B)
??
consts.pyo
(737 B)
??
future.py
(1.85 KB)
??
future.pyc
(2.89 KB)
??
future.pyo
(2.89 KB)
??
misc.py
(1.75 KB)
??
misc.pyc
(3.65 KB)
??
misc.pyo
(3.65 KB)
??
pyassem.py
(23.7 KB)
??
pyassem.pyc
(25.34 KB)
??
pyassem.pyo
(24.78 KB)
??
pycodegen.py
(46.69 KB)
??
pycodegen.pyc
(55.19 KB)
??
pycodegen.pyo
(54.76 KB)
??
symbols.py
(14.15 KB)
??
symbols.pyc
(17.26 KB)
??
symbols.pyo
(17.23 KB)
??
syntax.py
(1.41 KB)
??
syntax.pyc
(1.84 KB)
??
syntax.pyo
(1.84 KB)
??
transformer.py
(51.87 KB)
??
transformer.pyc
(46.53 KB)
??
transformer.pyo
(44.76 KB)
??
visitor.py
(3.8 KB)
??
visitor.pyc
(4.09 KB)
??
visitor.pyo
(4.09 KB)
Editing: future.py
"""Parser for future statements """ from compiler import ast, walk def is_future(stmt): """Return true if statement is a well-formed future statement""" if not isinstance(stmt, ast.From): return 0 if stmt.modname == "__future__": return 1 else: return 0 class FutureParser: features = ("nested_scopes", "generators", "division", "absolute_import", "with_statement", "print_function", "unicode_literals") def __init__(self): self.found = {} # set def visitModule(self, node): stmt = node.node for s in stmt.nodes: if not self.check_stmt(s): break def check_stmt(self, stmt): if is_future(stmt): for name, asname in stmt.names: if name in self.features: self.found[name] = 1 else: raise SyntaxError, \ "future feature %s is not defined" % name stmt.valid_future = 1 return 1 return 0 def get_features(self): """Return list of features enabled by future statements""" return self.found.keys() class BadFutureParser: """Check for invalid future statements""" def visitFrom(self, node): if hasattr(node, 'valid_future'): return if node.modname != "__future__": return raise SyntaxError, "invalid future statement " + repr(node) def find_futures(node): p1 = FutureParser() p2 = BadFutureParser() walk(node, p1) walk(node, p2) return p1.get_features() if __name__ == "__main__": import sys from compiler import parseFile, walk for file in sys.argv[1:]: print file tree = parseFile(file) v = FutureParser() walk(tree, v) print v.found print
Upload File
Create Folder