Lightweight and Easy to use configuration manager for Python projects
Project description
confkit
Type-safe configuration manager for Python projects using descriptors and ConfigParser.
Full documentation: confkit docs
Supported Python Versions
confkit follows the Python version support policy as outlined in the Python Developer's Guide:
- We support all active and maintenance releases of Python, starting with 3.11
- End-of-life (EOL) Python versions are not supported
- We aim to support Python release candidates to stay ahead of the release cycle
This ensures that confkit remains compatible with current Python versions while allowing us to leverage modern language features.
What is it?
confkit is a Python library that provides type-safe configuration management with automatic type conversion and validation. It uses descriptors to define configuration values as class attributes that automatically read from and write to INI files.
What does it do?
- Type-safe configuration with automatic type conversion
- Automatic INI file management
- Default value handling with file persistence
- Optional value support
- Enum support (Enum, StrEnum, IntEnum, IntFlag)
- Method decorators for injecting configuration values
- Runtime type validation
Getting Started / Usage
For full quickstart, advanced patterns (custom data types, decorators, argparse integration), and runnable examples, visit the documentation site:
Direct entry points:
- Quickstart & descriptor patterns: Usage Guide
- All examples: Examples Overview
- Custom datatype tutorial: Custom Data Type example
- API reference: pdoc-generated symbol index
You can still browse example source locally under examples/.
How to contribute?
- Fork the repository and clone locally
- Install dependencies:
uv sync --group test - Run tests:
pytest . - Run linting:
ruff check . - Make changes following existing patterns
- Add tests for new functionality
- Submit a pull request
Development
git clone https://github.com/HEROgold/confkit.git
cd confkit
uv sync --group test
pytest .
ruff check .
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file confkit-0.7.0.tar.gz.
File metadata
- Download URL: confkit-0.7.0.tar.gz
- Upload date:
- Size: 90.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb50e249c7b9301901dae4a21946eb6fafab66a4b2e2d54ec94ee50703ab8d06
|
|
| MD5 |
e9782dd89faca38a3f66882761c877bc
|
|
| BLAKE2b-256 |
c4bb44b29f705c15821ac5dce021c27c6eb59f774ff94a24c9aec202b906ebbc
|
Provenance
The following attestation bundles were made for confkit-0.7.0.tar.gz:
Publisher:
pypi.yml on HEROgold/confkit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
confkit-0.7.0.tar.gz -
Subject digest:
fb50e249c7b9301901dae4a21946eb6fafab66a4b2e2d54ec94ee50703ab8d06 - Sigstore transparency entry: 641601368
- Sigstore integration time:
-
Permalink:
HEROgold/confkit@e0ff76812c945a22ee24b59f2c5b919226d7eff2 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/HEROgold
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@e0ff76812c945a22ee24b59f2c5b919226d7eff2 -
Trigger Event:
repository_dispatch
-
Statement type:
File details
Details for the file confkit-0.7.0-py3-none-any.whl.
File metadata
- Download URL: confkit-0.7.0-py3-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3518e3aa080935db4e379dd9f266bc8a328ab58589ba45872a60b2cfa074864b
|
|
| MD5 |
2f731ab38e20135e1048a05926279205
|
|
| BLAKE2b-256 |
afdc25fca2d3ecf604fc9fb11839730ac8116163df23bc22d2095bacd6bba18a
|
Provenance
The following attestation bundles were made for confkit-0.7.0-py3-none-any.whl:
Publisher:
pypi.yml on HEROgold/confkit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
confkit-0.7.0-py3-none-any.whl -
Subject digest:
3518e3aa080935db4e379dd9f266bc8a328ab58589ba45872a60b2cfa074864b - Sigstore transparency entry: 641601369
- Sigstore integration time:
-
Permalink:
HEROgold/confkit@e0ff76812c945a22ee24b59f2c5b919226d7eff2 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/HEROgold
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@e0ff76812c945a22ee24b59f2c5b919226d7eff2 -
Trigger Event:
repository_dispatch
-
Statement type: