A flexible, type-safe configuration management library for Python
Project description
Configr
A flexible, type-safe configuration management library for Python.
Configr simplifies configuration management by leveraging Python's dataclasses and type hints to provide a robust, type-safe approach to application configuration.
- Type Safety: Leverage Python's type hints for configuration validation
- Dataclass Integration: Seamlessly map configuration files to Python dataclasses
- Multiple Format Support: Load configuration from JSON and YAML files
- Extendable: Easily add support for custom configuration formats
- Simple API: Convenient decorator-based approach for defining configuration classes
Requirements
- Python 3.10 or higher
Installation
pip install py-configr
# For YAML support
pip install py-configr[yaml]
Quick Start
Define your configuration class:
from configr import config_class, ConfigBase
@config_class(file_name="database.json")
class DatabaseConfig:
host: str
port: int = 5432
username: str
password: str
database: str
# Load configuration
db_config = ConfigBase.load(DatabaseConfig)
# Use configuration
print(f"Connecting to {db_config.database} at {db_config.host}:{db_config.port}")
Create a configuration file in _config/database.json:
{
"host": "localhost",
"username": "admin",
"password": "secure_password",
"database": "my_app"
}
Documentation
For complete documentation, visit our documentation site.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
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
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 py_configr-0.1.0.tar.gz.
File metadata
- Download URL: py_configr-0.1.0.tar.gz
- Upload date:
- Size: 17.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
039248c1afffbcf99b4b532eb580e1e70e3b8c14a496a634185a34c9c126a82e
|
|
| MD5 |
98002eb8eabade27dd695b96c9c1fdc5
|
|
| BLAKE2b-256 |
7ac8e633d705c0e0b912473e43af116857f164f7414f131788f62926ad8b13c4
|
File details
Details for the file py_configr-0.1.0-py3-none-any.whl.
File metadata
- Download URL: py_configr-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa04932f5048f225191d98c031d3aa61b42cbe77aab55fa80064ecd1f1158650
|
|
| MD5 |
fddf976f6365ee26974adfeb66a010a7
|
|
| BLAKE2b-256 |
4acfcdd5e22d1b275f13a6290aa94c5e48be9277b046551aba4fd372ae5aee65
|