config-better
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.
Usage
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 isFalse
.
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.
Installation
pip install config-better
Developing
- Clone the repo
git checkout -b some-feature-or-bugfix
- Do work
- Test with
pytest
(add tests to maintain coverage as best as possible) - Run
yapf -ir .
andisort -rc .
to standardize. - Make a PR.