50 lines
1.2 KiB
Python
50 lines
1.2 KiB
Python
import sys
|
|
import ast
|
|
|
|
# from rope.base import ast
|
|
|
|
PY2 = sys.version_info[0] == 2
|
|
PY27 = sys.version_info[0:2] >= (2, 7)
|
|
PY3 = sys.version_info[0] == 3
|
|
PY34 = sys.version_info[0:2] >= (3, 4)
|
|
PY36 = sys.version_info[0:2] >= (3, 6)
|
|
|
|
try:
|
|
str = unicode
|
|
except NameError: # PY3
|
|
|
|
str = str
|
|
string_types = (str,)
|
|
import builtins
|
|
|
|
ast_arg_type = ast.arg
|
|
|
|
def execfile(fn, global_vars=None, local_vars=None):
|
|
with open(fn) as f:
|
|
code = compile(f.read(), fn, "exec")
|
|
exec(code, global_vars or {}, local_vars)
|
|
|
|
def get_ast_arg_arg(node):
|
|
if isinstance(
|
|
node, string_types
|
|
): # TODO: G21: Understand the Algorithm (Where it's used?)
|
|
return node
|
|
return node.arg
|
|
|
|
def get_ast_with_items(node):
|
|
return node.items
|
|
|
|
else: # PY2
|
|
|
|
string_types = (basestring,)
|
|
builtins = __import__("__builtin__")
|
|
ast_arg_type = ast.Name
|
|
execfile = execfile
|
|
|
|
def get_ast_arg_arg(node):
|
|
if isinstance(node, string_types): # Python2 arguments.vararg, arguments.kwarg
|
|
return node
|
|
return node.id
|
|
|
|
def get_ast_with_items(node):
|
|
return [node]
|