From 7218b61e4073b5c3be9344434b3ad74a184ba999 Mon Sep 17 00:00:00 2001
From: Cammille Carinan <cammille.carinan@xfel.eu>
Date: Wed, 12 May 2021 17:18:43 +0200
Subject: [PATCH] Refactor detectors module importing

---
 src/toolbox_scs/detectors/__init__.py         | 97 ++++---------------
 .../detectors/azimuthal_integrator.py         |  5 +
 src/toolbox_scs/detectors/bam_detectors.py    |  3 +
 src/toolbox_scs/detectors/digitizers.py       |  8 ++
 src/toolbox_scs/detectors/dssc.py             |  5 +-
 src/toolbox_scs/detectors/dssc_data.py        |  7 ++
 src/toolbox_scs/detectors/dssc_misc.py        |  8 ++
 src/toolbox_scs/detectors/dssc_processing.py  |  4 +
 src/toolbox_scs/detectors/fccd.py             |  3 +-
 src/toolbox_scs/detectors/xgm.py              |  5 +
 10 files changed, 63 insertions(+), 82 deletions(-)

diff --git a/src/toolbox_scs/detectors/__init__.py b/src/toolbox_scs/detectors/__init__.py
index a34b0b9..32b941f 100644
--- a/src/toolbox_scs/detectors/__init__.py
+++ b/src/toolbox_scs/detectors/__init__.py
@@ -1,82 +1,21 @@
-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 .pes import get_pes_tof, get_pes_params
-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)
+from .azimuthal_integrator import *
+from .bam_detectors import *
+from .digitizers import *
+from .dssc import *
+from .dssc_data import *
+from .dssc_misc import *
+from .dssc_plot import *
+from .dssc_processing import *
+from .fccd import *
+from .xgm import *
 
 __all__ = (
-    # Functions
-    "get_xgm",
-    "calibrate_xgm",
-    "get_peaks",
-    "get_tim_peaks",
-    "get_laser_peaks",
-    "get_digitizer_peaks",
-    "check_peak_params",
-    "get_bam",
-    "get_pes_tof",
-    "get_pes_params",
-    "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
+    azimuthal_integrator.__all__
+    + bam_detectors.__all__
+    + digitizers.__all__
+    + dssc.__all__
+    + dssc_data.__all__
+    + dssc_misc.__all__
+    + dssc_processing.__all__
+    + xgm.__all__
 )
-
-
-# -----------------------------------------------------------------------------
-# 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',
-    'pes'
-    ]
-
-
-for name in dir():
-    if name in clean_ns:
-        del globals()[name]
-
-del globals()['clean_ns']
-del globals()['name']
diff --git a/src/toolbox_scs/detectors/azimuthal_integrator.py b/src/toolbox_scs/detectors/azimuthal_integrator.py
index d6326df..235c958 100644
--- a/src/toolbox_scs/detectors/azimuthal_integrator.py
+++ b/src/toolbox_scs/detectors/azimuthal_integrator.py
@@ -1,6 +1,11 @@
 import logging
 import numpy as np
 
+__all__ = [
+    'AzimuthalIntegrator',
+    'AzimuthalIntegratorDSSC'
+]
+
 log = logging.getLogger(__name__)
 
 
diff --git a/src/toolbox_scs/detectors/bam_detectors.py b/src/toolbox_scs/detectors/bam_detectors.py
index 12d6ef1..667d20a 100644
--- a/src/toolbox_scs/detectors/bam_detectors.py
+++ b/src/toolbox_scs/detectors/bam_detectors.py
@@ -15,6 +15,9 @@ from ..misc.bunch_pattern_external import is_pulse_at
 from ..mnemonics_machinery import (mnemonics_to_process,
                                    mnemonics_for_run)
 
+__all__ = [
+    'get_bam',
+]
 
 log = logging.getLogger(__name__)
 
diff --git a/src/toolbox_scs/detectors/digitizers.py b/src/toolbox_scs/detectors/digitizers.py
index b677323..339d17a 100644
--- a/src/toolbox_scs/detectors/digitizers.py
+++ b/src/toolbox_scs/detectors/digitizers.py
@@ -18,6 +18,14 @@ from ..util.exceptions import ToolBoxValueError
 from ..mnemonics_machinery import (mnemonics_to_process,
                                    mnemonics_for_run)
 
+__all__ = [
+    'check_peak_params',
+    'get_digitizer_peaks',
+    'get_laser_peaks',
+    'get_peaks',
+    'get_tim_peaks',
+]
+
 log = logging.getLogger(__name__)
 
 
diff --git a/src/toolbox_scs/detectors/dssc.py b/src/toolbox_scs/detectors/dssc.py
index aaa80bf..7aa93a9 100644
--- a/src/toolbox_scs/detectors/dssc.py
+++ b/src/toolbox_scs/detectors/dssc.py
@@ -29,7 +29,10 @@ from .dssc_misc import (
 from .dssc_processing import (
         process_dssc_data, create_empty_dataset)
 
-__all__ = ["DSSCBinner", "DSSCFormatter"]
+__all__ = [
+    "DSSCBinner",
+    "DSSCFormatter"]
+
 log = logging.getLogger(__name__)
 
 
diff --git a/src/toolbox_scs/detectors/dssc_data.py b/src/toolbox_scs/detectors/dssc_data.py
index 0781177..94b2336 100644
--- a/src/toolbox_scs/detectors/dssc_data.py
+++ b/src/toolbox_scs/detectors/dssc_data.py
@@ -6,6 +6,13 @@ import xarray as xr
 
 from ..util.exceptions import ToolBoxFileError
 
+__all__ = [
+    'get_data_formatted',
+    'load_xarray',
+    'save_attributes_h5',
+    'save_xarray',
+]
+
 log = logging.getLogger(__name__)
 
 
diff --git a/src/toolbox_scs/detectors/dssc_misc.py b/src/toolbox_scs/detectors/dssc_misc.py
index 96f5254..db89aa7 100644
--- a/src/toolbox_scs/detectors/dssc_misc.py
+++ b/src/toolbox_scs/detectors/dssc_misc.py
@@ -14,6 +14,14 @@ import extra_data as ed
 from .xgm import get_xgm
 from .digitizers import get_tim_peaks
 
+__all__ = [
+    'create_dssc_bins',
+    'get_xgm_formatted',
+    'load_dssc_info',
+    'load_mask',
+    'quickmask_DSSC_ASIC',
+]
+
 log = logging.getLogger(__name__)
 
 
diff --git a/src/toolbox_scs/detectors/dssc_processing.py b/src/toolbox_scs/detectors/dssc_processing.py
index 2858308..a95607d 100644
--- a/src/toolbox_scs/detectors/dssc_processing.py
+++ b/src/toolbox_scs/detectors/dssc_processing.py
@@ -15,6 +15,10 @@ import extra_data as ed
 from ..mnemonics_machinery import mnemonics_for_run
 from .dssc_data import save_xarray
 
+__all__ = [
+    'process_dssc_data'
+]
+
 log = logging.getLogger(__name__)
 
 
diff --git a/src/toolbox_scs/detectors/fccd.py b/src/toolbox_scs/detectors/fccd.py
index 0396df5..f0cb5de 100644
--- a/src/toolbox_scs/detectors/fccd.py
+++ b/src/toolbox_scs/detectors/fccd.py
@@ -1,6 +1,5 @@
 from joblib import Parallel, delayed, parallel_backend
 from time import strftime
-import tempfile
 import shutil
 from tqdm.auto import tqdm
 import os
@@ -17,11 +16,11 @@ import h5py
 from glob import glob
 from imageio import imread
 
-import ToolBox as tb
 from ..constants import mnemonics as _mnemonics
 from .azimuthal_integrator import AzimuthalIntegrator
 from ..misc.laser_utils import positionToDelay
 
+
 class FastCCD:
     
     def __init__(self, proposal, distance=1, raw=False):
diff --git a/src/toolbox_scs/detectors/xgm.py b/src/toolbox_scs/detectors/xgm.py
index cdb84dc..944dcc5 100644
--- a/src/toolbox_scs/detectors/xgm.py
+++ b/src/toolbox_scs/detectors/xgm.py
@@ -16,6 +16,11 @@ from ..misc.bunch_pattern_external import is_sase_1, is_sase_3
 from ..mnemonics_machinery import (mnemonics_to_process,
                                    mnemonics_for_run)
 
+__all__ = [
+    'calibrate_xgm',
+    'get_xgm',
+]
+
 
 log = logging.getLogger(__name__)
 
-- 
GitLab