def make_flag(source, names, default=False, type=None, help='', takes_argument=0): """Compatibility with clize<3.0 releases. Creates a parameter instance. See :ref:`porting-2`.""" warnings.warn( 'clize.legacy.make_flag is deprecated. See ' 'http://clize.readthedocs.io/en/3.1/' 'porting.html#porting-make-flag', DeprecationWarning, stacklevel=2) kwargs = {} kwargs['aliases'] = [util.name_py2cli(alias, kw=True) for alias in names] if callable(source): return MakeflagFuncParameter(source, takes_argument=takes_argument, **kwargs) cls = MakeflagOptionParameter kwargs['argument_name'] = source kwargs['conv'] = type or parser.is_true if not takes_argument: return parser.FlagParameter(value=True, **kwargs) kwargs['default'] = default kwargs['takes_argument'] = takes_argument if takes_argument == 1 and type is int: cls = MakeflagIntOptionParameter return cls(**kwargs)
def test_param_extras(self): extra_params = [ parser.FlagParameter( value=True, conv=parser.is_true, aliases=['-' + name], argument_name=name) for name in 'abc'] param = parser.PositionalParameter( display_name='one', argument_name='one') param.extras = extra_params csig = parser.CliSignature([param]) self.assertEqual('[-a] [-b] [-c] one', str(csig))
def test_flagp_conv_long(self): @parser.value_converter def conv(arg): return arg param = parser.FlagParameter(argument_name='par', value='eggs', conv=conv, aliases=['--par']) self.assertEqual(param.get_all_names(), '--par[=CONV]') sig = support.s('*, par: p, o=False', locals={'p': param}) self._do_test(sig, parser.FlagParameter, '[--par[=CONV]]', { 'conv': conv, }) csig = parser.CliSignature.from_signature(sig) self.assertEqual(self.read_arguments(csig, []).kwargs, {}) self.assertEqual( self.read_arguments(csig, ['--par']).kwargs, {'par': 'eggs'}) self.assertEqual( self.read_arguments(csig, ['--par=ham']).kwargs, {'par': 'ham'})
def test_flagp_conv_short(self): @parser.value_converter def conv(arg): raise NotImplementedError param = parser.FlagParameter( argument_name='par', value='eggs', conv=conv, aliases=['--par', '-p'] ) self.assertEqual(param.get_all_names(), '-p, --par[=CONV]') sig = support.s('*, par: p, o=False', locals={'p': param}) self._do_test(sig, parser.FlagParameter, '[-p]', { 'conv': conv, }) csig = parser.CliSignature.from_signature(sig) self.assertEqual(self.read_arguments(csig, []).kwargs, {}) self.assertEqual(self.read_arguments(csig, ['-p']).kwargs, {'par': 'eggs'}) self.assertEqual(self.read_arguments(csig, ['-po']).kwargs, {'par': 'eggs', 'o': True})