Build Status Coverage Status PyPI version License

Python 3+ compatible port of the configobj library.


You can find a full manual on how to use ConfigObj at readthedocs. If you want to work on the project, please see the Contributing section below.


This project is now maintained by Eli Courtwright and Rob Dennis with the blessing of original creator Michael Foord.

For long time ConfigObj users, the biggest change is in the officially supported Python versions (it was 2.3 … 2.6):

  • 2.7
  • 3.4 … 3.7

Other Python3 versions may work, but this is what Travis and tox use to run the tests on commit.


  • Fixing any issues introduced as a result of the added Python 3 support
  • Moving tests away from doctests in favor of pytest (reasonable now that versions older than 2.6 are dropped)
  • Considering new features that work in a backwards-compatible way (feel free to open an issue with your suggestion)
  • Also see the milestones


Contributing to this project is easy, and reporting an issue or adding to the documentation also improves things for every user. You don’t need to be a developer to contribute. See CONTRIBUTING for more.

As a documentation author or developer, to create a working directory for this project, call these commands:

git clone ""
cd "configobj"
command . .env --yes --develop  # add '--virtualenv /usr/bin/virtualenv' for Python2
invoke build --docs test doctest check

For this to work, you might also need to follow some setup procedures to make the necessary basic commands available on Linux, Mac OS X, and Windows.

Running the test suite can be done several ways, just call invoke test for a quick check. Run invoke test.tox for testing with all supported Python versions (if you have them available), or be more selective by e.g. calling invoke test.tox -e py27,py34.

Use invoke check to run a code-quality scan.

To start a watchdog that auto-rebuilds documentation and reloads the opened browser tab on any change, call invoke docs -w -b (stop the watchdog using the -k option).