Skip to main content

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 orjson for 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hectiq_config-1.1.0.tar.gz (6.1 kB view hashes)

Uploaded Source

Built Distribution

hectiq_config-1.1.0-py3-none-any.whl (6.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page