Source code for scriptconfig.cli


[docs] def quick_cli(default, name=None): """ Quickly create a CLI New in 0.5.2 Example: >>> # SCRIPT >>> import scriptconfig as scfg >>> default = { >>> 'fpath': scfg.Path(None), >>> 'modnames': scfg.Value([]), >>> } >>> config = scfg.quick_cli(default) >>> print('config = {!r}'.format(config)) """ if name is None: import uuid hashid = str(uuid.uuid4()).replace('-', '_') name = 'ExpressCLI_{}'.format(hashid) from textwrap import dedent vals = {} code = dedent( ''' import scriptconfig as scfg class {name}(scfg.Config): pass '''.strip('\n').format(name=name)) exec(code, vals) cls = vals[name] cls.default = default config = cls(cmdline=True) return config
__all__ = ['quick_cli']