コード例 #1
0
ファイル: legacy.py プロジェクト: mgielda/clize
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)
コード例 #2
0
 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))
コード例 #3
0
ファイル: test_parser.py プロジェクト: kouk/clize
    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'})
コード例 #4
0
 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})