"""Example module of the python package ctao_datamodel."""

from . import models
from ._core import AstroField, ModelBase, StrFlag, ValidUCD, doc, enum_doc
from ._fits import (
    fits_header_to_flat_dict,
    fits_header_to_instance,
    instance_to_fits_header,
)
from ._latex import (
    generate_latex_table_includes,
    keyword_mapping_latex_table,
    model_to_latex_table,
    model_to_table,
)
from ._plantuml import (
    PlantUMLDiagram,
    generate_plantuml_diagrams,
    model_to_plantuml_class,
    model_to_plantuml_relations,
)
from ._visitor import (
    ParentInfo,
    Relation,
    all_classes_in_model,
    classes_in_model,
    flatten_model_instance,
    print_model,
    related_classes_in_model,
    unflatten_model_instance,
    walk_model,
    walk_model_to_depth,
)
from .version import __version__

__all__ = [
    "AstroField",
    "ModelBase",
    "ParentInfo",
    "ValidUCD",
    "StrFlag",
    "__version__",
    "all_classes_in_model",
    "classes_in_model",
    "doc",
    "enum_doc",
    "flatten_model_instance",
    "unflatten_model_instance",
    "generate_latex_table_includes",
    "generate_plantuml_diagrams",
    "keyword_mapping_latex_table",
    "model_to_latex_table",
    "model_to_plantuml_class",
    "model_to_plantuml_relations",
    "model_to_table",
    "print_model",
    "related_classes_in_model",
    "Relation",
    "walk_model",
    "walk_model_to_depth",
    "models",
    "PlantUMLDiagram",
    "instance_to_fits_header",
    "fits_header_to_instance",
    "fits_header_to_flat_dict",
]
