Source code for pycsamt.jones

# Author: LKouadio <etanoyau@gmail.com>
# License: LGPL-3.0-or-later

"""Jones-format transfer functions, blocks, headers, spectra, and utilities."""

from __future__ import annotations

from .blocks import (  # noqa: F401
    JBlock,
    JBlocks,
    RBlock,
    RRow,
    TFBlock,
    TFRow,
)
from .cbase import (  # noqa: F401
    JCBBase,
    JCoreParser,
    JParseMixin,
)
from .collection import JCollection, JCollectionMixin
from .components import JComponentMixin
from .heads import (  # noqa: F401
    Banner,
    Head,
    HeadMixin,
    Heads,
    Info,
    InfoMixin,
)
from .j import JFile, JIOMixin, JMixin
from .property import JSiteProperty
from .utils import iter_lines, parse_datatype_units
from .validation import IsJ, is_j_file

__all__ = [
    # heads / header API
    "Banner",
    "Head",
    "Heads",
    "HeadMixin",
    "Info",
    "InfoMixin",
    "JSiteProperty",
    # blocks API
    "RRow",
    "TFRow",
    "JBlock",
    "RBlock",
    "TFBlock",
    "JBlocks",
    # high-level IO
    "JMixin",
    "JIOMixin",
    "JFile",
    # validation
    "IsJ",
    "is_j_file",
    # collection helpers
    "JParseMixin",
    "JCoreParser",
    "JCBBase",
    # "_as_path",
    # "is_j_like",
    "JCollectionMixin",
    "JCollection",
    # components bag façade
    "JComponentMixin",
    # utils types
    "iter_lines",
    "parse_datatype_units",
]