Files
jedi/test/completion/functions.py
2012-05-23 12:19:32 +02:00

246 lines
3.1 KiB
Python

def array(first_param):
#? ['first_param']
first_param
return list()
#? []
array.first_param
#? []
array.first_param.
func = array
#? []
func.first_param
#? ['append']
array().append
#? ['array']
arr
def inputs(param):
return param
#? ['append']
inputs(list).append
def variable_middle():
var = 3
return var
#? ['real']
variable_middle().real
def variable_rename(param):
var = param
return var
#? ['imag']
variable_rename(1).imag
# -----------------
# double execution
# -----------------
def double_exe(param):
return param
#? ['upper']
variable_rename(double_exe)("").upper
# -> shouldn't work (and throw no error)
#? []
variable_rename(list())().
#? []
variable_rename(1)().
# -----------------
# recursion (should ignore)
# -----------------
def recursion(a, b):
if a:
return b
else:
return recursion(a+".", b+1)
##? int() float()
recursion("a", 1.0)
# -----------------
# keyword arguments
# -----------------
def func(a=1, b=''):
return a, b
exe = func(b=list, a=tuple)
#? tuple()
exe[0]
#? list()
exe[1]
# -----------------
# default arguments
# -----------------
#? int()
func()[0]
#? float()
func(1.0)[0]
#? str()
func(1.0)[1]
# -----------------
# closures
# -----------------
def a():
l = 3
def func_b():
#? ['real']
l.real
l = ''
#? ['func_b']
func_b
#? ['real']
l.real
# -----------------
# *args
# -----------------
def args_func(*args):
return args
exe = args_func(1, "")
#? int()
exe[0]
#? str()
exe[1]
_list = [1,""]
exe2 = args_func(_list)[0]
#? str()
exe2[1]
exe3 = args_func([1,""])[0]
#? str()
exe3[1]
def args_func(arg1, *args):
return arg1, args
exe = args_func(1, "", list)
#? int()
exe[0]
#? tuple()
exe[1].index
#? list()
exe[1][1]
# -----------------
# ** kwargs
# -----------------
def kwargs_func(**kwargs):
return kwargs
exe = kwargs_func(a=3,b=4)
#? ['items']
exe.items
# -----------------
# *args / ** kwargs
# -----------------
def fu(a=1, b="", *args, **kwargs):
return a, b, args, kwargs
exe = fu(list, 1, "", c=set, d="")
#? ['append']
exe[0].append
#? ['real']
exe[1].real
#? ['index']
exe[2].index
#? ['upper']
exe[2][0].upper
#? ['items']
exe[3].items
#? set()
exe[3]['c']
# -----------------
# decorators
# -----------------
def decorator(func):
def wrapper(*args):
return func(1, *args)
return wrapper
@decorator
def decorated(a,b):
return a,b
exe = decorated(set, '')
#? set
exe[1]
#? int()
exe[0]
# more complicated with args/kwargs
def dec(func):
def wrapper(*args, **kwargs):
return func(*args, **kwargs)
return wrapper
@dec
def fu(a, b, c, *args, **kwargs):
return a, b, c, args, kwargs
exe = fu(list, c=set, b=3, d='')
#? ['append']
exe[0].append
#? ['real']
exe[1].real
#? ['union']
exe[2].union
#? str()
exe[4]['d']
exe = fu(list, set, 3, '', d='')
#? str()
exe[3][0]
# -----------------
# generators
# -----------------
def gen():
yield 1
yield ""
gen_exe = gen()
#? ['upper']
next(gen_exe).upper
#? ['real']
next(gen_exe).real
#? int() str()
next(gen_exe)
#? int() str() list
next(gen_exe, list)