Configuration Module

Configuration Module#

Configuration management utilities for Rizemind.

This module provides tools for loading, transforming, and managing configuration data for Rizemind applications. It includes support for TOML configuration files, Pydantic-based configuration models, and integration with Flower’s configuration system through data transformation utilities.

The module offers two main configuration approaches:

  • TomlConfig: For loading configuration from TOML files with environment variable substitution

  • BaseConfig: A Pydantic-based model for structured configuration with validation and type safety

Additionally, it provides a comprehensive set of transformation functions to convert between different configuration formats used by the Flower federated learning framework.

Typical usage example:
>>> # Load configuration from TOML file
>>> config = TomlConfig("config.toml")
>>> database_host = config.get("database.host", "localhost")
>>> # Use Pydantic-based configuration
>>> class MyConfig(BaseConfig):
>>>   host: str = "localhost"
>>>   port: int = 8080
>>> my_config = MyConfig(host="example.com")
>>> flower_config = my_config.to_config_record()
>>> # Transform configuration data
>>> nested_config = {"db": {"host": "localhost", "port": 5432}}
>>> flat_config = flatten(
...     nested_config
... )  # {"db.host": "localhost", "db.port": 5432}