Skip to main content

Maison

Project description

Actions Status Actions Status codecov

Maison

Read configuration settings from python configuration files.

Motivation

When developing a python application, 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 project directory that uses the tool, for example in a pyproject.toml 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 application.

Features

  • Supports multiple config files and multiple config filetypes.
  • 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 project directory:

[tool.acme]
enable_useful_option = true

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

from maison import ProjectConfig

config = ProjectConfig(project_name="acme")

if config.get_option("enable_useful_option"):
    # include the useful option

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-1.2.2.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

maison-1.2.2-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: maison-1.2.2.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for maison-1.2.2.tar.gz
Algorithm Hash digest
SHA256 1396034771863a19e26a31dee28d99b2f61271fd39b99e4e58ea564f3d1b9a8b
MD5 5ad2c7f1fdb2543ebde5654b86a287a1
BLAKE2b-256 bd58af4856b36bafa89ec961e882aebbd98def70a5ed8a55eeb46a1e6f3a00a9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maison-1.2.2-py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for maison-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5fbe435a227d97dbed5756072315c026ae4793120c86385c15f2fbd732016625
MD5 4e990c0de5c39e0094eb34059882129d
BLAKE2b-256 4a345dbcb8cfa724a3f9a11d5ed7fc15edf45c4533b9f17741692b93dceac807

See more details on using hashes here.

Supported by

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