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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 3

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

Hashes for hectiq_config-1.1.0.tar.gz
Algorithm Hash digest
SHA256 423b08a368f5b401c46f654e3e53d4deb23f3760dbb5cd955148654d4500105d
MD5 2b873d89b4e15c91c6a6fa685c8ee420
BLAKE2b-256 f6eedda081ab8f77eb90c83d71d253345090a8ddde9fe8556bfc72c13dcda2f9

See more details on using hashes here.

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

Hashes for hectiq_config-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 07deeab27b4201a3748d5b51d08b34474e980202272d60ffba5b4bf71d0a23e3
MD5 38581557aa7709d621a4e5175112cf65
BLAKE2b-256 af0a920d197cb3124246f71e0c3c5f5c4cc2131e33e75660a10552f4f850edde

See more details on using hashes here.

Supported by

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