Search code examples
pythonconfigparser

Python ConfigParser wrapper


I have a config file and i want to load the options dynamicaly by entering the section and the options name.

For instance this is the config file contents.

[templates]
path = /full/path/to/template

and the config.py file

class Config(object):
    def __init__(self):
        self.config = ConfigParser.ConfigParser()
        self.config.read('config.ini')

        for section in self.config.sections():
            self.__dict__[section] = dict()
            for k, v in self.config.items(section):
                self.__dict__[section][k] = v


    def from_options(self, section, option):
        if section in self.__dict__:
            if option in self.__dict__[section]:
                return self.__dict__[section][option]

if __name__ == '__main__':
    c = Config()
    print c.from_options('templates', 'path')

EDIT: The question is if this a pythonic == right way to do it.


Solution

  • config.py

    ;# if not applicable leave it blank
    
    [templates]
    path = /full/path/to/template
    

    configparse.py

    class Config(object):
        def __init__(self):
            self.config = ConfigParser.ConfigParser()
            self.config.read('config.py')
    
        def get_path(self):
            return self.config.get('templates', 'path')
    
    if __name__ == '__main__':
        c = Config()
        print c.get_path()
    

    this should do the trick...