Skip to main content

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.

Source Distribution

config-better-1.1.0.tar.gz (4.5 kB view hashes)

Uploaded source

Built Distribution

config_better-1.1.0-py3-none-any.whl (6.4 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page