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

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
maison-1.3.0.tar.gz 7.8 kB Details

Built distribution (wheel)

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

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

Release history Release notifications | RSS feed

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

This release

1.3.0 This release

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.1.0

2 release files

0.0.0

2 release files

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