Submit
Path:
~
/
/
proc
/
thread-self
/
root
/
opt
/
alt
/
python27
/
lib
/
python2.7
/
site-packages
/
libpasteurize
/
fixes
/
File Content:
fix_metaclass.py
u""" Fixer for (metaclass=X) -> __metaclass__ = X Some semantics (see PEP 3115) may be altered in the translation.""" from lib2to3 import fixer_base from lib2to3.fixer_util import Name, syms, Node, Leaf, Newline, find_root from lib2to3.pygram import token from libfuturize.fixer_util import indentation, suitify # from ..fixer_util import Name, syms, Node, Leaf, Newline, find_root, indentation, suitify def has_metaclass(parent): results = None for node in parent.children: kids = node.children if node.type == syms.argument: if kids[0] == Leaf(token.NAME, u"metaclass") and \ kids[1] == Leaf(token.EQUAL, u"=") and \ kids[2]: #Hack to avoid "class X(=):" with this case. results = [node] + kids break elif node.type == syms.arglist: # Argument list... loop through it looking for: # Node(*, [*, Leaf(token.NAME, u"metaclass"), Leaf(token.EQUAL, u"="), Leaf(*, *)] for child in node.children: if results: break if child.type == token.COMMA: #Store the last comma, which precedes the metaclass comma = child elif type(child) == Node: meta = equal = name = None for arg in child.children: if arg == Leaf(token.NAME, u"metaclass"): #We have the (metaclass) part meta = arg elif meta and arg == Leaf(token.EQUAL, u"="): #We have the (metaclass=) part equal = arg elif meta and equal: #Here we go, we have (metaclass=X) name = arg results = (comma, meta, equal, name) break return results class FixMetaclass(fixer_base.BaseFix): PATTERN = u""" classdef<any*> """ def transform(self, node, results): meta_results = has_metaclass(node) if not meta_results: return for meta in meta_results: meta.remove() target = Leaf(token.NAME, u"__metaclass__") equal = Leaf(token.EQUAL, u"=", prefix=u" ") # meta is the last item in what was returned by has_metaclass(): name name = meta name.prefix = u" " stmt_node = Node(syms.atom, [target, equal, name]) suitify(node) for item in node.children: if item.type == syms.suite: for stmt in item.children: if stmt.type == token.INDENT: # Insert, in reverse order, the statement, a newline, # and an indent right after the first indented line loc = item.children.index(stmt) + 1 # Keep consistent indentation form ident = Leaf(token.INDENT, stmt.value) item.insert_child(loc, ident) item.insert_child(loc, Newline()) item.insert_child(loc, stmt_node) break
Edit
Rename
Chmod
Delete
FILE
FOLDER
Name
Size
Permission
Action
__init__.py
3719 bytes
0644
__init__.pyc
974 bytes
0644
__init__.pyo
974 bytes
0644
feature_base.py
1723 bytes
0644
feature_base.pyc
2985 bytes
0644
feature_base.pyo
2985 bytes
0644
fix_add_all__future__imports.py
676 bytes
0644
fix_add_all__future__imports.pyc
1309 bytes
0644
fix_add_all__future__imports.pyo
1309 bytes
0644
fix_add_all_future_builtins.py
1269 bytes
0644
fix_add_all_future_builtins.pyc
1430 bytes
0644
fix_add_all_future_builtins.pyo
1430 bytes
0644
fix_add_future_standard_library_import.py
663 bytes
0644
fix_add_future_standard_library_import.pyc
1233 bytes
0644
fix_add_future_standard_library_import.pyo
1233 bytes
0644
fix_annotations.py
1581 bytes
0644
fix_annotations.pyc
2253 bytes
0644
fix_annotations.pyo
2153 bytes
0644
fix_division.py
904 bytes
0644
fix_division.pyc
1724 bytes
0644
fix_division.pyo
1724 bytes
0644
fix_features.py
2675 bytes
0644
fix_features.pyc
3399 bytes
0644
fix_features.pyo
3399 bytes
0644
fix_fullargspec.py
438 bytes
0644
fix_fullargspec.pyc
1063 bytes
0644
fix_fullargspec.pyo
1063 bytes
0644
fix_future_builtins.py
1450 bytes
0644
fix_future_builtins.pyc
1758 bytes
0644
fix_future_builtins.pyo
1758 bytes
0644
fix_getcwd.py
873 bytes
0644
fix_getcwd.pyc
1352 bytes
0644
fix_getcwd.pyo
1352 bytes
0644
fix_imports.py
4944 bytes
0644
fix_imports.pyc
4403 bytes
0644
fix_imports.pyo
4403 bytes
0644
fix_imports2.py
8580 bytes
0644
fix_imports2.pyc
10321 bytes
0644
fix_imports2.pyo
10321 bytes
0644
fix_kwargs.py
5991 bytes
0644
fix_kwargs.pyc
4791 bytes
0644
fix_kwargs.pyo
4674 bytes
0644
fix_memoryview.py
551 bytes
0644
fix_memoryview.pyc
1144 bytes
0644
fix_memoryview.pyo
1144 bytes
0644
fix_metaclass.py
3260 bytes
0644
fix_metaclass.pyc
2668 bytes
0644
fix_metaclass.pyo
2668 bytes
0644
fix_newstyle.py
888 bytes
0644
fix_newstyle.pyc
1582 bytes
0644
fix_newstyle.pyo
1582 bytes
0644
fix_next.py
1233 bytes
0644
fix_next.pyc
1891 bytes
0644
fix_next.pyo
1858 bytes
0644
fix_printfunction.py
401 bytes
0644
fix_printfunction.pyc
991 bytes
0644
fix_printfunction.pyo
991 bytes
0644
fix_raise.py
1099 bytes
0644
fix_raise.pyc
1697 bytes
0644
fix_raise.pyo
1697 bytes
0644
fix_raise_.py
1225 bytes
0644
fix_raise_.pyc
1828 bytes
0644
fix_raise_.pyo
1828 bytes
0644
fix_throw.py
835 bytes
0644
fix_throw.pyc
1497 bytes
0644
fix_throw.pyo
1497 bytes
0644
fix_unpacking.py
5946 bytes
0644
fix_unpacking.pyc
6339 bytes
0644
fix_unpacking.pyo
6339 bytes
0644
N4ST4R_ID | Naxtarrr