Skip to content

Commit

Permalink
fixes #435
Browse files Browse the repository at this point in the history
  • Loading branch information
jph00 committed Jul 18, 2022
1 parent c3f3dd7 commit e0b1efa
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 77 deletions.
15 changes: 7 additions & 8 deletions fastcore/script.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
'SCRIPT_INFO', 'call_parse']

# Cell
import inspect,functools,argparse,shutil
import inspect,argparse,shutil
from functools import wraps,partial
from .imports import *
from .utils import *
from .docments import docments
Expand Down Expand Up @@ -97,12 +98,9 @@ def args_from_prog(func, prog):
# Cell
def call_parse(func=None, nested=False):
"Decorator to create a simple CLI from `func` using `anno_parser`"
if func is None: return functools.partial(call_parse, nested=nested)
if func is None: return partial(call_parse, nested=nested)

mod = inspect.getmodule(inspect.currentframe().f_back)
if not mod: return func

@functools.wraps(func)
@wraps(func)
def _f(*args, **kwargs):
mod = inspect.getmodule(inspect.currentframe().f_back)
if not mod: return func(*args, **kwargs)
Expand All @@ -114,9 +112,10 @@ def _f(*args, **kwargs):
args = args.__dict__
xtra = otherwise(args.pop('xtra', ''), eq(1), p.prog)
tfunc = trace(func) if args.pop('pdb', False) else func
tfunc(**merge(args, args_from_prog(func, xtra)))
return tfunc(**merge(args, args_from_prog(func, xtra)))

if mod.__name__=="__main__":
mod = inspect.getmodule(inspect.currentframe().f_back)
if getattr(mod, __name__, '') =="__main__":
setattr(mod, func.__name__, _f)
SCRIPT_INFO.func = func.__name__
return _f()
Expand Down
Loading

0 comments on commit e0b1efa

Please sign in to comment.