Skip to main content

A configuration library.

Project description

profig is a configuration library for Python.


Why another configuration library? The simple answer is that none of the available options gave me everything I wanted, with an API that I enjoyed using. This library is as close to my ideal as I have been able to come. It tries to provide some (but not too much) powerful functionality, without sacrificing simplicity.


  • Automatic value conversion.
  • Section nesting.
  • Dict-like access.
  • Extensible input/output formats.
  • Built-in support for INI files and the Windows registry.
  • Preserves ordering and comments of INI files.
  • Supports Python 2.7+ and 3.2+.


profig installs using easy_install or pip:

$ pip install profig


Basic usage is cake. Let’s assume our config file looks like this:

host =
port = 9090

First, we specify the defaults and types to expect:

>>> cfg = profig.Config('server.cfg')
>>> cfg.init('', 'localhost')
>>> cfg.init('server.port', 8080)

Then, we sync our current state with the state of the config file:

>>> cfg.sync()

As expected, we can access the values directly without any extra effort, either directly:

>>> cfg['']

Or by section:

>>> server_cfg = cfg.section('server')
>>> server_cfg['port']


0.3.3 (07-11-14)

  • bugfixes

0.3.2 (06-30-14)

  • added support for the Windows registry
  • bugfixes

0.3.1 (06-04-14)

  • fixed release package

0.3.0 (06-04-14)

  • byte-string values are read/written directly from/to sources.
  • added support for Python 3.2.
  • bugfixes

0.2.9 (05-27-14)

  • bugfixes
  • new syntax for sections with both children, and a value: [section] = value

0.2.8 (04-11-14)

  • INI format is now the default
  • custom ProfigFormat has been removed
  • can now get/set comments for keys
  • comments and whitespace read from sources are preserved
  • filtering of keys when syncing has been removed (temporarily?)

0.2.7 (03-29-14)

  • improved INI support
  • bugfixes

0.2.6 (03-26-14)

  • full unicode support

0.2.5 (03-21-14)

  • fix broken Python 3 compatibility

0.2.4 (03-21-14)

  • added support for Python 2
  • bugfixes

0.2.3 and earlier (03-12-14)

  • initial releases

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for profig, version 0.3.3
Filename, size File type Python version Upload date Hashes
Filename, size profig-0.3.3.tar.gz (17.4 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page