Skip to main content

Python package for configuring a python package

Project description

https://github.com/pytroll/donfig/workflows/CI/badge.svg?branch=main https://codecov.io/gh/pytroll/donfig/branch/main/graph/badge.svg?token=xmvNtxzdoB https://anaconda.org/conda-forge/donfig/badges/version.svg pre-commit.ci status

Donfig is a python library meant to make configuration easier for other python packages. Donfig can be configured programmatically, by environment variables, or from YAML files in standard locations. The below examples show the basics of using donfig. For more details see the official documentation.

Installation

Donfig can be installed from PyPI using pip:

pip install donfig

Or with conda using the conda-forge channel:

conda install -c conda-forge donfig

Using Donfig

Create the package-wide configuration object for your package named mypkg:

# mypkg/__init__.py
from donfig import Config
config = Config('mypkg')

Use the configuration object:

from mypkg import config
important_val = config.get('important_key')
if important_val:
    # do something
else:
    # something else

Set configuration in Python

Configuration can be modified in python before code using it is called:

# mypkg/work.py
from mypkg import config
config.set(important_key=5)

# use the configuration

Donfig configurations can also be changed as a context manager:

config.set(other_key=True)

with config.set(other_key=False):
    print(config.get('other_key'))  # False

print(config.get('other_key'))  # True

Configure from environment variables

Environment variables are automatically loaded when the Config object is created. Any environment variable starting with the name of the config object in all capital letters and an underscore will be loaded in to the config object:

export MYPKG_MY_KEY="a value"

And can be accessed in python:

from mypkg import config
print(config.get('my_key'))

Configure from YAML file

Donfig will also automatically load any YAML configuration files found in specific paths. The default paths:

  • ~/.config/<config name>/

  • /etc/<config name>/

  • <sys.prefix>/etc/<config name>/

Note the /etc/<config name>/ directory can also be specified with the environment variable DASK_ROOT_CONFIG. Also note that ~/.config/<package name> (or other location specified with DASK_CONFIG) can be created as a custom user configuration file for easier user customization (see documentation for details).

History

Donfig is based on the original configuration logic of the dask library. The code has been modified to use a config object instead of a global configuration dictionary. This makes the configuration logic of dask available to everyone. The name “donfig” is a shortening of “dask.config”, the original dask module that implemented this functionality.

License

Original code from the dask library was distributed under the license specified in DASK_LICENSE.txt. In November 2018 this code was migrated to the Donfig project under the MIT license described in LICENSE.txt. The full copyright for this project is therefore:

Copyright (c) 2018 Donfig Developers
Copyright (c) 2014-2018, Anaconda, Inc. and contributors

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

donfig-0.8.1.post0.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

donfig-0.8.1.post0-py3-none-any.whl (24.0 kB view details)

Uploaded Python 3

File details

Details for the file donfig-0.8.1.post0.tar.gz.

File metadata

  • Download URL: donfig-0.8.1.post0.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for donfig-0.8.1.post0.tar.gz
Algorithm Hash digest
SHA256 3475689b8525313207b464738aaf2e8b9869385ea660322887a288437a1e9a3b
MD5 4b2eee18421c3989159aa074cc31fabc
BLAKE2b-256 46be8fb56356f1820b27d19334a92e610af6f66dcc5c468822f8d752e71487c5

See more details on using hashes here.

File details

Details for the file donfig-0.8.1.post0-py3-none-any.whl.

File metadata

  • Download URL: donfig-0.8.1.post0-py3-none-any.whl
  • Upload date:
  • Size: 24.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for donfig-0.8.1.post0-py3-none-any.whl
Algorithm Hash digest
SHA256 907d3e9f77fada5ece376785c79b03d2690ffdcc35a1a17734f7521408d5ddde
MD5 de1798fb7ef2bf7967f152a714fd071b
BLAKE2b-256 a293c630c4113bb22122677267a90c6c9027c3643409c7fd90f38af6694cca24

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page