from .xgm import (
    get_xgm, calibrate_xgm)
from .digitizers import (
    get_peaks, get_tim_peaks, get_laser_peaks, get_digitizer_peaks,
    check_peak_params)
from .bam_detectors import get_bam
from .dssc_data import (
    save_xarray, load_xarray, get_data_formatted, save_attributes_h5)
from .dssc_misc import (
    load_dssc_info, create_dssc_bins, quickmask_DSSC_ASIC,
    get_xgm_formatted, load_mask)
from .dssc_processing import (
    process_dssc_data)
from .dssc import (
    DSSCBinner, DSSCFormatter)
from .azimuthal_integrator import (
    AzimuthalIntegrator, AzimuthalIntegratorDSSC)

__all__ = (
    # Functions
    "get_xgm",
    "calibrate_xgm",
    "get_peaks",
    "get_tim_peaks",
    "get_laser_peaks",
    "get_digitizer_peaks",
    "check_peak_params",
    "get_bam",
    "save_xarray",
    "load_xarray",
    "get_data_formatted",
    "save_attributes_h5",
    "load_dssc_info",
    "create_dssc_bins",
    "quickmask_DSSC_ASIC",
    "get_xgm_formatted",
    "load_mask",
    "calc_xgm_frame_indices",
    "process_dssc_data",
    # Classes
    "DSSCBinner",
    "DSSCFormatter",
    "AzimuthalIntegrator",
    "AzimuthalIntegratorDSSC",
    # Variables
)


# -----------------------------------------------------------------------------
# Clean namespace
#     -> certain filenames we dont need in the namespace. Especially not those
#     that are marked as private by using an underscore (_<filename>.py).
# -----------------------------------------------------------------------------

clean_ns = [
    # filenames
    'DSSC_bkp',
    'DSSC1module',
    'dssc',
    'dssc_routines',
    'dssc_processing',
    'dssc_data',
    'dssc_misc',
    'dssc_plot',
    'azimuthal_integrator',
    'FastCCD',
    'xgm',
    'digitizers',
    'bam_detectors'
    ]


for name in dir():
    if name in clean_ns:
        del globals()[name]

del globals()['clean_ns']
del globals()['name']