Skip to content

Interface

oqd_compiler_infrastructure.interface

VisitableBaseModel

Bases: BaseModel

Class representing a visitable datastruct

Source code in oqd-compiler-infrastructure/src/oqd_compiler_infrastructure/interface.py
class VisitableBaseModel(BaseModel):
    """
    Class representing a visitable datastruct
    """

    model_config = ConfigDict(validate_assignment=True)

    def accept(self, pass_):
        return pass_(self)

TypeReflectBaseModel

Bases: VisitableBaseModel

Class representing a datastruct with type reflection

Source code in oqd-compiler-infrastructure/src/oqd_compiler_infrastructure/interface.py
class TypeReflectBaseModel(VisitableBaseModel):
    """
    Class representing a datastruct with type reflection
    """

    class_: Optional[str]

    @model_validator(mode="before")
    @classmethod
    def reflect(cls, data):
        if isinstance(data, BaseModel):
            return data
        if "class_" in data.keys():
            if data["class_"] != cls.__name__:
                raise ValueError('discrepency between "class_" field and model type')

        data["class_"] = cls.__name__

        return data