# DO NOT EDIT
# This file was generated by idol_py, any changes will be lost when idol_py is rerun again
from ..__idol__ import Struct, Primitive, Map, List
from typing import MutableMapping, MutableSequence
from ...schema.type import Type as ScaffoldType


class SchemaModule(Struct):
    """
    Metadata contained about a module.
    """

    module_name: str

    types_by_name: MutableMapping[str, ScaffoldType]

    types_dependency_ordering: MutableSequence[str]

    __field_constructors__ = [
        ("module_name", "module_name", Primitive.of(str), dict(optional=False),),
        (
            "types_by_name",
            "types_by_name",
            Map.of(ScaffoldType, dict(atleast_one=False)),
            dict(optional=False),
        ),
        (
            "types_dependency_ordering",
            "types_dependency_ordering",
            List.of(Primitive.of(str), dict(atleast_one=False)),
            dict(optional=False),
        ),
    ]
