In [5]:
import argparse
import inspect
In [19]:
def main(var_1: str, var_2: float=2.0, var_3='hi'):
print('got: ')
print(var_1)
print(var_2)
print(var_3)
pass
In [20]:
def main_aux():
signature = inspect.signature(main) # type: inspect.Signature
pars = list(signature.parameters.values())
parser = argparse.ArgumentParser(description=inspect.getdoc(main))
for p in pars:
parser.add_argument(
'--{}'.format(p.name.replace('_', '-')),
default=None if p.default == inspect._empty else p.default,
type=p.annotation if type(p.annotation) is type else None)
args = parser.parse_args()
main(**args.__dict__)
In [ ]:
In [13]:
def hi(x=2):
return inspect.signature(hi)
In [ ]:
In [ ]: