Skip to content

Commit

Permalink
Merge pull request #165 from zhujun98/move_definition_of_meta_source
Browse files Browse the repository at this point in the history
Move definition of meta source from config to SourceCatalog
  • Loading branch information
zhujun98 committed Apr 17, 2020
2 parents 0463b3e + a82b17a commit 4dd2376
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 19 deletions.
11 changes: 0 additions & 11 deletions extra_foam/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -389,13 +389,6 @@ def __init__(self):
self.control_sources = dict()
# pipeline data sources listed in the DataSourceWidget
self.pipeline_sources = dict()
# meta data sources which is not listed in the DataSourceWidget but
# is used in statistics analysis
self.meta_sources = {
"Metadata": {
"META": ["timestamp.tid"],
}
}

self.appendix_streamers = []

Expand Down Expand Up @@ -554,10 +547,6 @@ def control_sources(self):
def pipeline_sources(self):
return self._data.pipeline_sources

@property
def meta_sources(self):
return self._data.meta_sources

@property
def appendix_streamers(self):
return self._data.appendix_streamers
Expand Down
8 changes: 6 additions & 2 deletions extra_foam/database/data_source.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ class SourceCatalog(abc.Collection):
Served as a catalog for searching data sources.
"""

TRAIN_ID = "META timestamp.tid"
_meta = (TRAIN_ID,)

def __init__(self):
super().__init__()

Expand All @@ -40,9 +44,9 @@ def __init__(self):
self._main_detector_category = config["DETECTOR"]
self._main_detector = ''

def __contains__(self, item):
def __contains__(self, src):
"""Override."""
return self._items.__contains__(item)
return self._items.__contains__(src) or self._meta.__contains__(src)

def __len__(self):
"""Override."""
Expand Down
2 changes: 2 additions & 0 deletions extra_foam/database/tests/test_datasource.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ def testGeneral(self):
catalog = SourceCatalog()
item = SourceItem('DSSC', 'dssc_device_id', [], 'image.data', None, None)

self.assertIn("META timestamp.tid", catalog)

src = f"{item.name} {item.property}"
catalog.add_item(item)
self.assertEqual(src, catalog.main_detector)
Expand Down
11 changes: 9 additions & 2 deletions extra_foam/gui/ctrl_widgets/bin_ctrl_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
from ..gui_helpers import invert_dict
from ...config import AnalysisType, BinMode, config
from ...database import Metadata as mt
from ...database import SourceCatalog


_N_PARAMS = 2
Expand Down Expand Up @@ -50,6 +51,7 @@ class BinCtrlWidget(_AbstractGroupBoxCtrlWidget):
_user_defined_key = config["SOURCE_USER_DEFINED_CATEGORY"]

_UNDEFINED_CATEGORY = ''
_META_CATEGORY = 'Metadata'

def __init__(self, *args, **kwargs):
super().__init__("Binning setup", *args, **kwargs)
Expand All @@ -67,7 +69,12 @@ def __init__(self, *args, **kwargs):
self._auto_level_btn = QPushButton("Auto level")

self._src_instrument = config.control_sources
self._src_metadata = config.meta_sources
tid_key_split = SourceCatalog.TRAIN_ID.split(" ")
self._src_metadata = {
self._META_CATEGORY: {
tid_key_split[0]: [tid_key_split[1]],
}
}

self.initUI()
self.initConnections()
Expand Down Expand Up @@ -199,7 +206,7 @@ def onCategoryChange(self, i_row, category):

self.onBinParamChangeLe(i_row)
else:
srcs = self._src_metadata if category in config.meta_sources \
srcs = self._src_metadata if category in self._src_metadata \
else self._src_instrument
category_srcs = srcs.get(category, dict())
device_id_cb = QComboBox()
Expand Down
12 changes: 9 additions & 3 deletions extra_foam/gui/ctrl_widgets/correlation_ctrl_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
from ..gui_helpers import invert_dict
from ...config import AnalysisType, config
from ...database import Metadata as mt
from ...database import SourceCatalog

_N_PARAMS = 2 # maximum number of correlated parameters
_DEFAULT_RESOLUTION = 0.0
Expand All @@ -42,6 +43,7 @@ class CorrelationCtrlWidget(_AbstractGroupBoxCtrlWidget):
_user_defined_key = config["SOURCE_USER_DEFINED_CATEGORY"]

_UNDEFINED_CATEGORY = ''
_META_CATEGORY = 'Metadata'

def __init__(self, *args, **kwargs):
super().__init__("Correlation setup", *args, **kwargs)
Expand All @@ -55,8 +57,12 @@ def __init__(self, *args, **kwargs):
self._table = QTableWidget()

self._src_instrument = config.control_sources
self._src_metadata = config.meta_sources

tid_key_split = SourceCatalog.TRAIN_ID.split(" ")
self._src_metadata = {
self._META_CATEGORY: {
tid_key_split[0]: [tid_key_split[1]],
}
}
self.initUI()
self.initConnections()

Expand Down Expand Up @@ -165,7 +171,7 @@ def onCategoryChange(self, i_row, category):

self.onCorrelationParamChangeLe(i_row)
else:
srcs = self._src_metadata if category in config.meta_sources \
srcs = self._src_metadata if category in self._src_metadata \
else self._src_instrument
category_srcs = srcs.get(category, dict())
device_id_cb = QComboBox()
Expand Down
4 changes: 3 additions & 1 deletion extra_foam/pipeline/processors/image_assembler.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,14 @@
from .base_processor import _RedisParserMixin
from ..exceptions import AssemblingError
from ...config import config, GeomAssembler, DataSource
from ...database import SourceCatalog
from ...geometries import load_geometry
from ...ipc import process_logger as logger


_IMAGE_DTYPE = config['SOURCE_PROC_IMAGE_DTYPE']
_RAW_IMAGE_DTYPE = config['SOURCE_RAW_IMAGE_DTYPE']
_TRAIN_ID = SourceCatalog.TRAIN_ID


class ImageAssemblerFactory(ABC):
Expand Down Expand Up @@ -238,7 +240,7 @@ def process(self, data):
}
# Assign the global train ID once the main detector was
# successfully assembled.
raw["META timestamp.tid"] = meta[src]["tid"]
raw[_TRAIN_ID] = meta[src]["tid"]

class AgipdImageAssembler(BaseAssembler):
def _get_modules_bridge(self, data, src):
Expand Down

0 comments on commit 4dd2376

Please sign in to comment.