from inspect import getfullargspec
def incomplete(func):
global inputs
global func_args
inputs = []
func_args = len(getfullargspec(func)[0])
def wrapper(*args):
global inputs
global func_args
inputs += args
if len(inputs) < func_args:
def partial(*argss):
for i in argss:
inputs.append(i)
if (len(inputs) == func_args):
return func(*inputs)
else:
return partial
return partial
else:
return func(*args)
return wrapper
@incomplete
def add(a, b):
return a + b
add1 = add(1)
assert add1(2) == add(1, 2)