def new_func(ctx, settingsfile, log_level, *args, **kwargs): if 'log_level' not in ctx.obj: if log_level == 'info': log_level = logging.INFO elif log_level == 'debug': log_level = logging.DEBUG elif log_level == 'warning': log_level = logging.WARNING elif log_level == 'error': log_level = logging.ERROR setup_logging(log_level) ctx.obj['log_level'] = log_level if 'project' not in ctx.obj: if settingsfile: project = Project.from_file(settingsfile) else: project = Project.from_dir(path=ctx.obj['cwd']) ctx.obj['project'] = project return ctx.invoke(func, *args, **kwargs)