Skip to content

UnionType

Bases: AbstractType

Source code in library_analyzer/processing/api/model/_types.py
@dataclass
class UnionType(AbstractType):
    types: list[AbstractType]

    @classmethod
    def from_json(cls, json: Any) -> Optional[UnionType]:
        if json["kind"] == cls.__name__:
            types = []
            for element in json["types"]:
                type_ = AbstractType.from_json(element)
                if type_ is not None:
                    types.append(type_)
            return UnionType(types)
        return None

    def to_json(self) -> dict[str, Any]:
        type_list = []
        for t in self.types:
            type_list.append(t.to_json())

        return {"kind": self.__class__.__name__, "types": type_list}

    def __hash__(self) -> int:
        return hash((frozenset(self.types)))

types: list[AbstractType] class-attribute

__hash__()

Source code in library_analyzer/processing/api/model/_types.py
def __hash__(self) -> int:
    return hash((frozenset(self.types)))

from_json(json) classmethod

Source code in library_analyzer/processing/api/model/_types.py
@classmethod
def from_json(cls, json: Any) -> Optional[UnionType]:
    if json["kind"] == cls.__name__:
        types = []
        for element in json["types"]:
            type_ = AbstractType.from_json(element)
            if type_ is not None:
                types.append(type_)
        return UnionType(types)
    return None

to_json()

Source code in library_analyzer/processing/api/model/_types.py
def to_json(self) -> dict[str, Any]:
    type_list = []
    for t in self.types:
        type_list.append(t.to_json())

    return {"kind": self.__class__.__name__, "types": type_list}