Source code for lexor.command.defaults

"""Defaults

Print the default values for each command.

"""

import textwrap
import os.path as pt
from glob import iglob
from lexor.command import import_mod, error
from lexor.command import config

DESC = """

View default values for a subcommand.

"""


[docs]def name_completer(**_): """var completer. """ rootpath = pt.split(pt.abspath(__file__))[0] mod_names = [pt.split(name)[1][:-3] for name in iglob('%s/*.py' % rootpath)] mod_names.sort() del mod_names[0] return mod_names
[docs]def add_parser(subp, fclass): "Add a parser to the main subparser. " tmpp = subp.add_parser('defaults', help='print default values', formatter_class=fclass, description=textwrap.dedent(DESC)) tmpp.add_argument('name', type=str, help='subcommand name').completer = name_completer
[docs]def run(): """Run command. """ arg = config.CONFIG['arg'] name = arg.name try: mod = import_mod('lexor.command.%s' % name) except ImportError: error('ERROR: invalid command: %r\n' % name) if hasattr(mod, 'DEFAULTS'): for key, val in mod.DEFAULTS.iteritems(): print '%s = %r' % (key, val) else: print 'NO DEFAULTS'