def setUp(self): self.config_string = ''' [xyzzy] foo = 5 foo.banana = yellow foo.mango = orange foo.noise = white bar.blah = 23 ''' self.config = AttributedConfigParser() self.config.readfp(StringIO(self.config_string))
def ini2schema(fd, p=None): """ Turn a fd that refers to a INI-style schema definition into a SchemaConfigParser object @param fd: file-like object to read the schema from @param p: a parser to use. If not set, uses AttributedConfigParser """ if p is None: p = AttributedConfigParser() p.readfp(fd) p.parse_all() parser2option = {'unicode': StringOption, 'int': IntOption, 'bool': BoolOption, 'lines': ListOption} class MySchema(Schema): pass for section_name in p.sections(): if section_name == '__main__': section = MySchema else: section = Section(name=section_name) setattr(MySchema, section_name, section) for option_name in p.options(section_name): option = p.get(section_name, option_name) parser = option.attrs.pop('parser', 'unicode') parser_args = option.attrs.pop('parser.args', '').split() parser_fun = getattr(parsers, parser, None) if parser_fun is None: parser_fun = getattr(__builtin__, parser, None) if parser_fun is None: parser_fun = lambda x: x attrs = {'name': option_name} option_help = option.attrs.pop('help', None) if option_help is not None: attrs['help'] = option_help if not option.is_empty: attrs['default'] = parser_fun(option.value, *parser_args) option_action = option.attrs.pop('action', None) if option_action is not None: attrs['action'] = option_action klass = parser2option.get(parser, StringOption) if parser == 'lines': instance = klass(item=StringOption(), **attrs) else: instance = klass(**attrs) setattr(section, option_name, instance) return SchemaConfigParser(MySchema())
class BaseTest(unittest.TestCase): """ Base class to keep common set-up """ def setUp(self): self.config_string = ''' [xyzzy] foo = 5 foo.banana = yellow foo.mango = orange foo.noise = white bar.blah = 23 ''' self.config = AttributedConfigParser() self.config.readfp(StringIO(self.config_string))
class BaseTest(unittest.TestCase): """ Base class to keep common set-up """ def setUp(self): self.config_string = ''' [xyzzy] foo = 5 foo.banana = yellow foo.mango = orange foo.noise = white bar.blah = 23 ''' self.config = AttributedConfigParser() self.config.readfp(StringIO(self.config_string))
def ini2schema(fd, p=None): """ Turn a fd that refers to a INI-style schema definition into a SchemaConfigParser object @param fd: file-like object to read the schema from @param p: a parser to use. If not set, uses AttributedConfigParser """ if p is None: p = AttributedConfigParser() p.readfp(fd) p.parse_all() parser2option = {'unicode': StringOption, 'int': IntOption, 'bool': BoolOption, 'lines': ListOption} class MySchema(Schema): pass for section_name in p.sections(): if section_name == '__main__': section = MySchema else: section = Section(name=section_name) setattr(MySchema, section_name, section) for option_name in p.options(section_name): option = p.get(section_name, option_name) parser = option.attrs.pop('parser', 'unicode') parser_args = option.attrs.pop('parser.args', '').split() parser_fun = getattr(parsers, parser, None) if parser_fun is None: parser_fun = getattr(builtins, parser, None) if parser_fun is None: parser_fun = lambda x: x attrs = {'name': option_name} option_help = option.attrs.pop('help', None) if option_help is not None: attrs['help'] = option_help if not option.is_empty: attrs['default'] = parser_fun(option.value, *parser_args) option_action = option.attrs.pop('action', None) if option_action is not None: attrs['action'] = option_action klass = parser2option.get(parser, StringOption) if parser == 'lines': instance = klass(item=StringOption(), **attrs) else: instance = klass(**attrs) setattr(section, option_name, instance) return SchemaConfigParser(MySchema())
def setUp(self): self.config_string = ''' [xyzzy] foo = 5 foo.banana = yellow foo.mango = orange foo.noise = white bar.blah = 23 ''' self.config = AttributedConfigParser() self.config.readfp(StringIO(self.config_string))