Skip to main content

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

Release files for maison 2.0.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 2.0.0
File Size Uploaded
maison-2.0.0.tar.gz 12.1 kB Details

Built distribution (wheel)

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

Total release size: 22.2 kB

Release files / maison-2.0.0.tar.gz

Download URL maison-2.0.0.tar.gz
Size 12.1 kB
Tags Source
SHA-256 checksum
How to use checksums
f5dafbbf4ce57bdb7cae128e075f457434b2cc9573b4f4bb4535f16d2ebd1cc5
BLAKE2b-256 checksum
How to use checksums
2ec5c0574d47920f30eb84938bbe5220b249bde9b648b4517e1726e50a4b0967
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.9

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

Download URL maison-2.0.0-py3-none-any.whl
Size 10.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e684fbab833f0f049d6e3556a127b8c5abe7cd18620f5b751a483e103dc4cbb5
BLAKE2b-256 checksum
How to use checksums
3024cd1e7447cc43aeaf3dd8a336d79876262ebf0fd003b73796ee78cad19cd3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.9

Release history Release notifications | RSS feed

2.0.2

2 release files

2.0.1

2 release files

This release

2.0.0 This release

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

1.3.0

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