当前位置: 首页>>代码示例>>Python>>正文


Python Parser.config方法代码示例

本文整理汇总了Python中blargs.Parser.config方法的典型用法代码示例。如果您正苦于以下问题:Python Parser.config方法的具体用法?Python Parser.config怎么用?Python Parser.config使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在blargs.Parser的用法示例。


在下文中一共展示了Parser.config方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: create

# 需要导入模块: from blargs import Parser [as 别名]
# 或者: from blargs.Parser import config [as 别名]
 def create():
     p = Parser({})
     p.config('a')
     p.int('b')
     p.str('c')
     p.int('d')
     return p
开发者ID:gyllstromk,项目名称:blargs,代码行数:9,代码来源:test.py

示例2: test_config

# 需要导入模块: from blargs import Parser [as 别名]
# 或者: from blargs.Parser import config [as 别名]
    def test_config(self):
        def create():
            p = Parser()
            p.config('a')
            return p

        self.assertRaises(IOError, create()._process_command_line, ['--a',
             'doesnotexist.cfg'])

        fname = os.path.join(self._dir, 'config.cfg')

        def write_config(**kw):
            delim = '='
            if 'delim' in kw:
                delim = kw['delim']
                del kw['delim']
            with open(fname, 'w') as w:
                w.write('[myconfig]\n# comment1\n; comment2\n' + '\n'.join(
                    ('%s %s %s' % (k, delim, v) for k, v in kw.items())))

        write_config(b=3, c='hello')

        vals = create()._process_command_line(['--a', fname])
        self.assertEqual(list(vals.keys()), ['help'])

        def create():
            p = Parser({})
            p.config('a')
            p.int('b')
            p.str('c')
            p.int('d')
            return p

        for delim in '=:':
            write_config(b=3, c='hello', d=5, delim=delim)
            try:
                vals = create()._process_command_line(['--a', fname])
            except MultipleSpecifiedArgumentError as e:
                print(e)
            self.assertEqual(vals['b'], 3)
            self.assertEqual(vals['c'], 'hello')
            self.assertEqual(vals['d'], 5)

        write_config(b=3, c='hello', d='what')
        self.assertRaises(FormatError, create()._process_command_line, ['--a', fname])

        # XXX may want subsequent line to eventually be true
#        vals = create()._process_command_line(['--a', fname, '--d', '4'])
        self.assertRaises(MultipleSpecifiedArgumentError,
                create()._process_command_line, (['--a', fname, '--d', '4']))

#         self.assertEqual(vals['b'], 3)
#         self.assertEqual(vals['c'], 'hello')
#         self.assertEqual(vals['d'], 4)

        self.assertRaises(MultipleSpecifiedArgumentError,
                create()._process_command_line, (['--a', fname, '--d', '4', '--c', 'sup',
                '--b', '1']))

#         self.assertEqual(vals['b'], 1)
#         self.assertEqual(vals['c'], 'sup')
#         self.assertEqual(vals['d'], 4)

        def create():
            p = Parser({})
            p.config('a').default(fname)
            p.int('b').requires(p.int('d'))
            p.str('c')
            return p

        write_config(b=3, c='sup')
        self.assertRaises(DependencyError, create()._process_command_line) # should pass because default
        self.assertRaises(DependencyError, create()._process_command_line, ['--a', fname])

        with open(fname, 'w') as w:
            w.write('''[myconfig]
b=9
[part]
b=3
''')

        p = Parser()
        p.config('a')
        p.int('b')
        self.assertRaises(MultipleSpecifiedArgumentError,
                p._process_command_line, ['--a', fname])

        p = Parser()
        p.config('a')
        p.int('b').multiple()
        vals = p._process_command_line(['--a', fname])
        self.assertEqual(sorted(vals['b']), [3, 9])

        write_config(b='hello world')
        p = Parser()
        p.config('a')
        p.multiword('b')
        vals = p._process_command_line(['--a', fname])
        self.assertEqual(vals['b'], 'hello world')
开发者ID:gyllstromk,项目名称:blargs,代码行数:101,代码来源:test.py


注:本文中的blargs.Parser.config方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。