Python configuration library
Question: I am looking for a python configuration library that merge multiple text
configuration files into single object just like json.

has anybody know a good one?


Answer: I wrote the [pymlconf](http://pypi.python.org/pypi/pymlconf) for this
purpose.the configuration syntax is [yaml](http://www.yaml.org/).

**For example:**

_Config files:_

    
    
    #app/conf/users/sites.mysite.conf:
    name: mysite.com
    owner:
       name: My Name
       phone: My Phone Number
       address: My Address
    
    
    #app/conf/admin/root.conf:
    server:
       version: 0.3a
    sites:
       admin:
          name: admin.site.com
          owner:
             name: Admin Name
             phone: Admin Phone Number
             address: Admin Address
    
    #app/conf/admin/server.conf:
    host: 0.0.0.0
    port: 80
    
    #../other_path/../special.conf:
    licence_file: /path/to/file
    log_file: /path/to/file
    
    #app/src/builtin_config.py:
    _builtin_config={
       'server':{'name':'Power Server'}
    }
    
    OR:
    
    _builtin_config="""
        server:
           name: Power Server
    """
    

_Then look at single line usage:_

    
    
    from pymlconf import ConfigManager
    from app.builtin_config import _builtin_config
    
    config_root = ConfigManager(
       _builtin_config,
       ['app/conf/admin','app/conf/users'],
       '../other_path/../special.conf')
    

_Fetching config entries:_

    
    
    # All from app/conf/users/sites.mysite.conf
    print config_root.sites.mysite.name
    print config_root.sites.mysite.owner.name
    print config_root.sites.mysite.owner.address
    print config_root.sites.mysite.owner.phone
    
    # All from app/conf/admin/root.conf
    print config_root.sites.admin.name
    print config_root.sites.admin.owner.name
    print config_root.sites.admin.owner.address
    print config_root.sites.admin.owner.phone
    
    print config_root.server.name       # from _builtin_config
    print config_root.server.version    # from app/conf/admin/root.conf
    print config_root.server.host       # from app/conf/admin/server.conf
    print config_root.server.port       # from app/conf/admin/server.conf
    
    print config_root.licence_file      # from ../other_path/../special.conf
    print config_root.log_file          # from ../other_path/../special.conf
    

It seems this covers your problem.but you can fork it on
[github](https://github.com/pylover/pymlconf)

Links:

  1. [Python package index](http://pypi.python.org/pypi/pymlconf)
  2. [Source on github](https://github.com/pylover/pymlconf)
  3. [Documentation](http://packages.python.org/pymlconf/)

