diff --git a/pyzebra/app/input_controls.py b/pyzebra/app/input_controls.py index 7e374ec..f9a45f6 100644 --- a/pyzebra/app/input_controls.py +++ b/pyzebra/app/input_controls.py @@ -9,7 +9,14 @@ import pyzebra class InputControls: - def __init__(self, dataset, dlfiles, on_file_open=lambda: None, on_monitor_change=lambda: None): + def __init__( + self, + dataset, + dlfiles, + merge_matching_scans, + on_file_open=lambda: None, + on_monitor_change=lambda: None, + ): doc = curdoc() log = doc.logger @@ -55,10 +62,14 @@ class InputControls: if not new_data: # first file new_data = file_data - pyzebra.merge_duplicates(new_data, log=log) + if merge_matching_scans: + pyzebra.merge_duplicates(new_data, log=log) dlfiles.set_names([base] * dlfiles.n_files) else: - pyzebra.merge_datasets(new_data, file_data, log=log) + if merge_matching_scans: + pyzebra.merge_datasets(new_data, file_data, log=log) + else: + new_data.extend(file_data) if new_data: dataset.clear() @@ -83,7 +94,10 @@ class InputControls: continue pyzebra.normalize_dataset(file_data, monitor_spinner.value) - pyzebra.merge_datasets(dataset, file_data, log=log) + if merge_matching_scans: + pyzebra.merge_datasets(dataset, file_data, log=log) + else: + dataset.extend(file_data) if file_data: on_file_open() @@ -107,10 +121,14 @@ class InputControls: if not new_data: # first file new_data = file_data - pyzebra.merge_duplicates(new_data, log=log) + if merge_matching_scans: + pyzebra.merge_duplicates(new_data, log=log) dlfiles.set_names([base] * dlfiles.n_files) else: - pyzebra.merge_datasets(new_data, file_data, log=log) + if merge_matching_scans: + pyzebra.merge_datasets(new_data, file_data, log=log) + else: + new_data.extend(file_data) if new_data: dataset.clear() @@ -136,7 +154,10 @@ class InputControls: continue pyzebra.normalize_dataset(file_data, monitor_spinner.value) - pyzebra.merge_datasets(dataset, file_data, log=log) + if merge_matching_scans: + pyzebra.merge_datasets(dataset, file_data, log=log) + else: + dataset.extend(file_data) if file_data: on_file_open() diff --git a/pyzebra/app/panel_ccl_integrate.py b/pyzebra/app/panel_ccl_integrate.py index 4bcf653..e9e51d9 100644 --- a/pyzebra/app/panel_ccl_integrate.py +++ b/pyzebra/app/panel_ccl_integrate.py @@ -108,7 +108,11 @@ def create(): app_fitctrl.update_result_textarea(scan) app_inputctrl = app.InputControls( - dataset, app_dlfiles, on_file_open=_init_datatable, on_monitor_change=_update_plot + dataset, + app_dlfiles, + merge_matching_scans=True, + on_file_open=_init_datatable, + on_monitor_change=_update_plot, ) # Main plot diff --git a/pyzebra/app/panel_param_study.py b/pyzebra/app/panel_param_study.py index 903e02b..8919d91 100644 --- a/pyzebra/app/panel_param_study.py +++ b/pyzebra/app/panel_param_study.py @@ -205,7 +205,11 @@ def create(): _update_overview() app_inputctrl = app.InputControls( - dataset, app_dlfiles, on_file_open=_init_datatable, on_monitor_change=_monitor_change + dataset, + app_dlfiles, + merge_matching_scans=False, + on_file_open=_init_datatable, + on_monitor_change=_monitor_change, ) # Main plot