Skip to main content

Maison

Actions Status Actions Status codecov PyPI version

Read configuration settings from 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 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 application.

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 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

Metadata

Release files for maison 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for maison 1.3.0
File Size Uploaded Provenance Actions
maison-1.3.0.tar.gz 7.8 kB Without provenance Details for maison-1.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for maison 1.3.0
File Interpreter ABI Platform Actions
maison-1.3.0-py3-none-any.whl Python 3 none any Details for maison-1.3.0-py3-none-any.whl

Total release size: 17.6 kB

Release files / maison-1.3.0.tar.gz

Download URL maison-1.3.0.tar.gz
Size 7.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c3132e55ce68adf641686ea5e71d10e4dcf47098ef146905bd1b688ac8c858a3
BLAKE2b-256 checksum
How to use checksums
7ff134e6e1bd8eabff8f2f9e28224459da7c6a96d04638f29d862b2ce07f61ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Release files / maison-1.3.0-py3-none-any.whl

Download URL maison-1.3.0-py3-none-any.whl
Size 9.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b23413d61ec01966fa9fbc819789f1388363fc19cb995a4f534284a338ebdccc
BLAKE2b-256 checksum
How to use checksums
6c0c637a8b713a2ecef3ff4a0a08b3cc0b7e18519e1cb5ee6b21ff09fe0c2377
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Security for maison 1.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page