Skip to main content

Read settings from config files

Project description

Maison

Actions Status Actions Status codecov PyPI version

Read configuration settings from configuration files.

Motivation

When developing a python package, e.g a command-line tool, it can be helpful to allow the user to set their own configuration options to allow them to tailor the tool to their needs. These options are typically set in files in the root of a user's directory that uses the tool, for example in a pyproject.toml or an {project_name}.ini file.

maison aims to provide a simple and flexible way to read and validate those configuration options so that they may be used in the package.

Features

  • Supports multiple config files and multiple config filetypes.
  • Optional merging of multiple configs.
  • Optional config validation with pydantic.
  • Caching of config files for quick access.
  • Fully tested and typed.

Installation

pip install maison

Usage

Suppose the following pyproject.toml lives somewhere in a user's directory:

[tool.acme]
enable_useful_option = true

maison exposes a UserConfig class to retrieve values from config files like so:

from maison import UserConfig

from my_useful_package import run_useful_action

config = UserConfig(package_name="acme")

if config.values["enable_useful_option"]:
    run_useful_action()

Help

See the documentation for more details.

Licence

MIT

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

maison-2.0.0.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

maison-2.0.0-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file maison-2.0.0.tar.gz.

File metadata

  • Download URL: maison-2.0.0.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.9

File hashes

Hashes for maison-2.0.0.tar.gz
Algorithm Hash digest
SHA256 f5dafbbf4ce57bdb7cae128e075f457434b2cc9573b4f4bb4535f16d2ebd1cc5
MD5 50643cab9b997cc87667b5b05e59fa25
BLAKE2b-256 2ec5c0574d47920f30eb84938bbe5220b249bde9b648b4517e1726e50a4b0967

See more details on using hashes here.

File details

Details for the file maison-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: maison-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.9

File hashes

Hashes for maison-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e684fbab833f0f049d6e3556a127b8c5abe7cd18620f5b751a483e103dc4cbb5
MD5 932763330e69514a6fc0943cee518868
BLAKE2b-256 3024cd1e7447cc43aeaf3dd8a336d79876262ebf0fd003b73796ee78cad19cd3

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