Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

Configure your application in a friendlier and more consistent way!

Project description


PyPI CircleCI Build Status Codecov

Make use of directories for configuration / data / caching better and more user-friendly!

This module provides support for the XDG Base Directory specification, and OS-friendly fallbacks for Windows, Mac OS, and Linux if not otherwise specified.


import os.path

import configbetter

c = configbetter.Config('appname')

with open(os.path.join(c.config, 'config.json')) as conf:
    # ...

Available parameters for creating a Config instance:

  • force_unix allows you to force using Unix-like paths on Windows/Darwin if desired. This isn't really recommended on Windows but on Darwin it seems as though programs without a GUI usually use Unix-like configuration paths while GUI apps use the "standard" Darwin paths. By default this is False.

Available properties of Config:

  • .cache, which points to $XDG_CACHE_HOME if available, otherwise uses a generic system equivalent.
  • .config, which points to $XDG_CONFIG_HOME if available, otherwise uses a generic system equivalent.
  • .data, which points to $XDG_DATA_HOME if available, otherwise uses a generic system equivalent.

Additionally, the following methods are provided:

  • .makedirs() will create the cache, config and data directories if they do not already exist, including all parent directories.
  • .rmdirs() will remove any program-specific directories that would have been created by config-better.


pip install config-better


  1. Clone the repo
  2. git checkout -b some-feature-or-bugfix
  3. Do work
  4. Test with pytest (add tests to maintain coverage as best as possible)
  5. Run yapf -ir . and isort -rc . to standardize.
  6. Make a PR.

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 config-better, version 1.1.0
Filename, size File type Python version Upload date Hashes
Filename, size config_better-1.1.0-py3-none-any.whl (6.4 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size config-better-1.1.0.tar.gz (4.5 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page