Source code for bo4e.com.com

"""
Contains base class for all components
"""

from decimal import Decimal
from typing import Type, TypeVar

from humps.main import camelize

# pylint: disable=no-name-in-module
from pydantic import BaseModel


# pylint: disable=too-few-public-methods
#
[docs]class COM(BaseModel): """ base class for all components .. raw:: html <object data="../_static/images/bo4e/com/COM.svg" type="image/svg+xml"></object> .. HINT:: `COM JSON Schema <https://json-schema.app/view/%23?url=https://raw.githubusercontent.com/Hochfrequenz/BO4E-python/main/json_schemas/com/COM.json>`_ """
[docs] class Config: """ basic configuration for pydantic's behaviour """ alias_generator = camelize allow_population_by_field_name = True json_encoders = {Decimal: str}
# pylint: disable=invalid-name #: Any type derived from COM including those that do not directly inherit from COM TCom = TypeVar("TCom", bound=Type[COM]) # todo: find out if this way of typing is correct