"""Modules for input and output to and from LOBSTER.

This package provides classes and utilities for reading and writing LOBSTER input and output files.
"""

from __future__ import annotations

from pymatgen.io.lobster.future.inputs import LobsterIn
from pymatgen.io.lobster.future.outputs import (
    BWDF,
    CHARGE,
    CHARGE_LCFO,
    COBICAR,
    COBICAR_LCFO,
    COHPCAR,
    COHPCAR_LCFO,
    COOPCAR,
    DOSCAR,
    DOSCAR_LCFO,
    GROSSPOP,
    GROSSPOP_LCFO,
    ICOBILIST,
    ICOBILIST_LCFO,
    ICOHPLIST,
    ICOHPLIST_LCFO,
    ICOOPLIST,
    ICOXXLIST,
    POLARIZATION,
    BandOverlaps,
    Fatband,
    Fatbands,
    LobsterMatrices,
    LobsterOut,
    MadelungEnergies,
    NcICOBILIST,
    SitePotentials,
    Wavefunction,
)

__all__ = [
    "BWDF",
    "CHARGE",
    "CHARGE_LCFO",
    "COBICAR",
    "COBICAR_LCFO",
    "COHPCAR",
    "COHPCAR_LCFO",
    "COOPCAR",
    "DOSCAR",
    "DOSCAR_LCFO",
    "GROSSPOP",
    "GROSSPOP_LCFO",
    "ICOBILIST",
    "ICOBILIST_LCFO",
    "ICOHPLIST",
    "ICOHPLIST_LCFO",
    "ICOOPLIST",
    "ICOXXLIST",
    "POLARIZATION",
    "BandOverlaps",
    "Fatband",
    "Fatbands",
    "LobsterIn",
    "LobsterMatrices",
    "LobsterOut",
    "MadelungEnergies",
    "NcICOBILIST",
    "SitePotentials",
    "Wavefunction",
]

LOBSTER_OBJECTS = {
    "BWDF": BWDF,
    "CHARGE": CHARGE,
    "CHARGE_LCFO": CHARGE_LCFO,
    "COBICAR": COBICAR,
    "COBICAR_LCFO": COBICAR_LCFO,
    "COHPCAR": COHPCAR,
    "COHPCAR_LCFO": COHPCAR_LCFO,
    "COOPCAR": COOPCAR,
    "DOSCAR": DOSCAR,
    "DOSCAR_LCFO": DOSCAR_LCFO,
    "GROSSPOP": GROSSPOP,
    "GROSSPOP_LCFO": GROSSPOP_LCFO,
    "ICOBILIST": ICOBILIST,
    "ICOBILIST_LCFO": ICOBILIST_LCFO,
    "ICOHPLIST": ICOHPLIST,
    "ICOHPLIST_LCFO": ICOHPLIST_LCFO,
    "ICOOPLIST": ICOOPLIST,
    "ICOXXLIST": ICOXXLIST,
    "POLARIZATION": POLARIZATION,
    "BandOverlaps": BandOverlaps,
    "Fatband": Fatband,
    "Fatbands": Fatbands,
    "LobsterIn": LobsterIn,
    "LobsterMatrices": LobsterMatrices,
    "LobsterOut": LobsterOut,
    "MadelungEnergies": MadelungEnergies,
    "NcICOBILIST": NcICOBILIST,
    "SitePotentials": SitePotentials,
    "Wavefunction": Wavefunction,
}
