def test_custom_param_help(self): class CustParam(parser.OptionParameter): def show_help(self, desc, after, f, cols): cols.append('I am', 'a custom parameter!') f.append("There is stuff after me.") f.append(desc) f.extend(after) func = f("*, param: a", locals={'a': parser.use_class(named=CustParam)}) func.__doc__ = """ param: Param desc After param _:_ """ r = runner.Clize(func) self._do_test( r, ['func --param=STR', USAGE_HELP], """ Usage: func [OPTIONS] Options: I am a custom parameter! There is stuff after me. Param desc After param Other actions: -h, --help Show the help """)
def test_custom_param_help(self): class CustParam(parser.OptionParameter): def show_help(self, desc, after, f, cols): cols.append('I am', 'a custom parameter!') f.append("There is stuff after me.") f.append(desc) f.extend(after) func = f( "*, param: a", locals={'a': parser.use_class(named=CustParam)}) func.__doc__ = """ param: Param desc After param _:_ """ r = runner.Clize(func) self._do_test(r, ['func --param=STR', USAGE_HELP], """ Usage: func [OPTIONS] Options: I am a custom parameter! There is stuff after me. Param desc After param Other actions: -h, --help Show the help """)
def multi(min=0, max=None): """For option parameters, allows the parameter to be repeated on the command-line with an optional minimum or maximum. For ``*args``-like parameters, just adds the optional bounds. .. literalinclude:: /../examples/multi.py :lines: 5-13 """ return parser.use_class( named=MultiOptionParameter, varargs=parser.ExtraPosArgsParameter, kwargs={"min": min, "max": max} )
def value_inserter(value_factory): """Create an annotation that hides a parameter from the command-line and always gives it the result of a function. :param function value_factory: Called to determine the value to provide for the parameter. The current `.parser.CliBoundArguments` instance is passed as argument, ie. ``value_factory(ba)``. """ uc = parser.use_class(pos=InserterPositionalParameter, named=InserterNamedParameter, kwargs={'value_factory': value_factory}) update_wrapper(uc, value_factory) return uc
def value_inserter(value_factory): """Create an annotation that hides a parameter from the command-line and always gives it the result of a function. :param function value_factory: Called to determine the value to provide for the parameter. The current `.parser.CliBoundArguments` instance is passed as argument, ie. ``value_factory(ba)``. """ uc = parser.use_class( pos=InserterPositionalParameter, named=InserterNamedParameter, kwargs={"value_factory": value_factory} ) update_wrapper(uc, value_factory) return uc
def multi(min=0, max=None): """For option parameters, allows the parameter to be repeated on the command-line with an optional minimum or maximum. For ``*args``-like parameters, just adds the optional bounds. .. literalinclude:: /../examples/multi.py :lines: 4-10 """ return parser.use_class( named=MultiOptionParameter, varargs=parser.ExtraPosArgsParameter, kwargs={ 'min': min, 'max': max, }, name="multi")
def value_inserter(value_factory): """Create an annotation that hides a parameter from the command-line and always gives it the result of a function. :param function value_factory: Called to determine the value to provide for the parameter. The current `.parser.CliBoundArguments` instance is passed as argument, ie. ``value_factory(ba)``. """ try: name = value_factory.__name__ except AttributeError: name = repr(value_factory) uc = parser.use_class( pos=InserterPositionalParameter, named=InserterNamedParameter, kwargs={'value_factory': value_factory}, name='value_inserter({})'.format(name)) update_wrapper(uc, value_factory) return uc
def __init__(self, conv, value=logging.INFO, **kwargs): super(LogLevelParameter, self).__init__( conv=loglevel, value=value, **kwargs) def help_parens(self): if self.default is not util.UNSET: for k, v in levels.items(): if v == self.default: default = k break else: default = self.default yield 'default: {0}'.format(default) log_level = parser.use_class(named=LogLevelParameter) def try_log(logger): logger.debug("Debug") logger.info("Info") logger.warning("Warning") logger.error("Error") logger.critical("Critical") @wrappers.decorator def with_logger(wrapped, *args, log:log_level=logging.CRITICAL, **kwargs): """ Logging options:
super(LogLevelParameter, self).__init__(conv=loglevel, value=value, **kwargs) def help_parens(self): if self.default is not util.UNSET: for k, v in levels.items(): if v == self.default: default = k break else: default = self.default yield 'default: {0}'.format(default) log_level = parser.use_class(named=LogLevelParameter) def try_log(logger): logger.debug("Debug") logger.info("Info") logger.warning("Warning") logger.error("Error") logger.critical("Critical") @wrappers.decorator def with_logger(wrapped, *args, log: log_level = logging.CRITICAL, **kwargs): """ Logging options:
def multi(min=0, max=None): return parser.use_class(named=MultiOptionParameter, kwargs={ 'min': min, 'max': max, })