A simple API to manipulate configuration files
Project description
Hectiq Config
This Python module provides a powerful and flexible configuration management system based on Pydantic models. It is designed to create, manage, and validate configurations with ease.
Features
- Dynamic Configuration Classes: Utilize Pydantic to dynamically create configuration models from dictionaries.
- Validation and Casting: Validate configurations against a defined template and cast configurations to ensure correct types and structures.
- Serialization and Deserialization: Load and save configurations from and to JSON files using
orjsonfor efficient IO operations. - Nested Configurations: Support for nested configurations, allowing complex, hierarchical settings to be managed cleanly and efficiently.
Dependencies
pydantic: Used for creating data models and validation.orjson: Used for fast JSON serialization and deserialization.re: Used for regex operations, particularly in handling aliases in configuration keys.
Installation
pip install hectiq-config
Usage
Creating a Configuration
from hectiq_config import Config
config = Config(a="12345", b=12345, c=[1, 2, 3], d={"x": 1, "y": 2})
Loading and Saving Configurations
config.save('path/to/config.json')
loaded_config = Config.load('path/to/config.json')
Validating Configurations
You can validate a configuration against a template to ensure it has the correct structure and types. A template is a dictionary that defines the expected structure of the configuration.
For example, define a template as follows:
template = {
"a": str,
"b": int,
"c": list,
"d": {
"x": int,
"y": int
}
}
Then validate the configuration against the template:
is_valid = config.validate(template=template, raise_exception=True)
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 hectiq_config-1.1.0.tar.gz.
File metadata
- Download URL: hectiq_config-1.1.0.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
423b08a368f5b401c46f654e3e53d4deb23f3760dbb5cd955148654d4500105d
|
|
| MD5 |
2b873d89b4e15c91c6a6fa685c8ee420
|
|
| BLAKE2b-256 |
f6eedda081ab8f77eb90c83d71d253345090a8ddde9fe8556bfc72c13dcda2f9
|
File details
Details for the file hectiq_config-1.1.0-py3-none-any.whl.
File metadata
- Download URL: hectiq_config-1.1.0-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07deeab27b4201a3748d5b51d08b34474e980202272d60ffba5b4bf71d0a23e3
|
|
| MD5 |
38581557aa7709d621a4e5175112cf65
|
|
| BLAKE2b-256 |
af0a920d197cb3124246f71e0c3c5f5c4cc2131e33e75660a10552f4f850edde
|