Skip to content
Snippets Groups Projects
Commit c6e48482 authored by David Fairbrother's avatar David Fairbrother
Browse files

Re #19500 Updated run details caching method and made it ext aware

parent be8de684
No related merge requests found
...@@ -17,8 +17,7 @@ class Gem(AbstractInst): ...@@ -17,8 +17,7 @@ class Gem(AbstractInst):
calibration_dir=self._inst_settings.calibration_dir, calibration_dir=self._inst_settings.calibration_dir,
output_dir=self._inst_settings.output_dir, inst_prefix="GEM") output_dir=self._inst_settings.output_dir, inst_prefix="GEM")
self._cached_run_details = None self._cached_run_details = {}
self._cached_run_number = None
def focus(self, **kwargs): def focus(self, **kwargs):
self._inst_settings.update_attributes(kwargs=kwargs) self._inst_settings.update_attributes(kwargs=kwargs)
...@@ -32,8 +31,13 @@ class Gem(AbstractInst): ...@@ -32,8 +31,13 @@ class Gem(AbstractInst):
do_absorb_corrections=self._inst_settings.do_absorb_corrections) do_absorb_corrections=self._inst_settings.do_absorb_corrections)
def _get_run_details(self, run_number_string): def _get_run_details(self, run_number_string):
return gem_algs.get_run_details(run_number_string=run_number_string, inst_settings=self._inst_settings, run_number_string_key = run_number_string + str(self._inst_settings.file_extension)
is_vanadium_run=self._is_vanadium) if run_number_string_key in self._cached_run_details:
return self._cached_run_details[run_number_string_key]
self._cached_run_details[run_number_string_key] = gem_algs.get_run_details(
run_number_string=run_number_string, inst_settings=self._inst_settings, is_vanadium_run=self._is_vanadium)
return self._cached_run_details[run_number_string_key]
def _generate_auto_vanadium_calibration(self, run_details): def _generate_auto_vanadium_calibration(self, run_details):
raise NotImplementedError() raise NotImplementedError()
......
...@@ -20,8 +20,7 @@ class Pearl(AbstractInst): ...@@ -20,8 +20,7 @@ class Pearl(AbstractInst):
calibration_dir=self._inst_settings.calibration_dir, calibration_dir=self._inst_settings.calibration_dir,
output_dir=self._inst_settings.output_dir, inst_prefix="PEARL") output_dir=self._inst_settings.output_dir, inst_prefix="PEARL")
self._cached_run_details = None self._cached_run_details = {}
self._cached_run_details_number = None
def focus(self, **kwargs): def focus(self, **kwargs):
self._switch_long_mode_inst_settings(kwargs.get("long_mode")) self._switch_long_mode_inst_settings(kwargs.get("long_mode"))
...@@ -47,16 +46,13 @@ class Pearl(AbstractInst): ...@@ -47,16 +46,13 @@ class Pearl(AbstractInst):
do_absorb_corrections=self._inst_settings.absorb_corrections) do_absorb_corrections=self._inst_settings.absorb_corrections)
def _get_run_details(self, run_number_string): def _get_run_details(self, run_number_string):
if self._cached_run_details_number == run_number_string: run_number_string_key = run_number_string + str(self._inst_settings.file_extension)
return self._cached_run_details if run_number_string_key in self._cached_run_details:
return self._cached_run_details[run_number_string_key]
run_details = pearl_algs.get_run_details(run_number_string=run_number_string, self._cached_run_details[run_number_string_key] = pearl_algs.get_run_details(
inst_settings=self._inst_settings, run_number_string=run_number_string, inst_settings=self._inst_settings, is_vanadium_run=self._is_vanadium)
is_vanadium_run=self._is_vanadium) return self._cached_run_details[run_number_string_key]
self._cached_run_details_number = run_number_string
self._cached_run_details = run_details
return run_details
# Params # # Params #
......
...@@ -19,10 +19,7 @@ class Polaris(AbstractInst): ...@@ -19,10 +19,7 @@ class Polaris(AbstractInst):
output_dir=self._inst_settings.output_dir, inst_prefix="POL") output_dir=self._inst_settings.output_dir, inst_prefix="POL")
# Hold the last dictionary later to avoid us having to keep parsing the YAML # Hold the last dictionary later to avoid us having to keep parsing the YAML
self._run_details_last_run_number = None self._run_details_cached_obj = {}
self._run_details_cached_obj = None
self._ads_workaround = 0
def focus(self, **kwargs): def focus(self, **kwargs):
self._inst_settings.update_attributes(kwargs=kwargs) self._inst_settings.update_attributes(kwargs=kwargs)
...@@ -90,17 +87,14 @@ class Polaris(AbstractInst): ...@@ -90,17 +87,14 @@ class Polaris(AbstractInst):
return self._inst_settings.input_mode return self._inst_settings.input_mode
def _get_run_details(self, run_number_string): def _get_run_details(self, run_number_string):
if self._run_details_last_run_number == run_number_string: run_number_string_key = run_number_string + str(self._inst_settings.file_extension)
return self._run_details_cached_obj if run_number_string_key in self._run_details_cached_obj:
return self._run_details_cached_obj[run_number_string_key]
run_details = polaris_algs.get_run_details(run_number_string=run_number_string,
inst_settings=self._inst_settings, is_vanadium_run=self._is_vanadium)
# Hold obj in case same run range is requested self._run_details_cached_obj[run_number_string_key] = polaris_algs.get_run_details(
self._run_details_last_run_number = run_number_string run_number_string=run_number_string, inst_settings=self._inst_settings, is_vanadium_run=self._is_vanadium)
self._run_details_cached_obj = run_details
return run_details return self._run_details_cached_obj[run_number_string_key]
def _spline_vanadium_ws(self, focused_vanadium_spectra, instrument_version=''): def _spline_vanadium_ws(self, focused_vanadium_spectra, instrument_version=''):
masking_file_name = self._inst_settings.masking_file_name masking_file_name = self._inst_settings.masking_file_name
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment