From 5a32f5ba691e6505b8dcc931cbe9551451f948c3 Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Wed, 26 Apr 2023 16:42:59 +0200 Subject: [PATCH 01/36] flash module --- sed/loader/exception_handlers.py | 8 + sed/loader/flash/flash.py | 566 +++++++++++++++++++++++++++++++ sed/loader/utils.py | 63 ++++ 3 files changed, 637 insertions(+) create mode 100644 sed/loader/exception_handlers.py create mode 100644 sed/loader/flash/flash.py diff --git a/sed/loader/exception_handlers.py b/sed/loader/exception_handlers.py new file mode 100644 index 00000000..5f7b640f --- /dev/null +++ b/sed/loader/exception_handlers.py @@ -0,0 +1,8 @@ +"Module for purpose of exception handling" + + +class NoFilesFoundError(Exception): + """Custom exception for when no files are found in the specified directory.""" + + def __init__(self, message): + self.message = message diff --git a/sed/loader/flash/flash.py b/sed/loader/flash/flash.py new file mode 100644 index 00000000..5804aa2a --- /dev/null +++ b/sed/loader/flash/flash.py @@ -0,0 +1,566 @@ +""" +This module implements the flash data loader. +The raw hdf5 data is saved into parquet files and loaded as a pandas dataframe. +The class attributes are inherited by dataframeReader - a wrapper class. +""" +import os +from functools import reduce +from itertools import compress +from pathlib import Path +from typing import cast +from typing import List +from typing import Tuple +from typing import Union + +import dask.dataframe as dd +import h5py +import numpy as np +from joblib import delayed +from joblib import Parallel +from pandas import DataFrame +from pandas import MultiIndex +from pandas import Series + +from sed.loader.base.loader import BaseLoader +from sed.loader.exception_handlers import NoFilesFoundError +from sed.loader.utils import gather_flash_files +from sed.loader.utils import parse_h5_keys + + +class FlashLoader(BaseLoader): + """ + The class generates multiindexed multidimensional pandas dataframes + from the new FLASH dataformat resolved by both macro and microbunches + alongside electrons. + """ + + __name__ = "flash" + + supported_file_types = ["h5", "parquet"] + + def __init__(self, config: dict) -> None: + + self._config: dict = config.get("dataframe", {}) + self.config_parser() + # Set all channels, exluding pulseId as default + self.all_channels: dict = self._config.get("channels", {}) + self.files: List[Path] = [] + self.index_per_electron: Union[MultiIndex, None] = None + self.index_per_pulse: Union[MultiIndex, None] = None + self.parquet_names: List[Path] = [] + self.failed_files_error: List[str] = [] + + def config_parser(self): + """ + Parser for the config.yaml file. + """ + paths = self._config.get("paths") + + # Prases to locate the raw beamtime directory from config file + if paths: + if "data_raw_dir" in paths: + self.data_raw_dir = Path(paths["data_raw_dir"]) + if "data_parquet_dir" in paths: + self.data_parquet_dir = Path(paths["data_parquet_dir"]) + if not self.data_parquet_dir.exists(): + os.mkdir(self.data_parquet_dir) + + if not {"ubid_offset", "daq"}.issubset(self._config.keys()): + raise ValueError( + "One of the values from ubid_offset or daq is missing. \ + These are necessary.", + ) + + self.ubid_offset = self._config.get("ubid_offset", 0) + self.daq = self._config.get("daq", "") + + if not paths: + if not {"beamtime_id", "year"}.issubset(self._config.keys()): + raise ValueError( + "The beamtime_id and year or data_raw_dir is required.", + ) + + beamtime_id = self._config.get("beamtime_id") + year = self._config.get("year") + beamtime_dir = Path( + f"/asap3/flash/gpfs/pg2/{year}/data/{beamtime_id}/", + ) + + # Use os walk to reach the raw data directory + # the walk outputs a list of tuples, + # the last tuple contains the path to the raw data + self.data_raw_dir = list(os.walk(beamtime_dir.joinpath("raw/")))[ + -1 + ][0] + + parquet_path = "processed/parquet" + self.data_parquet_dir = beamtime_dir.joinpath(parquet_path) + + if not self.data_parquet_dir.exists(): + os.mkdir(self.data_parquet_dir) + + @property + def available_channels(self) -> List: + """Returns the channel names that are available for use, + excluding pulseId, defined by the json file""" + available_channels = list(self.all_channels.keys()) + available_channels.remove("pulseId") + return available_channels + + @property + def channels_per_pulse(self) -> List: + """Returns a list of channels with per_pulse format, + including all auxillary channels""" + channels_per_pulse = [] + for key in self.available_channels: + if self.all_channels[key]["format"] == "per_pulse": + if key == "dldAux": + for aux_key in self.all_channels[key][ + "dldAuxChannels" + ].keys(): + channels_per_pulse.append(aux_key) + else: + channels_per_pulse.append(key) + return channels_per_pulse + + @property + def channels_per_electron(self) -> List: + """Returns a list of channels with per_electron format""" + return [ + key + for key in self.available_channels + if self.all_channels[key]["format"] == "per_electron" + ] + + @property + def channels_per_train(self) -> List: + """Returns a list of channels with per_train format""" + return [ + key + for key in self.available_channels + if self.all_channels[key]["format"] == "per_train" + ] + + def reset_multi_index(self) -> None: + """Resets the index per pulse and electron""" + self.index_per_electron = None + self.index_per_pulse = None + + def create_multi_index_per_electron(self, h5_file: h5py.File) -> None: + """Creates an index per electron using pulseId + for usage with the electron resolved pandas dataframe""" + + # Macrobunch IDs obtained from the pulseId channel + [train_id, np_array] = self.create_numpy_array_per_channel( + h5_file, + "pulseId", + ) + + # Create a series with the macrobunches as index and + # microbunches as values + macrobunches = ( + Series( + (np_array[i] for i in train_id.index), + name="pulseId", + index=train_id, + ) + - self.ubid_offset + ) + + # Explode dataframe to get all microbunch vales per macrobunch, + # remove NaN values and convert to type int + microbunches = macrobunches.explode().dropna().astype(int) + + # Create temporary index values + index_temp = MultiIndex.from_arrays( + (microbunches.index, microbunches.values), + names=["trainId", "pulseId"], + ) + + # Calculate the electron counts per pulseId + # unique preserves the order of appearance + electron_counts = index_temp.value_counts()[index_temp.unique()].values + + # Series object for indexing with electrons + electrons = ( + Series( + [ + np.arange(electron_counts[i]) + for i in range(electron_counts.size) + ], + ) + .explode() + .astype(int) + ) + + # Create a pandas multiindex using the exploded datasets + self.index_per_electron = MultiIndex.from_arrays( + (microbunches.index, microbunches.values, electrons), + names=["trainId", "pulseId", "electronId"], + ) + + def create_multi_index_per_pulse(self, train_id, np_array) -> None: + """Creates an index per pulse using a pulse resovled channel's + macrobunch ID, for usage with the pulse resolved pandas dataframe""" + + # Create a pandas multiindex, useful to compare electron and + # pulse resolved dataframes + self.index_per_pulse = MultiIndex.from_product( + (train_id, np.arange(0, np_array.shape[1])), + names=["trainId", "pulseId"], + ) + + def create_numpy_array_per_channel( + self, + h5_file: h5py.File, + channel: str, + ) -> Tuple[Series, np.ndarray]: + """Returns a numpy Array for a given channel name for a given file""" + # Get the data from the necessary h5 file and channel + group = cast( + h5py.Group, + h5_file[self.all_channels[channel]["group_name"]], + ) + channel_dict = self.all_channels[channel] # channel parameters + + train_id = Series(group["index"], name="trainId") # macrobunch + # unpacks the timeStamp or value + if channel == "timeStamp": + np_array = cast(h5py.Dataset, group["time"])[()] + else: + np_array = cast(h5py.Dataset, group["value"])[()] + np_array = cast(np.ndarray, np_array) + # Uses predefined axis and slice from the json file + # to choose correct dimension for necessary channel + if "slice" in channel_dict: + np_array = np.take( + np_array, + channel_dict["slice"], + axis=1, + ) + return train_id, np_array + + def create_dataframe_per_electron( + self, + np_array, + train_id, + channel, + ) -> DataFrame: + """Returns a pandas DataFrame for a given channel name of type [per electron]""" + # The microbunch resolved data is exploded and + # converted to dataframe, afterwhich the MultiIndex is set + # The NaN values are dropped, alongside the + # pulseId = 0 (meaningless) + return ( + Series((np_array[i] for i in train_id.index), name=channel) + .explode() + .dropna() + .to_frame() + .set_index(self.index_per_electron) + .drop( + index=cast(List[int], np.arange(-self.ubid_offset, 0)), + level=1, + errors="ignore", + ) + ) + + def create_dataframe_per_pulse( + self, + np_array, + train_id, + channel, + channel_dict, + ) -> DataFrame: + """Returns a pandas DataFrame for a given channel name of type [per pulse]""" + # Special case for auxillary channels which checks the channel + # dictionary for correct slices and creates a multicolumn + # pandas dataframe + if channel == "dldAux": + # The macrobunch resolved data is repeated 499 times to be + # compared to electron resolved data for each auxillary channel + # and converted to a multicolumn dataframe + data_frames = ( + Series( + (np_array[i, value] for i in train_id.index), + name=key, + index=train_id, + ).to_frame() + for key, value in channel_dict["dldAuxChannels"].items() + ) + + # Multiindex set and combined dataframe returned + return reduce(DataFrame.combine_first, data_frames) + + else: + # For all other pulse resolved channels, macrobunch resolved + # data is exploded to a dataframe and the MultiIndex set + + # Creates the index_per_pulse for the given channel + self.create_multi_index_per_pulse(train_id, np_array) + return ( + Series((np_array[i] for i in train_id.index), name=channel) + .explode() + .to_frame() + .set_index(self.index_per_pulse) + ) + + def create_dataframe_per_train( + self, + np_array, + train_id, + channel, + ) -> DataFrame: + """Returns a pandas DataFrame for a given channel name of type [per train]""" + return ( + Series((np_array[i] for i in train_id.index), name=channel) + .to_frame() + .set_index(train_id) + ) + + def create_dataframe_per_channel( + self, + h5_file: h5py.File, + channel: str, + ) -> Union[Series, DataFrame]: + """Returns a pandas DataFrame for a given channel name for + a given file. The Dataframe contains the MultiIndex and returns + depending on the channel's format""" + [train_id, np_array] = self.create_numpy_array_per_channel( + h5_file, + channel, + ) # numpy Array created + channel_dict = self.all_channels[channel] # channel parameters + + # If np_array is size zero, fill with NaNs + if np_array.size == 0: + np_array = np.full_like(train_id, np.nan, dtype=np.double) + return Series( + (np_array[i] for i in train_id.index), + name=channel, + index=train_id, + ) + + # Electron resolved data is treated here + if channel_dict["format"] == "per_electron": + # Creates the index_per_electron if it does not exist for a given file + if self.index_per_electron is None: + self.create_multi_index_per_electron(h5_file) + + return self.create_dataframe_per_electron( + np_array, + train_id, + channel, + ) + + # Pulse resolved data is treated here + elif channel_dict["format"] == "per_pulse": + return self.create_dataframe_per_pulse( + np_array, + train_id, + channel, + channel_dict, + ) + + # Train resolved data is treated here + elif channel_dict["format"] == "per_train": + return self.create_dataframe_per_train(np_array, train_id, channel) + + else: + raise ValueError( + channel + + "has an undefined format. Available formats are \ + per_pulse, per_electron and per_train", + ) + + def concatenate_channels( + self, + h5_file: h5py.File, + ) -> Union[Series, DataFrame]: + """Returns a concatenated pandas DataFrame for either all pulse, + train or electron resolved channels.""" + all_keys = parse_h5_keys(h5_file) # Parses all channels present + + # Check for if the provided group_name actually exists in the file + for channel in self.all_channels: + if channel == "timeStamp": + group_name = self.all_channels[channel]["group_name"] + "time" + else: + group_name = self.all_channels[channel]["group_name"] + "value" + + if group_name not in all_keys: + raise ValueError( + f"The group_name for channel {channel} does not exist.", + ) + + data_frames = ( + self.create_dataframe_per_channel(h5_file, each) + for each in self.available_channels + ) + return reduce( + lambda left, right: left.join(right, how="outer"), + data_frames, + ) + + def create_dataframe_per_file( + self, + file_path: Path, + ) -> Union[Series, DataFrame]: + """Returns two pandas DataFrames constructed for the given file. + The DataFrames contains the datasets from the iterable in the + order opposite to specified by channel names. One DataFrame is + pulse resolved and the other electron resolved. + """ + # Loads h5 file and creates two dataframes + with h5py.File(file_path, "r") as h5_file: + self.reset_multi_index() # Reset MultiIndexes for next file + return self.concatenate_channels(h5_file) + + def h5_to_parquet(self, h5_path: Path, parquet_path: Path) -> None: + """Uses the createDataFramePerFile method and saves + the dataframes to a parquet file.""" + try: + ( + self.create_dataframe_per_file(h5_path) + .reset_index(level=["trainId", "pulseId", "electronId"]) + .to_parquet(parquet_path, index=False) + ) + except ValueError as failed_string_error: + self.failed_files_error.append( + f"{parquet_path}: {failed_string_error}", + ) + self.parquet_names.remove(parquet_path) + + def fill_na(self, dataframes: List) -> dd.DataFrame: + """Routine to fill the NaN values with intrafile forward filling.""" + channels: List[str] = self.channels_per_pulse + self.channels_per_train + for i, _ in enumerate(dataframes): + dataframes[i][channels] = dataframes[i][channels].fillna( + method="ffill", + ) + + # This loop forward fills between the consective files. + # The first run file will have NaNs, unless another run + # before it has been defined. + for i in range(1, len(dataframes)): + # Take only pulse channels + subset = dataframes[i][channels] + # Find which column(s) contain NaNs. + is_null = subset.loc[0].isnull().values.compute() + # Statement executed if there is more than one NaN value in the + # first row from all columns + if is_null.sum() > 0: + # Select channel names with only NaNs + channels_to_overwrite = list(compress(channels, is_null[0])) + # Get the values for those channels from previous file + values = dataframes[i - 1][channels].tail(1).values[0] + # Extract channels_to_overwrite from values and create a dictionary + fill_dict = dict(zip(channels, values)) + fill_dict = { + k: v + for k, v in fill_dict.items() + if k in channels_to_overwrite + } + # Fill all NaNs by those values + dataframes[i][channels_to_overwrite] = subset[ + channels_to_overwrite + ].fillna(fill_dict) + + return dd.concat(dataframes) + + def parse_metadata(self, files) -> dict: + """Dummy + + Args: + files (Sequence[str]): _description_ + + Returns: + dict: _description_ + """ + return {} + + def read_dataframe( + self, + files: Union[List[int], int] = 0, + folder: str = "", + ftype: str = "h5", + ) -> Tuple[dd.DataFrame, dict]: + """Read express data from DAQ, generating a parquet in between.""" + # create a per_file directory + temp_parquet_dir = self.data_parquet_dir.joinpath("per_file") + os.makedirs(temp_parquet_dir, exist_ok=True) + + self.files = files + runs = files + folder = str(self.data_raw_dir) + # Prepare a list of names for the files to read and parquets to write + runs = files if isinstance(files, list) else [files] + all_files = [] + for run in runs: + run_files = gather_flash_files( + run, + self.daq, + folder, + extension=ftype, + ) + all_files.extend(run_files) + + parquet_name = f"{temp_parquet_dir}/" + self.parquet_names = [ + Path(parquet_name + file.stem) for file in all_files + ] + missing_files: List[Path] = [] + missing_parquet_names: List[Path] = [] + + # only read and write files which were not read already + for i, parquet_file in enumerate(self.parquet_names): + if not parquet_file.exists(): + missing_files.append(all_files[i]) + missing_parquet_names.append(parquet_file) + + print( + f"Reading files: {len(missing_files)} new files of {len(all_files)} total.", + ) + + self.reset_multi_index() # initializes the indices for h5_to_parquet + + # run self.h5_to_parquet in parallel + if len(missing_files) > 0: + Parallel(n_jobs=len(missing_files), verbose=10)( + delayed(self.h5_to_parquet)(h5_path, parquet_path) + for h5_path, parquet_path in zip( + missing_files, + missing_parquet_names, + ) + ) + + if self.failed_files_error: + raise NoFilesFoundError( + "Conversion failed for the following files: \n" + + "\n".join(self.failed_files_error), + ) + else: + print("All files converted successfully!") + + if len(self.parquet_names) == 0: + raise ValueError( + "No data available. Probably failed reading all h5 files", + ) + + print( + f"Loading {len(self.parquet_names)} dataframes. Failed reading " + f"{len(all_files)-len(self.parquet_names)} files.", + ) + # Read all parquet files using dask and concatenate into one dataframe + # after filling + dataframe = self.fill_na( + [ + dd.read_parquet(parquet_file) + for parquet_file in self.parquet_names + ], + ) + dataframe = dataframe.dropna(subset=self.channels_per_electron) + + return dataframe, self.parse_metadata(all_files) + + +LOADER = FlashLoader diff --git a/sed/loader/utils.py b/sed/loader/utils.py index 89f243b6..428ec88c 100644 --- a/sed/loader/utils.py +++ b/sed/loader/utils.py @@ -1,11 +1,14 @@ """Utilities for loaders """ from glob import glob +from pathlib import Path from typing import cast from typing import List from natsort import natsorted +from sed.loader.exception_handlers import NoFilesFoundError + def gather_files( folder: str, @@ -32,6 +35,19 @@ def gather_files( Returns: List[str]: List of collected file names. """ + Collects and sorts files with specified extension from a given folder. + + Parameters: + folder: str + The folder to search + extension: str | r'/*.h5' + File extension used for glob.glob(). + f_start, f_end, f_step: int, int, int | None, None, 1 + Starting, ending file id and the step. Used to construct a file selector. + file_sorting: bool | True + Option to sort the files by their names. + """ + try: files = glob(folder + "/*." + extension) @@ -46,3 +62,50 @@ def gather_files( raise return files + + +def gather_flash_files( + run_number: int, + daq: str, + raw_data_dir: str, + extension: str = "h5", +) -> List[Path]: + """Returns all filenames of given run located in directory + for the given daq.""" + stream_name_prefixes = { + "pbd": "GMD_DATA_gmd_data", + "pbd2": "FL2PhotDiag_pbd2_gmd_data", + "fl1user1": "FLASH1_USER1_stream_2", + "fl1user2": "FLASH1_USER2_stream_2", + "fl1user3": "FLASH1_USER3_stream_2", + "fl2user1": "FLASH2_USER1_stream_2", + "fl2user2": "FLASH2_USER2_stream_2", + } + + files = sorted( + Path(raw_data_dir).glob( + f"{stream_name_prefixes[daq]}_run{run_number}_*." + extension, + ), + key=lambda filename: str(filename).rsplit("_", maxsplit=1)[-1], + ) + if not files: + raise NoFilesFoundError( + f"No files found for run {run_number} in directory {raw_data_dir}", + ) + return files + + +def parse_h5_keys(h5_file, prefix=""): + """Helper method which parses the channels present in the h5 file""" + file_channel_list = [] + + for key in h5_file.keys(): + try: + [ + file_channel_list.append(s) + for s in parse_h5_keys(h5_file[key], prefix=prefix + "/" + key) + ] + except Exception: + file_channel_list.append(prefix + "/" + key) + + return file_channel_list From 4d31a0f134e2ddb4436819a109d4b1c63763c5c3 Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Wed, 26 Apr 2023 17:42:50 +0200 Subject: [PATCH 02/36] add test data --- sed/loader/flash/flash.py | 566 ---------------------------- tests/loader/flash/test_config.yaml | 43 +++ tests/loader/flash/test_data.ipynb | 82 ++++ 3 files changed, 125 insertions(+), 566 deletions(-) delete mode 100644 sed/loader/flash/flash.py create mode 100644 tests/loader/flash/test_config.yaml create mode 100644 tests/loader/flash/test_data.ipynb diff --git a/sed/loader/flash/flash.py b/sed/loader/flash/flash.py deleted file mode 100644 index 5804aa2a..00000000 --- a/sed/loader/flash/flash.py +++ /dev/null @@ -1,566 +0,0 @@ -""" -This module implements the flash data loader. -The raw hdf5 data is saved into parquet files and loaded as a pandas dataframe. -The class attributes are inherited by dataframeReader - a wrapper class. -""" -import os -from functools import reduce -from itertools import compress -from pathlib import Path -from typing import cast -from typing import List -from typing import Tuple -from typing import Union - -import dask.dataframe as dd -import h5py -import numpy as np -from joblib import delayed -from joblib import Parallel -from pandas import DataFrame -from pandas import MultiIndex -from pandas import Series - -from sed.loader.base.loader import BaseLoader -from sed.loader.exception_handlers import NoFilesFoundError -from sed.loader.utils import gather_flash_files -from sed.loader.utils import parse_h5_keys - - -class FlashLoader(BaseLoader): - """ - The class generates multiindexed multidimensional pandas dataframes - from the new FLASH dataformat resolved by both macro and microbunches - alongside electrons. - """ - - __name__ = "flash" - - supported_file_types = ["h5", "parquet"] - - def __init__(self, config: dict) -> None: - - self._config: dict = config.get("dataframe", {}) - self.config_parser() - # Set all channels, exluding pulseId as default - self.all_channels: dict = self._config.get("channels", {}) - self.files: List[Path] = [] - self.index_per_electron: Union[MultiIndex, None] = None - self.index_per_pulse: Union[MultiIndex, None] = None - self.parquet_names: List[Path] = [] - self.failed_files_error: List[str] = [] - - def config_parser(self): - """ - Parser for the config.yaml file. - """ - paths = self._config.get("paths") - - # Prases to locate the raw beamtime directory from config file - if paths: - if "data_raw_dir" in paths: - self.data_raw_dir = Path(paths["data_raw_dir"]) - if "data_parquet_dir" in paths: - self.data_parquet_dir = Path(paths["data_parquet_dir"]) - if not self.data_parquet_dir.exists(): - os.mkdir(self.data_parquet_dir) - - if not {"ubid_offset", "daq"}.issubset(self._config.keys()): - raise ValueError( - "One of the values from ubid_offset or daq is missing. \ - These are necessary.", - ) - - self.ubid_offset = self._config.get("ubid_offset", 0) - self.daq = self._config.get("daq", "") - - if not paths: - if not {"beamtime_id", "year"}.issubset(self._config.keys()): - raise ValueError( - "The beamtime_id and year or data_raw_dir is required.", - ) - - beamtime_id = self._config.get("beamtime_id") - year = self._config.get("year") - beamtime_dir = Path( - f"/asap3/flash/gpfs/pg2/{year}/data/{beamtime_id}/", - ) - - # Use os walk to reach the raw data directory - # the walk outputs a list of tuples, - # the last tuple contains the path to the raw data - self.data_raw_dir = list(os.walk(beamtime_dir.joinpath("raw/")))[ - -1 - ][0] - - parquet_path = "processed/parquet" - self.data_parquet_dir = beamtime_dir.joinpath(parquet_path) - - if not self.data_parquet_dir.exists(): - os.mkdir(self.data_parquet_dir) - - @property - def available_channels(self) -> List: - """Returns the channel names that are available for use, - excluding pulseId, defined by the json file""" - available_channels = list(self.all_channels.keys()) - available_channels.remove("pulseId") - return available_channels - - @property - def channels_per_pulse(self) -> List: - """Returns a list of channels with per_pulse format, - including all auxillary channels""" - channels_per_pulse = [] - for key in self.available_channels: - if self.all_channels[key]["format"] == "per_pulse": - if key == "dldAux": - for aux_key in self.all_channels[key][ - "dldAuxChannels" - ].keys(): - channels_per_pulse.append(aux_key) - else: - channels_per_pulse.append(key) - return channels_per_pulse - - @property - def channels_per_electron(self) -> List: - """Returns a list of channels with per_electron format""" - return [ - key - for key in self.available_channels - if self.all_channels[key]["format"] == "per_electron" - ] - - @property - def channels_per_train(self) -> List: - """Returns a list of channels with per_train format""" - return [ - key - for key in self.available_channels - if self.all_channels[key]["format"] == "per_train" - ] - - def reset_multi_index(self) -> None: - """Resets the index per pulse and electron""" - self.index_per_electron = None - self.index_per_pulse = None - - def create_multi_index_per_electron(self, h5_file: h5py.File) -> None: - """Creates an index per electron using pulseId - for usage with the electron resolved pandas dataframe""" - - # Macrobunch IDs obtained from the pulseId channel - [train_id, np_array] = self.create_numpy_array_per_channel( - h5_file, - "pulseId", - ) - - # Create a series with the macrobunches as index and - # microbunches as values - macrobunches = ( - Series( - (np_array[i] for i in train_id.index), - name="pulseId", - index=train_id, - ) - - self.ubid_offset - ) - - # Explode dataframe to get all microbunch vales per macrobunch, - # remove NaN values and convert to type int - microbunches = macrobunches.explode().dropna().astype(int) - - # Create temporary index values - index_temp = MultiIndex.from_arrays( - (microbunches.index, microbunches.values), - names=["trainId", "pulseId"], - ) - - # Calculate the electron counts per pulseId - # unique preserves the order of appearance - electron_counts = index_temp.value_counts()[index_temp.unique()].values - - # Series object for indexing with electrons - electrons = ( - Series( - [ - np.arange(electron_counts[i]) - for i in range(electron_counts.size) - ], - ) - .explode() - .astype(int) - ) - - # Create a pandas multiindex using the exploded datasets - self.index_per_electron = MultiIndex.from_arrays( - (microbunches.index, microbunches.values, electrons), - names=["trainId", "pulseId", "electronId"], - ) - - def create_multi_index_per_pulse(self, train_id, np_array) -> None: - """Creates an index per pulse using a pulse resovled channel's - macrobunch ID, for usage with the pulse resolved pandas dataframe""" - - # Create a pandas multiindex, useful to compare electron and - # pulse resolved dataframes - self.index_per_pulse = MultiIndex.from_product( - (train_id, np.arange(0, np_array.shape[1])), - names=["trainId", "pulseId"], - ) - - def create_numpy_array_per_channel( - self, - h5_file: h5py.File, - channel: str, - ) -> Tuple[Series, np.ndarray]: - """Returns a numpy Array for a given channel name for a given file""" - # Get the data from the necessary h5 file and channel - group = cast( - h5py.Group, - h5_file[self.all_channels[channel]["group_name"]], - ) - channel_dict = self.all_channels[channel] # channel parameters - - train_id = Series(group["index"], name="trainId") # macrobunch - # unpacks the timeStamp or value - if channel == "timeStamp": - np_array = cast(h5py.Dataset, group["time"])[()] - else: - np_array = cast(h5py.Dataset, group["value"])[()] - np_array = cast(np.ndarray, np_array) - # Uses predefined axis and slice from the json file - # to choose correct dimension for necessary channel - if "slice" in channel_dict: - np_array = np.take( - np_array, - channel_dict["slice"], - axis=1, - ) - return train_id, np_array - - def create_dataframe_per_electron( - self, - np_array, - train_id, - channel, - ) -> DataFrame: - """Returns a pandas DataFrame for a given channel name of type [per electron]""" - # The microbunch resolved data is exploded and - # converted to dataframe, afterwhich the MultiIndex is set - # The NaN values are dropped, alongside the - # pulseId = 0 (meaningless) - return ( - Series((np_array[i] for i in train_id.index), name=channel) - .explode() - .dropna() - .to_frame() - .set_index(self.index_per_electron) - .drop( - index=cast(List[int], np.arange(-self.ubid_offset, 0)), - level=1, - errors="ignore", - ) - ) - - def create_dataframe_per_pulse( - self, - np_array, - train_id, - channel, - channel_dict, - ) -> DataFrame: - """Returns a pandas DataFrame for a given channel name of type [per pulse]""" - # Special case for auxillary channels which checks the channel - # dictionary for correct slices and creates a multicolumn - # pandas dataframe - if channel == "dldAux": - # The macrobunch resolved data is repeated 499 times to be - # compared to electron resolved data for each auxillary channel - # and converted to a multicolumn dataframe - data_frames = ( - Series( - (np_array[i, value] for i in train_id.index), - name=key, - index=train_id, - ).to_frame() - for key, value in channel_dict["dldAuxChannels"].items() - ) - - # Multiindex set and combined dataframe returned - return reduce(DataFrame.combine_first, data_frames) - - else: - # For all other pulse resolved channels, macrobunch resolved - # data is exploded to a dataframe and the MultiIndex set - - # Creates the index_per_pulse for the given channel - self.create_multi_index_per_pulse(train_id, np_array) - return ( - Series((np_array[i] for i in train_id.index), name=channel) - .explode() - .to_frame() - .set_index(self.index_per_pulse) - ) - - def create_dataframe_per_train( - self, - np_array, - train_id, - channel, - ) -> DataFrame: - """Returns a pandas DataFrame for a given channel name of type [per train]""" - return ( - Series((np_array[i] for i in train_id.index), name=channel) - .to_frame() - .set_index(train_id) - ) - - def create_dataframe_per_channel( - self, - h5_file: h5py.File, - channel: str, - ) -> Union[Series, DataFrame]: - """Returns a pandas DataFrame for a given channel name for - a given file. The Dataframe contains the MultiIndex and returns - depending on the channel's format""" - [train_id, np_array] = self.create_numpy_array_per_channel( - h5_file, - channel, - ) # numpy Array created - channel_dict = self.all_channels[channel] # channel parameters - - # If np_array is size zero, fill with NaNs - if np_array.size == 0: - np_array = np.full_like(train_id, np.nan, dtype=np.double) - return Series( - (np_array[i] for i in train_id.index), - name=channel, - index=train_id, - ) - - # Electron resolved data is treated here - if channel_dict["format"] == "per_electron": - # Creates the index_per_electron if it does not exist for a given file - if self.index_per_electron is None: - self.create_multi_index_per_electron(h5_file) - - return self.create_dataframe_per_electron( - np_array, - train_id, - channel, - ) - - # Pulse resolved data is treated here - elif channel_dict["format"] == "per_pulse": - return self.create_dataframe_per_pulse( - np_array, - train_id, - channel, - channel_dict, - ) - - # Train resolved data is treated here - elif channel_dict["format"] == "per_train": - return self.create_dataframe_per_train(np_array, train_id, channel) - - else: - raise ValueError( - channel - + "has an undefined format. Available formats are \ - per_pulse, per_electron and per_train", - ) - - def concatenate_channels( - self, - h5_file: h5py.File, - ) -> Union[Series, DataFrame]: - """Returns a concatenated pandas DataFrame for either all pulse, - train or electron resolved channels.""" - all_keys = parse_h5_keys(h5_file) # Parses all channels present - - # Check for if the provided group_name actually exists in the file - for channel in self.all_channels: - if channel == "timeStamp": - group_name = self.all_channels[channel]["group_name"] + "time" - else: - group_name = self.all_channels[channel]["group_name"] + "value" - - if group_name not in all_keys: - raise ValueError( - f"The group_name for channel {channel} does not exist.", - ) - - data_frames = ( - self.create_dataframe_per_channel(h5_file, each) - for each in self.available_channels - ) - return reduce( - lambda left, right: left.join(right, how="outer"), - data_frames, - ) - - def create_dataframe_per_file( - self, - file_path: Path, - ) -> Union[Series, DataFrame]: - """Returns two pandas DataFrames constructed for the given file. - The DataFrames contains the datasets from the iterable in the - order opposite to specified by channel names. One DataFrame is - pulse resolved and the other electron resolved. - """ - # Loads h5 file and creates two dataframes - with h5py.File(file_path, "r") as h5_file: - self.reset_multi_index() # Reset MultiIndexes for next file - return self.concatenate_channels(h5_file) - - def h5_to_parquet(self, h5_path: Path, parquet_path: Path) -> None: - """Uses the createDataFramePerFile method and saves - the dataframes to a parquet file.""" - try: - ( - self.create_dataframe_per_file(h5_path) - .reset_index(level=["trainId", "pulseId", "electronId"]) - .to_parquet(parquet_path, index=False) - ) - except ValueError as failed_string_error: - self.failed_files_error.append( - f"{parquet_path}: {failed_string_error}", - ) - self.parquet_names.remove(parquet_path) - - def fill_na(self, dataframes: List) -> dd.DataFrame: - """Routine to fill the NaN values with intrafile forward filling.""" - channels: List[str] = self.channels_per_pulse + self.channels_per_train - for i, _ in enumerate(dataframes): - dataframes[i][channels] = dataframes[i][channels].fillna( - method="ffill", - ) - - # This loop forward fills between the consective files. - # The first run file will have NaNs, unless another run - # before it has been defined. - for i in range(1, len(dataframes)): - # Take only pulse channels - subset = dataframes[i][channels] - # Find which column(s) contain NaNs. - is_null = subset.loc[0].isnull().values.compute() - # Statement executed if there is more than one NaN value in the - # first row from all columns - if is_null.sum() > 0: - # Select channel names with only NaNs - channels_to_overwrite = list(compress(channels, is_null[0])) - # Get the values for those channels from previous file - values = dataframes[i - 1][channels].tail(1).values[0] - # Extract channels_to_overwrite from values and create a dictionary - fill_dict = dict(zip(channels, values)) - fill_dict = { - k: v - for k, v in fill_dict.items() - if k in channels_to_overwrite - } - # Fill all NaNs by those values - dataframes[i][channels_to_overwrite] = subset[ - channels_to_overwrite - ].fillna(fill_dict) - - return dd.concat(dataframes) - - def parse_metadata(self, files) -> dict: - """Dummy - - Args: - files (Sequence[str]): _description_ - - Returns: - dict: _description_ - """ - return {} - - def read_dataframe( - self, - files: Union[List[int], int] = 0, - folder: str = "", - ftype: str = "h5", - ) -> Tuple[dd.DataFrame, dict]: - """Read express data from DAQ, generating a parquet in between.""" - # create a per_file directory - temp_parquet_dir = self.data_parquet_dir.joinpath("per_file") - os.makedirs(temp_parquet_dir, exist_ok=True) - - self.files = files - runs = files - folder = str(self.data_raw_dir) - # Prepare a list of names for the files to read and parquets to write - runs = files if isinstance(files, list) else [files] - all_files = [] - for run in runs: - run_files = gather_flash_files( - run, - self.daq, - folder, - extension=ftype, - ) - all_files.extend(run_files) - - parquet_name = f"{temp_parquet_dir}/" - self.parquet_names = [ - Path(parquet_name + file.stem) for file in all_files - ] - missing_files: List[Path] = [] - missing_parquet_names: List[Path] = [] - - # only read and write files which were not read already - for i, parquet_file in enumerate(self.parquet_names): - if not parquet_file.exists(): - missing_files.append(all_files[i]) - missing_parquet_names.append(parquet_file) - - print( - f"Reading files: {len(missing_files)} new files of {len(all_files)} total.", - ) - - self.reset_multi_index() # initializes the indices for h5_to_parquet - - # run self.h5_to_parquet in parallel - if len(missing_files) > 0: - Parallel(n_jobs=len(missing_files), verbose=10)( - delayed(self.h5_to_parquet)(h5_path, parquet_path) - for h5_path, parquet_path in zip( - missing_files, - missing_parquet_names, - ) - ) - - if self.failed_files_error: - raise NoFilesFoundError( - "Conversion failed for the following files: \n" - + "\n".join(self.failed_files_error), - ) - else: - print("All files converted successfully!") - - if len(self.parquet_names) == 0: - raise ValueError( - "No data available. Probably failed reading all h5 files", - ) - - print( - f"Loading {len(self.parquet_names)} dataframes. Failed reading " - f"{len(all_files)-len(self.parquet_names)} files.", - ) - # Read all parquet files using dask and concatenate into one dataframe - # after filling - dataframe = self.fill_na( - [ - dd.read_parquet(parquet_file) - for parquet_file in self.parquet_names - ], - ) - dataframe = dataframe.dropna(subset=self.channels_per_electron) - - return dataframe, self.parse_metadata(all_files) - - -LOADER = FlashLoader diff --git a/tests/loader/flash/test_config.yaml b/tests/loader/flash/test_config.yaml new file mode 100644 index 00000000..6f407ed7 --- /dev/null +++ b/tests/loader/flash/test_config.yaml @@ -0,0 +1,43 @@ +core: + loader: flash + +dataframe: + paths: + data_raw_dir: raw/hdf/express-0/fl1user3 + data_parquet_dir: parquet + ubid_offset: 5 + daq: fl1user3 + channels: + pulseId: + axis: 1 + format: per_electron + group_name: "/uncategorised/FLASH.EXP/HEXTOF.DAQ/DLD1/" + slice: 2 + dldPosX: + axis: 1 + format: per_electron + group_name: "/uncategorised/FLASH.EXP/HEXTOF.DAQ/DLD1/" + slice: 1 + dldPosY: + axis: 1 + format: per_electron + group_name: "/uncategorised/FLASH.EXP/HEXTOF.DAQ/DLD1/" + slice: 0 + dldTime: + axis: 1 + format: per_electron + group_name: "/uncategorised/FLASH.EXP/HEXTOF.DAQ/DLD1/" + slice: 3 + dldAux: + axis: 1 + format: per_pulse + group_name: "/uncategorised/FLASH.EXP/HEXTOF.DAQ/DLD1/" + slice: 4 + dldAuxChannels: + sampleBias: 0 + tofVoltage: 1 + extractorVoltage: 2 + extractorCurrent: 3 + cryoTemperature: 4 + sampleTemperature: 5 + dldTimeBinSize: 15 diff --git a/tests/loader/flash/test_data.ipynb b/tests/loader/flash/test_data.ipynb new file mode 100644 index 00000000..d1a53600 --- /dev/null +++ b/tests/loader/flash/test_data.ipynb @@ -0,0 +1,82 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!mkdir -p \"raw/hdf/express-0/fl1user3/\"\n", + "!wget \"https://syncandshare.desy.de/index.php/s/PcP2BbcE2DDLFkZ/download/FLASH1_USER3_stream_2_run43878_file1_20230130T153807.1.h5\" -O \"raw/hdf/express-0/fl1user3/FLASH1_USER3_stream_2_run43878_file1_20230130T153807.1.h5\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sed import SedProcessor\n", + "\n", + "sp = SedProcessor(files=[43878], config=\"test_config.yaml\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sp._dataframe.compute()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "axes = ['dldPosX', 'dldPosY']\n", + "bins = [(0,900,10), (0,900,10)]\n", + "res = sp.compute(bins=bins, axes=axes)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "res.plot(cmap='terrain')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "sed-aLRHxgd9-py3.8", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 441ad149fcad329f8a534658ad0399d92465dc68 Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Wed, 26 Apr 2023 17:51:33 +0200 Subject: [PATCH 03/36] fix pylint exception warning --- sed/loader/exception_handlers.py | 14 ++++++++++++++ sed/loader/utils.py | 6 +++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/sed/loader/exception_handlers.py b/sed/loader/exception_handlers.py index 5f7b640f..c0273fb3 100644 --- a/sed/loader/exception_handlers.py +++ b/sed/loader/exception_handlers.py @@ -6,3 +6,17 @@ class NoFilesFoundError(Exception): def __init__(self, message): self.message = message + +class H5ParsingError(Exception): + """Exception raised for errors related to parsing H5 files.""" + + def __init__(self, message="Error occurred while parsing H5 file.", cause=None): + self.message = message + self.cause = cause + super().__init__(self.message) + + def __str__(self): + if self.cause: + return f"{self.message} Caused by: {self.cause}" + else: + return self.message diff --git a/sed/loader/utils.py b/sed/loader/utils.py index 428ec88c..0f1e2534 100644 --- a/sed/loader/utils.py +++ b/sed/loader/utils.py @@ -7,7 +7,7 @@ from natsort import natsorted -from sed.loader.exception_handlers import NoFilesFoundError +from sed.loader.exception_handlers import NoFilesFoundError, H5ParsingError def gather_files( @@ -105,7 +105,7 @@ def parse_h5_keys(h5_file, prefix=""): file_channel_list.append(s) for s in parse_h5_keys(h5_file[key], prefix=prefix + "/" + key) ] - except Exception: - file_channel_list.append(prefix + "/" + key) + except Exception as exception: + raise H5ParsingError(prefix + "/" + key, cause=exception) from exception return file_channel_list From 4e0eeea30d4583c01cf80890b6cc746f00e44e82 Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Wed, 26 Apr 2023 17:57:26 +0200 Subject: [PATCH 04/36] fix pylint exception warning --- sed/loader/utils.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sed/loader/utils.py b/sed/loader/utils.py index 0f1e2534..312f80eb 100644 --- a/sed/loader/utils.py +++ b/sed/loader/utils.py @@ -7,7 +7,8 @@ from natsort import natsorted -from sed.loader.exception_handlers import NoFilesFoundError, H5ParsingError +from sed.loader.exception_handlers import H5ParsingError +from sed.loader.exception_handlers import NoFilesFoundError def gather_files( @@ -106,6 +107,9 @@ def parse_h5_keys(h5_file, prefix=""): for s in parse_h5_keys(h5_file[key], prefix=prefix + "/" + key) ] except Exception as exception: - raise H5ParsingError(prefix + "/" + key, cause=exception) from exception + raise H5ParsingError( + prefix + "/" + key, + cause=exception, + ) from exception return file_channel_list From a5d86ed3e155cd9785f99c1236523c4c80478a4e Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Wed, 26 Apr 2023 23:03:56 +0200 Subject: [PATCH 05/36] some more error fixes --- sed/loader/exception_handlers.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/sed/loader/exception_handlers.py b/sed/loader/exception_handlers.py index c0273fb3..05e204ab 100644 --- a/sed/loader/exception_handlers.py +++ b/sed/loader/exception_handlers.py @@ -6,11 +6,17 @@ class NoFilesFoundError(Exception): def __init__(self, message): self.message = message + super().__init__(self.message) + class H5ParsingError(Exception): """Exception raised for errors related to parsing H5 files.""" - def __init__(self, message="Error occurred while parsing H5 file.", cause=None): + def __init__( + self, + message="Error occurred while parsing H5 file.", + cause=None, + ): self.message = message self.cause = cause super().__init__(self.message) @@ -18,5 +24,4 @@ def __init__(self, message="Error occurred while parsing H5 file.", cause=None): def __str__(self): if self.cause: return f"{self.message} Caused by: {self.cause}" - else: - return self.message + return self.message From 6ac4fa826dfefe46c339628ddcd34874d59ac53e Mon Sep 17 00:00:00 2001 From: Zain Sohail Date: Tue, 2 May 2023 01:18:37 +0200 Subject: [PATCH 06/36] loader.py --- sed/loader/flash/loader.py | 577 +++++++++++++++++++++++++++++++++++++ 1 file changed, 577 insertions(+) create mode 100644 sed/loader/flash/loader.py diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py new file mode 100644 index 00000000..f4730d24 --- /dev/null +++ b/sed/loader/flash/loader.py @@ -0,0 +1,577 @@ +""" +This module implements the flash data loader. +The raw hdf5 data is saved into parquet files and loaded as a dask dataframe. +If there are multiple files, the NaNs are forward filled. +""" +import os +from functools import reduce +from itertools import compress +from pathlib import Path +from typing import cast +from typing import List +from typing import Tuple +from typing import Union + +import dask.dataframe as dd +import h5py +import numpy as np +from joblib import delayed +from joblib import Parallel +from pandas import DataFrame +from pandas import MultiIndex +from pandas import Series + +from sed.loader.base.loader import BaseLoader +from sed.loader.exception_handlers import NoFilesFoundError +from sed.loader.utils import gather_flash_files +from sed.loader.utils import parse_h5_keys + + +class FlashLoader(BaseLoader): + """ + The class generates multiindexed multidimensional pandas dataframes + from the new FLASH dataformat resolved by both macro and microbunches + alongside electrons. + """ + + __name__ = "flash" + + supported_file_types = ["h5", "parquet"] + + def __init__(self, config: dict, meta_handler) -> None: + + self._config: dict = config.get("dataframe", {}) + self.config_parser() + # Set all channels, exluding pulseId as default + self.all_channels: dict = self._config.get("channels", {}) + self.files: List[Path] = [] + self.index_per_electron: Union[MultiIndex, None] = None + self.index_per_pulse: Union[MultiIndex, None] = None + self.parquet_names: List[Path] = [] + self.failed_files_error: List[str] = [] + + def config_parser(self): + """ + Parser for the config.yaml file. + """ + paths = self._config.get("paths") + + # Prases to locate the raw beamtime directory from config file + if paths: + if "data_raw_dir" in paths: + self.data_raw_dir = Path(paths["data_raw_dir"]) + if "data_parquet_dir" in paths: + self.data_parquet_dir = Path(paths["data_parquet_dir"]) + if not self.data_parquet_dir.exists(): + os.mkdir(self.data_parquet_dir) + + if not {"ubid_offset", "daq"}.issubset(self._config.keys()): + raise ValueError( + "One of the values from ubid_offset or daq is missing. \ + These are necessary.", + ) + + self.ubid_offset = self._config.get("ubid_offset", 0) + self.daq = self._config.get("daq", "") + + if not paths: + if not {"beamtime_id", "year"}.issubset(self._config.keys()): + raise ValueError( + "The beamtime_id and year or data_raw_dir is required.", + ) + + beamtime_id = self._config.get("beamtime_id") + year = self._config.get("year") + beamtime_dir = Path( + f"/asap3/flash/gpfs/pg2/{year}/data/{beamtime_id}/", + ) + + # Use os walk to reach the raw data directory + # the walk outputs a list of tuples, + # the last tuple contains the path to the raw data + self.data_raw_dir = list(os.walk(beamtime_dir.joinpath("raw/")))[ + -1 + ][0] + + parquet_path = "processed/parquet" + self.data_parquet_dir = beamtime_dir.joinpath(parquet_path) + + if not self.data_parquet_dir.exists(): + os.mkdir(self.data_parquet_dir) + + @property + def available_channels(self) -> List: + """Returns the channel names that are available for use, + excluding pulseId, defined by the json file""" + available_channels = list(self.all_channels.keys()) + available_channels.remove("pulseId") + return available_channels + + @property + def channels_per_pulse(self) -> List: + """Returns a list of channels with per_pulse format, + including all auxillary channels""" + channels_per_pulse = [] + for key in self.available_channels: + if self.all_channels[key]["format"] == "per_pulse": + if key == "dldAux": + for aux_key in self.all_channels[key][ + "dldAuxChannels" + ].keys(): + channels_per_pulse.append(aux_key) + else: + channels_per_pulse.append(key) + return channels_per_pulse + + @property + def channels_per_electron(self) -> List: + """Returns a list of channels with per_electron format""" + return [ + key + for key in self.available_channels + if self.all_channels[key]["format"] == "per_electron" + ] + + @property + def channels_per_train(self) -> List: + """Returns a list of channels with per_train format""" + return [ + key + for key in self.available_channels + if self.all_channels[key]["format"] == "per_train" + ] + + def reset_multi_index(self) -> None: + """Resets the index per pulse and electron""" + self.index_per_electron = None + self.index_per_pulse = None + + def create_multi_index_per_electron(self, h5_file: h5py.File) -> None: + """Creates an index per electron using pulseId + for usage with the electron resolved pandas dataframe""" + + # Macrobunch IDs obtained from the pulseId channel + [train_id, np_array] = self.create_numpy_array_per_channel( + h5_file, + "pulseId", + ) + + # Create a series with the macrobunches as index and + # microbunches as values + macrobunches = ( + Series( + (np_array[i] for i in train_id.index), + name="pulseId", + index=train_id, + ) + - self.ubid_offset + ) + + # Explode dataframe to get all microbunch vales per macrobunch, + # remove NaN values and convert to type int + microbunches = macrobunches.explode().dropna().astype(int) + + # Create temporary index values + index_temp = MultiIndex.from_arrays( + (microbunches.index, microbunches.values), + names=["trainId", "pulseId"], + ) + + # Calculate the electron counts per pulseId + # unique preserves the order of appearance + electron_counts = index_temp.value_counts()[index_temp.unique()].values + + # Series object for indexing with electrons + electrons = ( + Series( + [ + np.arange(electron_counts[i]) + for i in range(electron_counts.size) + ], + ) + .explode() + .astype(int) + ) + + # Create a pandas multiindex using the exploded datasets + self.index_per_electron = MultiIndex.from_arrays( + (microbunches.index, microbunches.values, electrons), + names=["trainId", "pulseId", "electronId"], + ) + + def create_multi_index_per_pulse(self, train_id, np_array) -> None: + """Creates an index per pulse using a pulse resovled channel's + macrobunch ID, for usage with the pulse resolved pandas dataframe""" + + # Create a pandas multiindex, useful to compare electron and + # pulse resolved dataframes + self.index_per_pulse = MultiIndex.from_product( + (train_id, np.arange(0, np_array.shape[1])), + names=["trainId", "pulseId"], + ) + + def create_numpy_array_per_channel( + self, + h5_file: h5py.File, + channel: str, + ) -> Tuple[Series, np.ndarray]: + """Returns a numpy Array for a given channel name for a given file""" + # Get the data from the necessary h5 file and channel + group = cast( + h5py.Group, + h5_file[self.all_channels[channel]["group_name"]], + ) + channel_dict = self.all_channels[channel] # channel parameters + + train_id = Series(group["index"], name="trainId") # macrobunch + # unpacks the timeStamp or value + if channel == "timeStamp": + np_array = cast(h5py.Dataset, group["time"])[()] + else: + np_array = cast(h5py.Dataset, group["value"])[()] + np_array = cast(np.ndarray, np_array) + # Uses predefined axis and slice from the json file + # to choose correct dimension for necessary channel + if "slice" in channel_dict: + np_array = np.take( + np_array, + channel_dict["slice"], + axis=1, + ) + return train_id, np_array + + def create_dataframe_per_electron( + self, + np_array, + train_id, + channel, + ) -> DataFrame: + """Returns a pandas DataFrame for a given channel name of type [per electron]""" + # The microbunch resolved data is exploded and + # converted to dataframe, afterwhich the MultiIndex is set + # The NaN values are dropped, alongside the + # pulseId = 0 (meaningless) + return ( + Series((np_array[i] for i in train_id.index), name=channel) + .explode() + .dropna() + .to_frame() + .set_index(self.index_per_electron) + .drop( + index=cast(List[int], np.arange(-self.ubid_offset, 0)), + level=1, + errors="ignore", + ) + ) + + def create_dataframe_per_pulse( + self, + np_array, + train_id, + channel, + channel_dict, + ) -> DataFrame: + """Returns a pandas DataFrame for a given channel name of type [per pulse]""" + # Special case for auxillary channels which checks the channel + # dictionary for correct slices and creates a multicolumn + # pandas dataframe + if channel == "dldAux": + # The macrobunch resolved data is repeated 499 times to be + # compared to electron resolved data for each auxillary channel + # and converted to a multicolumn dataframe + data_frames = ( + Series( + (np_array[i, value] for i in train_id.index), + name=key, + index=train_id, + ).to_frame() + for key, value in channel_dict["dldAuxChannels"].items() + ) + + # Multiindex set and combined dataframe returned + return reduce(DataFrame.combine_first, data_frames) + + else: + # For all other pulse resolved channels, macrobunch resolved + # data is exploded to a dataframe and the MultiIndex set + + # Creates the index_per_pulse for the given channel + self.create_multi_index_per_pulse(train_id, np_array) + return ( + Series((np_array[i] for i in train_id.index), name=channel) + .explode() + .to_frame() + .set_index(self.index_per_pulse) + ) + + def create_dataframe_per_train( + self, + np_array, + train_id, + channel, + ) -> DataFrame: + """Returns a pandas DataFrame for a given channel name of type [per train]""" + return ( + Series((np_array[i] for i in train_id.index), name=channel) + .to_frame() + .set_index(train_id) + ) + + def create_dataframe_per_channel( + self, + h5_file: h5py.File, + channel: str, + ) -> Union[Series, DataFrame]: + """Returns a pandas DataFrame for a given channel name for + a given file. The Dataframe contains the MultiIndex and returns + depending on the channel's format""" + [train_id, np_array] = self.create_numpy_array_per_channel( + h5_file, + channel, + ) # numpy Array created + channel_dict = self.all_channels[channel] # channel parameters + + # If np_array is size zero, fill with NaNs + if np_array.size == 0: + np_array = np.full_like(train_id, np.nan, dtype=np.double) + return Series( + (np_array[i] for i in train_id.index), + name=channel, + index=train_id, + ) + + # Electron resolved data is treated here + if channel_dict["format"] == "per_electron": + # Creates the index_per_electron if it does not exist for a given file + if self.index_per_electron is None: + self.create_multi_index_per_electron(h5_file) + + return self.create_dataframe_per_electron( + np_array, + train_id, + channel, + ) + + # Pulse resolved data is treated here + elif channel_dict["format"] == "per_pulse": + return self.create_dataframe_per_pulse( + np_array, + train_id, + channel, + channel_dict, + ) + + # Train resolved data is treated here + elif channel_dict["format"] == "per_train": + return self.create_dataframe_per_train(np_array, train_id, channel) + + else: + raise ValueError( + channel + + "has an undefined format. Available formats are \ + per_pulse, per_electron and per_train", + ) + + def concatenate_channels( + self, + h5_file: h5py.File, + ) -> Union[Series, DataFrame]: + """Returns a concatenated pandas DataFrame for either all pulse, + train or electron resolved channels.""" + all_keys = parse_h5_keys(h5_file) # Parses all channels present + + # Check for if the provided group_name actually exists in the file + for channel in self.all_channels: + if channel == "timeStamp": + group_name = self.all_channels[channel]["group_name"] + "time" + else: + group_name = self.all_channels[channel]["group_name"] + "value" + + if group_name not in all_keys: + raise ValueError( + f"The group_name for channel {channel} does not exist.", + ) + + data_frames = ( + self.create_dataframe_per_channel(h5_file, each) + for each in self.available_channels + ) + return reduce( + lambda left, right: left.join(right, how="outer"), + data_frames, + ) + + def create_dataframe_per_file( + self, + file_path: Path, + ) -> Union[Series, DataFrame]: + """Returns two pandas DataFrames constructed for the given file. + The DataFrames contains the datasets from the iterable in the + order opposite to specified by channel names. One DataFrame is + pulse resolved and the other electron resolved. + """ + # Loads h5 file and creates two dataframes + with h5py.File(file_path, "r") as h5_file: + self.reset_multi_index() # Reset MultiIndexes for next file + return self.concatenate_channels(h5_file) + + def h5_to_parquet(self, h5_path: Path, parquet_path: Path) -> None: + """Uses the createDataFramePerFile method and saves + the dataframes to a parquet file.""" + try: + ( + self.create_dataframe_per_file(h5_path) + .reset_index(level=["trainId", "pulseId", "electronId"]) + .to_parquet(parquet_path, index=False) + ) + except ValueError as failed_string_error: + self.failed_files_error.append( + f"{parquet_path}: {failed_string_error}", + ) + self.parquet_names.remove(parquet_path) + + def fill_na(self, dataframes: List) -> dd.DataFrame: + """Routine to fill the NaN values with intrafile forward filling.""" + channels: List[str] = self.channels_per_pulse + self.channels_per_train + for i, _ in enumerate(dataframes): + dataframes[i][channels] = dataframes[i][channels].fillna( + method="ffill", + ) + + # This loop forward fills between the consective files. + # The first run file will have NaNs, unless another run + # before it has been defined. + for i in range(1, len(dataframes)): + # Take only pulse channels + subset = dataframes[i][channels] + # Find which column(s) contain NaNs. + is_null = subset.loc[0].isnull().values.compute() + # Statement executed if there is more than one NaN value in the + # first row from all columns + if is_null.sum() > 0: + # Select channel names with only NaNs + channels_to_overwrite = list(compress(channels, is_null[0])) + # Get the values for those channels from previous file + values = dataframes[i - 1][channels].tail(1).values[0] + # Extract channels_to_overwrite from values and create a dictionary + fill_dict = dict(zip(channels, values)) + fill_dict = { + k: v + for k, v in fill_dict.items() + if k in channels_to_overwrite + } + # Fill all NaNs by those values + dataframes[i][channels_to_overwrite] = subset[ + channels_to_overwrite + ].fillna(fill_dict) + + return dd.concat(dataframes) + + def parse_metadata(self, files) -> dict: + """Dummy + + Args: + files (Sequence[str]): _description_ + + Returns: + dict: _description_ + """ + return {} + + def get_count_rate( + self, + fids = None, + **kwds, + ): + return None, None + + def get_elapsed_time(self, fids = None, **kwds): + return None + + def read_dataframe( + self, + files: Union[List[int], int] = 0, + folder: str = "", + ftype: str = "h5", + **kwds, + ) -> Tuple[dd.DataFrame, dict]: + """Read express data from DAQ, generating a parquet in between.""" + # create a per_file directory + temp_parquet_dir = self.data_parquet_dir.joinpath("per_file") + os.makedirs(temp_parquet_dir, exist_ok=True) + + self.files = files + runs = files + folder = str(self.data_raw_dir) + # Prepare a list of names for the files to read and parquets to write + runs = files if isinstance(files, list) else [files] + all_files = [] + for run in runs: + run_files = gather_flash_files( + run, + self.daq, + folder, + extension=ftype, + ) + all_files.extend(run_files) + + parquet_name = f"{temp_parquet_dir}/" + self.parquet_names = [ + Path(parquet_name + file.stem) for file in all_files + ] + missing_files: List[Path] = [] + missing_parquet_names: List[Path] = [] + + # only read and write files which were not read already + for i, parquet_file in enumerate(self.parquet_names): + if not parquet_file.exists(): + missing_files.append(all_files[i]) + missing_parquet_names.append(parquet_file) + + print( + f"Reading files: {len(missing_files)} new files of {len(all_files)} total.", + ) + + self.reset_multi_index() # initializes the indices for h5_to_parquet + + # run self.h5_to_parquet in parallel + if len(missing_files) > 0: + Parallel(n_jobs=len(missing_files), verbose=10)( + delayed(self.h5_to_parquet)(h5_path, parquet_path) + for h5_path, parquet_path in zip( + missing_files, + missing_parquet_names, + ) + ) + + if self.failed_files_error: + raise NoFilesFoundError( + "Conversion failed for the following files: \n" + + "\n".join(self.failed_files_error), + ) + else: + print("All files converted successfully!") + + if len(self.parquet_names) == 0: + raise ValueError( + "No data available. Probably failed reading all h5 files", + ) + + print( + f"Loading {len(self.parquet_names)} dataframes. Failed reading " + f"{len(all_files)-len(self.parquet_names)} files.", + ) + # Read all parquet files using dask and concatenate into one dataframe + # after filling + dataframe = self.fill_na( + [ + dd.read_parquet(parquet_file) + for parquet_file in self.parquet_names + ], + ) + dataframe = dataframe.dropna(subset=self.channels_per_electron) + + return dataframe, self.parse_metadata(all_files) + + +LOADER = FlashLoader From be6a3cc5d06c611be250f03665ca215206be452c Mon Sep 17 00:00:00 2001 From: Zain Sohail Date: Tue, 2 May 2023 01:18:52 +0200 Subject: [PATCH 07/36] Create __init__.py --- sed/loader/flash/__init__.py | 1 + 1 file changed, 1 insertion(+) create mode 100644 sed/loader/flash/__init__.py diff --git a/sed/loader/flash/__init__.py b/sed/loader/flash/__init__.py new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/sed/loader/flash/__init__.py @@ -0,0 +1 @@ + From 408308c29451c897b960308d1bc3a1af97a9fedf Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Tue, 23 May 2023 14:03:41 +0200 Subject: [PATCH 08/36] conflict resolved --- poetry.lock | 226 ++++++++++++++++++++++++------------------------- pyproject.toml | 2 + 2 files changed, 115 insertions(+), 113 deletions(-) diff --git a/poetry.lock b/poetry.lock index 834ec3d2..443c2706 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand. +# This file is automatically @generated by Poetry and should not be changed by hand. [[package]] name = "alabaster" @@ -1090,14 +1090,14 @@ files = [ [[package]] name = "fastjsonschema" -version = "2.16.3" +version = "2.17.1" description = "Fastest Python implementation of JSON schema" category = "main" optional = false python-versions = "*" files = [ - {file = "fastjsonschema-2.16.3-py3-none-any.whl", hash = "sha256:04fbecc94300436f628517b05741b7ea009506ce8f946d40996567c669318490"}, - {file = "fastjsonschema-2.16.3.tar.gz", hash = "sha256:4a30d6315a68c253cfa8f963b9697246315aa3db89f98b97235e345dedfb0b8e"}, + {file = "fastjsonschema-2.17.1-py3-none-any.whl", hash = "sha256:4b90b252628ca695280924d863fe37234eebadc29c5360d322571233dc9746e0"}, + {file = "fastjsonschema-2.17.1.tar.gz", hash = "sha256:f4eeb8a77cef54861dbf7424ac8ce71306f12cbb086c45131bcba2c6a4f726e3"}, ] [package.extras] @@ -1224,20 +1224,20 @@ tqdm = ["tqdm"] [[package]] name = "furo" -version = "2023.3.27" +version = "2023.5.20" description = "A clean customisable Sphinx documentation theme." category = "main" optional = true python-versions = ">=3.7" files = [ - {file = "furo-2023.3.27-py3-none-any.whl", hash = "sha256:4ab2be254a2d5e52792d0ca793a12c35582dd09897228a6dd47885dabd5c9521"}, - {file = "furo-2023.3.27.tar.gz", hash = "sha256:b99e7867a5cc833b2b34d7230631dd6558c7a29f93071fdbb5709634bb33c5a5"}, + {file = "furo-2023.5.20-py3-none-any.whl", hash = "sha256:594a8436ddfe0c071f3a9e9a209c314a219d8341f3f1af33fdf7c69544fab9e6"}, + {file = "furo-2023.5.20.tar.gz", hash = "sha256:40e09fa17c6f4b22419d122e933089226dcdb59747b5b6c79363089827dea16f"}, ] [package.dependencies] beautifulsoup4 = "*" pygments = ">=2.7" -sphinx = ">=5.0,<7.0" +sphinx = ">=6.0,<8.0" sphinx-basic-ng = "*" [[package]] @@ -1547,14 +1547,14 @@ files = [ [[package]] name = "ipykernel" -version = "6.23.0" +version = "6.23.1" description = "IPython Kernel for Jupyter" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "ipykernel-6.23.0-py3-none-any.whl", hash = "sha256:fc886f1dcdc0ec17f277e4d21fd071c857d381adcb04f3f3735d25325ca323c6"}, - {file = "ipykernel-6.23.0.tar.gz", hash = "sha256:bd6f487d9e2744c84f6e667d46462d7647a4c862e70e08282f05a52b9d4b705f"}, + {file = "ipykernel-6.23.1-py3-none-any.whl", hash = "sha256:77aeffab056c21d16f1edccdc9e5ccbf7d96eb401bd6703610a21be8b068aadc"}, + {file = "ipykernel-6.23.1.tar.gz", hash = "sha256:1aba0ae8453e15e9bc6b24e497ef6840114afcdb832ae597f32137fa19d42a6f"}, ] [package.dependencies] @@ -1763,14 +1763,14 @@ files = [ [[package]] name = "json5" -version = "0.9.11" +version = "0.9.14" description = "A Python implementation of the JSON5 data format." category = "main" optional = false python-versions = "*" files = [ - {file = "json5-0.9.11-py2.py3-none-any.whl", hash = "sha256:1aa54b80b5e507dfe31d12b7743a642e2ffa6f70bf73b8e3d7d1d5fba83d99bd"}, - {file = "json5-0.9.11.tar.gz", hash = "sha256:4f1e196acc55b83985a51318489f345963c7ba84aa37607e49073066c562e99b"}, + {file = "json5-0.9.14-py2.py3-none-any.whl", hash = "sha256:740c7f1b9e584a468dbb2939d8d458db3427f2c93ae2139d05f47e453eae964f"}, + {file = "json5-0.9.14.tar.gz", hash = "sha256:9ed66c3a6ca3510a976a9ef9b8c0787de24802724ab1860bc0153c7fdd589b02"}, ] [package.extras] @@ -1951,14 +1951,14 @@ test = ["check-manifest", "coverage", "jupyterlab-server[test]", "pre-commit", " [[package]] name = "jupyterlab-h5web" -version = "7.1.1" +version = "7.1.2" description = "A JupyterLab extension to explore and visualize HDF5 file contents." category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "jupyterlab_h5web-7.1.1-py3-none-any.whl", hash = "sha256:6c8c74cde33a93c8bdbc1b13e30355d6a288ffae9222a2685ebeb0fb5e425fae"}, - {file = "jupyterlab_h5web-7.1.1.tar.gz", hash = "sha256:f9881cc13826161ebc979fdc8070f71bc2d39666ebbd47bf17d5eaa6ed3fe5a7"}, + {file = "jupyterlab_h5web-7.1.2-py3-none-any.whl", hash = "sha256:f430b37f71fd087680df2c6f5da1747ab13eaa6cfbd451da5ab7b46b933fb665"}, + {file = "jupyterlab_h5web-7.1.2.tar.gz", hash = "sha256:94d0ed2debf4f7fe482bef868084ff128b71bbe73f9dff008eb597fe7f2538e2"}, ] [package.dependencies] @@ -2022,14 +2022,14 @@ files = [ [[package]] name = "kikuchipy" -version = "0.8.4" +version = "0.8.5" description = "Processing, simulating and indexing of electron backscatter diffraction (EBSD) patterns." category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "kikuchipy-0.8.4-py3-none-any.whl", hash = "sha256:662ab691ff4dc044800f35c24b317a7a4ef29bed567055cf099ba1f1f4acaa7c"}, - {file = "kikuchipy-0.8.4.tar.gz", hash = "sha256:eb800c097794e5511c2d75b0e5ae2b562e035a15e6a8acd0f111103a1102de01"}, + {file = "kikuchipy-0.8.5-py3-none-any.whl", hash = "sha256:83c135e906690f916f02c37126a5503487d93b35483f580bfcbfb3a011e21915"}, + {file = "kikuchipy-0.8.5.tar.gz", hash = "sha256:2d495b128c5cd408fb8336439281d743a2f7b97b661fea79bf02034e7ec85953"}, ] [package.dependencies] @@ -2516,26 +2516,26 @@ test = ["coverage", "nbval", "pytest", "pytest-cov", "pytest-jupyter", "pytest-p [[package]] name = "nbclient" -version = "0.7.4" +version = "0.8.0" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." category = "main" optional = false -python-versions = ">=3.7.0" +python-versions = ">=3.8.0" files = [ - {file = "nbclient-0.7.4-py3-none-any.whl", hash = "sha256:c817c0768c5ff0d60e468e017613e6eae27b6fa31e43f905addd2d24df60c125"}, - {file = "nbclient-0.7.4.tar.gz", hash = "sha256:d447f0e5a4cfe79d462459aec1b3dc5c2e9152597262be8ee27f7d4c02566a0d"}, + {file = "nbclient-0.8.0-py3-none-any.whl", hash = "sha256:25e861299e5303a0477568557c4045eccc7a34c17fc08e7959558707b9ebe548"}, + {file = "nbclient-0.8.0.tar.gz", hash = "sha256:f9b179cd4b2d7bca965f900a2ebf0db4a12ebff2f36a711cb66861e4ae158e55"}, ] [package.dependencies] jupyter-client = ">=6.1.12" jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" nbformat = ">=5.1" -traitlets = ">=5.3" +traitlets = ">=5.4" [package.extras] dev = ["pre-commit"] docs = ["autodoc-traits", "mock", "moto", "myst-parser", "nbclient[test]", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling"] -test = ["flaky", "ipykernel", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] +test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] [[package]] name = "nbconvert" @@ -3139,43 +3139,43 @@ ptyprocess = ">=0.5" [[package]] name = "photutils" -version = "1.7.0" +version = "1.8.0" description = "An Astropy package for source detection and photometry" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "photutils-1.7.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2179fe92dc7192f216f52c947daa16887d60fa7bc6b3ba42d8604910e1fabd8e"}, - {file = "photutils-1.7.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3eda4efe1510a76621aac3109757dc4e71ccbbc9c971cf27c8eb07589b6e5f0b"}, - {file = "photutils-1.7.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4900e0c2641b0a03f8f61406de181d8d78803be749b0893b641bbd2587f1b840"}, - {file = "photutils-1.7.0-cp310-cp310-win32.whl", hash = "sha256:678be058d123f6d049925f284d79fd2c0752e0b9f07feae2be5fb8e8f057ebb9"}, - {file = "photutils-1.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:2fd2f1e544712855170ae3548eaf299cc586cf7eaa219fbe23ee810d95f1522b"}, - {file = "photutils-1.7.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:26a05bad38d3fc9ea4b221e583a8d58385b6b12d2a9cf811f5fc9d0e166f9e29"}, - {file = "photutils-1.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c34da8bd2bbf4d04ad43d8462c33a030cd1d1debd84a9ba0a1c0968f216ae2c9"}, - {file = "photutils-1.7.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8202dd157cc5c93cffaca0998963d0ecec9f26ed6881fec7b22314e90330a017"}, - {file = "photutils-1.7.0-cp311-cp311-win32.whl", hash = "sha256:f08e348c5337dd2fdf0554fbad588309076314c622008d5f03980a256e495fd9"}, - {file = "photutils-1.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:154c22a9eee1e2189895243cf8c485f35672d157a232b0874e4cba2471262906"}, - {file = "photutils-1.7.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c7ccce951d70e8fd36f21a4dfe49f67bbf540e657a1b0809500ccdde22c61026"}, - {file = "photutils-1.7.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:dd41434fa5c0c881f55e630d25c487acfc0bd3af78482b43d7c7b8a6b4e0cd11"}, - {file = "photutils-1.7.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f582933ad97acf41581ace5640f267709013dbdc230f7df4a2012eed05559be5"}, - {file = "photutils-1.7.0-cp38-cp38-win32.whl", hash = "sha256:4287c9fe02e1c38cbbc77b6772d20569dab05219e60521fac03b47c2069c7918"}, - {file = "photutils-1.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:8a04269110f85fb67a55882b4a5c446579bde3f1a6faaf97c3083246ed7972a8"}, - {file = "photutils-1.7.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:be258a9e1ea12b1bb3f7c9bfdc2d37d411285c893fa426bd4f35bc389495ce9c"}, - {file = "photutils-1.7.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:926e0f089ce85f2154e5f376bb11c6a437d8e35f45c601ced66af52491818087"}, - {file = "photutils-1.7.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:454d20b038d54742c8780d120fd9bad510d108cfb24f45e3e7550875360a0565"}, - {file = "photutils-1.7.0-cp39-cp39-win32.whl", hash = "sha256:12f63d2eb108d6ada7ffbdad47127fc5bed98fd6ac49c9e5db878472607721ee"}, - {file = "photutils-1.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:0e04a6b4d08080068f1b50c4881d97a3682b129c223f677014a119c33c2862e0"}, - {file = "photutils-1.7.0.tar.gz", hash = "sha256:5f02ab667496c6ece3880f226c01715dab3904a35c15444d2bea520188aa04af"}, + {file = "photutils-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:71af12251a5362f847f56be5b0698ffad2691c62723470ee7b08aa9c68c7ca27"}, + {file = "photutils-1.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fb3fcd3c0a2dd763b8aed51a0ae606f50f0ec5d793298d942e1056ed0ab5b6e7"}, + {file = "photutils-1.8.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fdf0095a1ed4d11a85e99e90141166e7df5f7512435ddbf52bbe781aedee0f13"}, + {file = "photutils-1.8.0-cp310-cp310-win32.whl", hash = "sha256:1e4c5b0e26ccd07611c0c342907214d7343950e2233dd4cdd29552c18edecd24"}, + {file = "photutils-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:622a791ae5cec6b68a04f3d255688df32e6b401e18eb3d4a70e7d5150561d652"}, + {file = "photutils-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e0da859cdd4cc25d6fb9ef5086f15b088c1673c348e1d786559e6f7365a964c6"}, + {file = "photutils-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4f224c27e620a404e4a58a9406ef83fdf0af50f01939f1ce52617c8ae6d0bb7d"}, + {file = "photutils-1.8.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ce5ff0c03c4c426671da4a6a738279682f1dc2a352c77006561debc403955b7"}, + {file = "photutils-1.8.0-cp311-cp311-win32.whl", hash = "sha256:3748821c96c5f0345dbce96989b4ed57144f7885866bc1d3bd142a0db709663e"}, + {file = "photutils-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:7e1119ae00cbf7a461f92182abc46ef4e78e689f0e8e7f6183e76ab88a8028fc"}, + {file = "photutils-1.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8b46cf6c29533d7dd19902cabca79447699714fb393722234bcd3f8fe58c442d"}, + {file = "photutils-1.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:fd77a07b18d826cb8434ed1d2545213a11901618dd1a6a814269876d62b415b7"}, + {file = "photutils-1.8.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c2c6d01056f3bbce470d38475f9a30ee625bb212522e62fa093a5ed0917ca52"}, + {file = "photutils-1.8.0-cp38-cp38-win32.whl", hash = "sha256:9c8102e7e8f7dab3312d9c41d54f485c9ec8bc6f00c84d6ccf6d2526b54c0adc"}, + {file = "photutils-1.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:948249587bc61efbfb6c8bc0ed16dd7e60fa06b64bf904ba75d397556d2f333f"}, + {file = "photutils-1.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:33369290b4aa658fce73a7700430d22530c0fc3776d28609ae4e8afa287d12c7"}, + {file = "photutils-1.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b0f948223d20499caad9d01c91e95facce6028e70e76d6683a85f3d72f3f2eff"}, + {file = "photutils-1.8.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1736e3d108a55eaf769e4c8bbf988f923bf5ddcac41e5c0f7664de48868010c"}, + {file = "photutils-1.8.0-cp39-cp39-win32.whl", hash = "sha256:f05a52daa4041476aece812589e9b4bbaef582a159945ef83b9463f600de3082"}, + {file = "photutils-1.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:d539269c4e4e350ffa1202d24935f48e0bad48e0d4200c6319392f36bcba4e2e"}, + {file = "photutils-1.8.0.tar.gz", hash = "sha256:2ccf397659f48109e760924c5a4cd324caf9e8cb86aa6946ebfc074547a3701e"}, ] [package.dependencies] astropy = ">=5.0" -numpy = ">=1.20" +numpy = ">=1.21" [package.extras] -all = ["bottleneck", "gwcs (>=0.16)", "matplotlib (>=3.3.0)", "rasterio", "scikit-image (>=0.18.0)", "scikit-learn (>=1.0)", "scipy (>=1.6.0)", "shapely", "tqdm"] -docs = ["gwcs (>=0.16)", "matplotlib (>=3.3.0)", "rasterio", "scikit-image (>=0.18.0)", "scikit-learn (>=1.0)", "scipy (>=1.6.0)", "shapely", "sphinx", "sphinx-astropy (>=1.6)"] -test = ["pytest-astropy"] +all = ["bottleneck", "gwcs (>=0.18)", "matplotlib (>=3.5.0)", "rasterio", "scikit-image (>=0.19.0)", "scikit-learn (>=1.0)", "scipy (>=1.7.0)", "shapely", "tqdm"] +docs = ["gwcs (>=0.18)", "matplotlib (>=3.5.0)", "rasterio", "scikit-image (>=0.19.0)", "scikit-learn (>=1.0)", "scipy (>=1.7.0)", "shapely", "sphinx", "sphinx-astropy (>=1.6)"] +test = ["pytest-astropy (>=0.10)"] [[package]] name = "pickleshare" @@ -3568,40 +3568,40 @@ test = ["pytest", "pytest-doctestplus (>=0.7)"] [[package]] name = "pyfai" -version = "2023.3.0" -description = "FabIO is an I/O library for images produced by 2D X-ray detectors and written in Python" +version = "2023.5.0" +description = "Python implementation of fast azimuthal integration" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "pyfai-2023.3.0-cp310-cp310-macosx_10_9_arm64.whl", hash = "sha256:f93c44ec0bcc47479da9e8036674d3be18faa48767d1692ea25a441b5d731be8"}, - {file = "pyfai-2023.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2abbb15b23bb670b5c012df85914841fd476727c87e64da5a3cd235c0adccbee"}, - {file = "pyfai-2023.3.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5d55f1aa8ffd806d59838f75a3d198f95f9d7d678f6788b32a96b0d429cddc00"}, - {file = "pyfai-2023.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87ef569180c227ea48e54c733a85d1189051c44a944b128d67fcf91430dd0e28"}, - {file = "pyfai-2023.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7123b72ecb836b1a0ca84ba9b2a5a6538afd8ae6ec6aac30537a8df05368f184"}, - {file = "pyfai-2023.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:e38cfb81add360e8bd619852e0de386123af5f4b8e4777725123c2e724c4f1e1"}, - {file = "pyfai-2023.3.0-cp311-cp311-macosx_10_9_arm64.whl", hash = "sha256:3ff010ece6c758aec2dc52e3a6f8ed02ae3ccebf897c2d14cc71596822374f21"}, - {file = "pyfai-2023.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea0fd11851dbfd77a8911f4a454c3d93b8cc6fbfa6c835332cafcc4095967c30"}, - {file = "pyfai-2023.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f73777f4ed244ec7f1d1528ed4acee7c7dc33ccbd6c55e38b3b60747f7f5154"}, - {file = "pyfai-2023.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:0885982f6aa9491bf58dfed62ad243e39b555ca646f202cf64268cd3a908eff1"}, - {file = "pyfai-2023.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:27a2e5f0c560023d321dee3f957b8a6424aea05c57007d2b410e85938ff53351"}, - {file = "pyfai-2023.3.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7d88830e8c6d22777c8dc34ffddd89432160bcb7e4d44c8e15928c1e3dbaaa87"}, - {file = "pyfai-2023.3.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8cb7f30dd137bf8c9bf97fdb6bd000c138dab117b43220af06ad68a157ebfed6"}, - {file = "pyfai-2023.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:30787e29ef92a0692e69e63bfd5d46277b14c356dad120279031d4f2bf617c5f"}, - {file = "pyfai-2023.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:0d7581d2242459b1422f70c948070c9dc8de76159e3db58c8f02996680027ca8"}, - {file = "pyfai-2023.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:eaceee5a95dc1b61915b9a4de04330238607b98db6bb580ddd4017eeef15a529"}, - {file = "pyfai-2023.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4c679b337edcd1d641070df5b8d7e36dae0a6988bb46904ddf25aae12ee66478"}, - {file = "pyfai-2023.3.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d06e8268010047dec390ed09b848f4c3817a6b11c62d5fb9262484b1a5fb1aaa"}, - {file = "pyfai-2023.3.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86fcb4666a2cc2d9ae9a5b8c6d319db20e5266059ebf7edf2b2fe29866d2da9f"}, - {file = "pyfai-2023.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c2106183b62a5c837fff7be94e2e78b374a40ee9cf5899cae6f40c2b4c68a21f"}, - {file = "pyfai-2023.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:2ef666b95e5addada120004ba844a415138ac4f9c213b39d3ca671f2848bd8d7"}, - {file = "pyfai-2023.3.0-cp39-cp39-macosx_10_9_arm64.whl", hash = "sha256:d09d98f4b56836ad5a16e7d0e500fe47ffa8328330c7abf760aa21d5938f687d"}, - {file = "pyfai-2023.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:edad7f6f8225f9c5a3b78dde918f0f9d9e17d1b9697e1c0e8191cb51ba5724c6"}, - {file = "pyfai-2023.3.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:acc2bc9df67fef2ef627c2217508551a70265acb4d69027f134a9e4cfcd36461"}, - {file = "pyfai-2023.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a23a0ded4152a61d3e1b12490422567a7c2053fb6bd73de5c987efedfb48ec77"}, - {file = "pyfai-2023.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5ac935d7b624e65f5d9643f7bec2036f632c92cd78664640d792935044c2950"}, - {file = "pyfai-2023.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:7fcc08154d5fc7e221c6f96194e02eb0afaa6ea2645e8549aa54e59caf337972"}, - {file = "pyfai-2023.3.0.tar.gz", hash = "sha256:2b51571f58613d294824e045cb9599136038f5c53ac6d693ec6dd23e9576dc0e"}, + {file = "pyfai-2023.5.0-cp310-cp310-macosx_10_9_arm64.whl", hash = "sha256:a7da14d3968a8ca24d4330fa7dfa7ff86cf771a2fa0af56f37b7f1b97b367503"}, + {file = "pyfai-2023.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dafd25299fd65bfbc5a84a5f483f2d699336cb2562fa68148a0126478572d380"}, + {file = "pyfai-2023.5.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:fd5a3a40ea327906ae0040f4495d0690bf9be23ba59c7d05bdf015c8b2169669"}, + {file = "pyfai-2023.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0edb71247b731ede6847353fab4d8e24409e51b401359d325cb9572437ef8d6b"}, + {file = "pyfai-2023.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b80a1e8b7c3eb4510d08999f583d1c4bd414daea6578df2c68c31184088cf08"}, + {file = "pyfai-2023.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:02e62c602acd91b00443aa1431f1e677dd6f6de5216892544fdb9aa317ceae34"}, + {file = "pyfai-2023.5.0-cp311-cp311-macosx_10_9_arm64.whl", hash = "sha256:00fe714575939c939617b9dbca8303abf3e7e8529a2863f9e9ee905ce253c956"}, + {file = "pyfai-2023.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1155e591a4b5cd7f6b3e9f7a58bf5d980d1e126d22190d6c35ab793b7523f92c"}, + {file = "pyfai-2023.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db192e54e30c5d4ccb9014179a4884175e17427822033bbeac5da9087aef3326"}, + {file = "pyfai-2023.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:bcd9885b0c2171fff17860637a97ca4cb1862f1f0240293eb8f6ac24c55b05c0"}, + {file = "pyfai-2023.5.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5308e893615134295ad4d2479ab456e1f27ae55cc8fe9fefc8ab402ab49ebacc"}, + {file = "pyfai-2023.5.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9e08f925828df0f610fdc78b7cbed6201e6aeb452088a04fac3dd627b797537b"}, + {file = "pyfai-2023.5.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8cf49feefd89a1a27e65b34fde0d8f4807876ed7804abca3f276c471d8b2e73f"}, + {file = "pyfai-2023.5.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88ff16c5692a90acf523bac326808897a84c0b063e03177df10fb6aa91ea3d5a"}, + {file = "pyfai-2023.5.0-cp37-cp37m-win_amd64.whl", hash = "sha256:927d9d00ad1123e0a9ebaea1f8c100aef23dd46baad86ebea772b4fe7cd3e67b"}, + {file = "pyfai-2023.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ba96cd51b3ead74529b8397a76beae91c08d89cb0dbd13724c3c469727288238"}, + {file = "pyfai-2023.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c786bb8d2fcc3a52a1bcdce0b5ee9ab16bd3488630b230cd26a67c2d2fe36440"}, + {file = "pyfai-2023.5.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ac00f6bbab8f5f14daf7467ffa7af0933a5ee5fa7ba9d827954b5dc7734c294e"}, + {file = "pyfai-2023.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:26796dc0531a0a490b36ba1d67b7bf3d74d71de1926ca6b2660f0ada35090466"}, + {file = "pyfai-2023.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b2bfc143d4e2aed30d92274a6e549b10e2b39f1fa142ee07363caaecbd9ce97"}, + {file = "pyfai-2023.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:2c998f51ec7e1ac999805d0904b6b325b2587252382bd18f98a2b0bae72e14cc"}, + {file = "pyfai-2023.5.0-cp39-cp39-macosx_10_9_arm64.whl", hash = "sha256:80305af243323498eb385fefa6c2df112e0c38426d2868dc8d736e68a8e8c697"}, + {file = "pyfai-2023.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1298c29a8169f57e290be37deebd499e1412945e731db83d40528b26dd9424ff"}, + {file = "pyfai-2023.5.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1a3b4ed9e31538587ff1b702eba2264d9b61a3ebef64ef289b70bf5c85a97f3f"}, + {file = "pyfai-2023.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:804d978cca011e52ccc109fb45c79c034540419ddca2f3da506dd579413e816b"}, + {file = "pyfai-2023.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:55cfc81382d4a8b0cf1adb070b9a978360ac921f508c4334526e975af7352dfa"}, + {file = "pyfai-2023.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:c7389a5e462ebb394dd4367914bcc78b54a5fc53cebb8d5411d0f15bac87728e"}, + {file = "pyfai-2023.5.0.tar.gz", hash = "sha256:8c578a753340463b6c08e9949a07b5ee02f4920fe2b51f3afe8d4cf3d38234f9"}, ] [package.dependencies] @@ -4184,14 +4184,14 @@ sphinx = ">=1.3.1" [[package]] name = "requests" -version = "2.30.0" +version = "2.31.0" description = "Python HTTP for Humans." category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "requests-2.30.0-py3-none-any.whl", hash = "sha256:10e94cc4f3121ee6da529d358cdaeaff2f1c409cd377dbc72b825852f2f7e294"}, - {file = "requests-2.30.0.tar.gz", hash = "sha256:239d7d4458afcb28a692cdd298d87542235f4ca8d36d03a15bfc128a6559a2f4"}, + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, ] [package.dependencies] @@ -4446,19 +4446,19 @@ win32 = ["pywin32"] [[package]] name = "setuptools" -version = "67.7.2" +version = "67.8.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "setuptools-67.7.2-py3-none-any.whl", hash = "sha256:23aaf86b85ca52ceb801d32703f12d77517b2556af839621c641fca11287952b"}, - {file = "setuptools-67.7.2.tar.gz", hash = "sha256:f104fa03692a2602fa0fec6c6a9e63b6c8a968de13e17c026957dd1f53d80990"}, + {file = "setuptools-67.8.0-py3-none-any.whl", hash = "sha256:5df61bf30bb10c6f756eb19e7c9f3b473051f48db77fddbe06ff2ca307df9a6f"}, + {file = "setuptools-67.8.0.tar.gz", hash = "sha256:62642358adc77ffa87233bc4d2354c4b2682d214048f500964dbe760ccedf102"}, ] [package.extras] docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] @@ -4696,14 +4696,14 @@ docs = ["furo", "ipython", "myst-parser", "sphinx-copybutton", "sphinx-inline-ta [[package]] name = "sphinx-rtd-theme" -version = "1.2.0" +version = "1.2.1" description = "Read the Docs theme for Sphinx" category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ - {file = "sphinx_rtd_theme-1.2.0-py2.py3-none-any.whl", hash = "sha256:f823f7e71890abe0ac6aaa6013361ea2696fc8d3e1fa798f463e82bdb77eeff2"}, - {file = "sphinx_rtd_theme-1.2.0.tar.gz", hash = "sha256:a0d8bd1a2ed52e0b338cbe19c4b2eef3c5e7a048769753dac6a9f059c7b641b8"}, + {file = "sphinx_rtd_theme-1.2.1-py2.py3-none-any.whl", hash = "sha256:2cc9351176cbf91944ce44cefd4fab6c3b76ac53aa9e15d6db45a3229ad7f866"}, + {file = "sphinx_rtd_theme-1.2.1.tar.gz", hash = "sha256:cf9a7dc0352cf179c538891cb28d6fad6391117d4e21c891776ab41dd6c8ff70"}, ] [package.dependencies] @@ -5010,23 +5010,23 @@ files = [ [[package]] name = "tornado" -version = "6.3.1" +version = "6.3.2" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." category = "main" optional = false python-versions = ">= 3.8" files = [ - {file = "tornado-6.3.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:db181eb3df8738613ff0a26f49e1b394aade05034b01200a63e9662f347d4415"}, - {file = "tornado-6.3.1-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b4e7b956f9b5e6f9feb643ea04f07e7c6b49301e03e0023eedb01fa8cf52f579"}, - {file = "tornado-6.3.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9661aa8bc0e9d83d757cd95b6f6d1ece8ca9fd1ccdd34db2de381e25bf818233"}, - {file = "tornado-6.3.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:81c17e0cc396908a5e25dc8e9c5e4936e6dfd544c9290be48bd054c79bcad51e"}, - {file = "tornado-6.3.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a27a1cfa9997923f80bdd962b3aab048ac486ad8cfb2f237964f8ab7f7eb824b"}, - {file = "tornado-6.3.1-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:d7117f3c7ba5d05813b17a1f04efc8e108a1b811ccfddd9134cc68553c414864"}, - {file = "tornado-6.3.1-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:ffdce65a281fd708da5a9def3bfb8f364766847fa7ed806821a69094c9629e8a"}, - {file = "tornado-6.3.1-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:90f569a35a8ec19bde53aa596952071f445da678ec8596af763b9b9ce07605e6"}, - {file = "tornado-6.3.1-cp38-abi3-win32.whl", hash = "sha256:3455133b9ff262fd0a75630af0a8ee13564f25fb4fd3d9ce239b8a7d3d027bf8"}, - {file = "tornado-6.3.1-cp38-abi3-win_amd64.whl", hash = "sha256:1285f0691143f7ab97150831455d4db17a267b59649f7bd9700282cba3d5e771"}, - {file = "tornado-6.3.1.tar.gz", hash = "sha256:5e2f49ad371595957c50e42dd7e5c14d64a6843a3cf27352b69c706d1b5918af"}, + {file = "tornado-6.3.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:c367ab6c0393d71171123ca5515c61ff62fe09024fa6bf299cd1339dc9456829"}, + {file = "tornado-6.3.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b46a6ab20f5c7c1cb949c72c1994a4585d2eaa0be4853f50a03b5031e964fc7c"}, + {file = "tornado-6.3.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c2de14066c4a38b4ecbbcd55c5cc4b5340eb04f1c5e81da7451ef555859c833f"}, + {file = "tornado-6.3.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:05615096845cf50a895026f749195bf0b10b8909f9be672f50b0fe69cba368e4"}, + {file = "tornado-6.3.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b17b1cf5f8354efa3d37c6e28fdfd9c1c1e5122f2cb56dac121ac61baa47cbe"}, + {file = "tornado-6.3.2-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:29e71c847a35f6e10ca3b5c2990a52ce38b233019d8e858b755ea6ce4dcdd19d"}, + {file = "tornado-6.3.2-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:834ae7540ad3a83199a8da8f9f2d383e3c3d5130a328889e4cc991acc81e87a0"}, + {file = "tornado-6.3.2-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6a0848f1aea0d196a7c4f6772197cbe2abc4266f836b0aac76947872cd29b411"}, + {file = "tornado-6.3.2-cp38-abi3-win32.whl", hash = "sha256:7efcbcc30b7c654eb6a8c9c9da787a851c18f8ccd4a5a3a95b05c7accfa068d2"}, + {file = "tornado-6.3.2-cp38-abi3-win_amd64.whl", hash = "sha256:0c325e66c8123c606eea33084976c832aa4e766b7dff8aedd7587ea44a604cdf"}, + {file = "tornado-6.3.2.tar.gz", hash = "sha256:4b927c4f19b71e627b13f3db2324e4ae660527143f9e1f2e2fb404f3a187e2ba"}, ] [[package]] @@ -5153,14 +5153,14 @@ files = [ [[package]] name = "typing-extensions" -version = "4.5.0" +version = "4.6.0" description = "Backported and Experimental Type Hints for Python 3.7+" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "typing_extensions-4.5.0-py3-none-any.whl", hash = "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4"}, - {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"}, + {file = "typing_extensions-4.6.0-py3-none-any.whl", hash = "sha256:6ad00b63f849b7dcc313b70b6b304ed67b2b2963b3098a33efe18056b1a9a223"}, + {file = "typing_extensions-4.6.0.tar.gz", hash = "sha256:ff6b238610c747e44c268aa4bb23c8c735d665a63726df3f9431ce707f2aa768"}, ] [[package]] @@ -5243,14 +5243,14 @@ files = [ [[package]] name = "websocket-client" -version = "1.5.1" +version = "1.5.2" description = "WebSocket client for Python with low level API options" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "websocket-client-1.5.1.tar.gz", hash = "sha256:3f09e6d8230892547132177f575a4e3e73cfdf06526e20cc02aa1c3b47184d40"}, - {file = "websocket_client-1.5.1-py3-none-any.whl", hash = "sha256:cdf5877568b7e83aa7cf2244ab56a3213de587bbe0ce9d8b9600fc77b455d89e"}, + {file = "websocket-client-1.5.2.tar.gz", hash = "sha256:c7d67c13b928645f259d9b847ab5b57fd2d127213ca41ebd880de1f553b7c23b"}, + {file = "websocket_client-1.5.2-py3-none-any.whl", hash = "sha256:f8c64e28cd700e7ba1f04350d66422b6833b82a796b525a51e740b8cc8dab4b1"}, ] [package.extras] @@ -5346,10 +5346,10 @@ docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] [extras] -docs = ["sphinx", "sphinx-autodoc-typehints", "sphinx-rtd-theme", "tomlkit"] -notebook = ["ipykernel", "jupyter"] +docs = ["sphinx", "sphinx-rtd-theme", "tomlkit", "sphinx-autodoc-typehints"] +notebook = ["jupyter", "ipykernel"] [metadata] lock-version = "2.0" python-versions = ">=3.8,<3.11" -content-hash = "73610298596169d4edeb17c0c258859046442937eec90140f70c1f87cd66659b" +content-hash = "2c64d9bdc7002d6820bda2883992fbe7309f06d4fd2f147f775f3a560384a6fd" diff --git a/pyproject.toml b/pyproject.toml index 96e70e59..617b567f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,6 +28,7 @@ threadpoolctl = "^3.1.0" tifffile = ">=2022.2.9, <2023.0.0" tqdm = "^4.62.3" xarray = "^0.20.2" +joblib = "^1.2.0" jupyter = {version = "^1.0.0", extras = ["notebook"], optional = true} ipykernel = {version = "^6.9.1", extras = ["notebook"], optional = true} sphinx = {version = ">4.4.0", extras = ["docs"], optional = true} @@ -35,6 +36,7 @@ sphinx-rtd-theme = {version = ">1.0.0", extras = ["docs"], optional = true} tomlkit = {version = ">0.10.0", extras = ["docs"], optional = true} sphinx-autodoc-typehints = {version = ">1.17.0", extras = ["docs"], optional = true} + [tool.poetry.extras] notebook = ["jupyter", "ipykernel"] docs = ["Sphinx", "sphinx-rtd-theme", "tomlkit", "sphinx-autodoc-typehints"] From 8f14198033d33ed248fbcb3673e49e81029d0bdd Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Thu, 4 May 2023 15:37:00 +0200 Subject: [PATCH 09/36] fix linting errors --- sed/loader/flash/__init__.py | 1 - sed/loader/flash/loader.py | 22 +++++++++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/sed/loader/flash/__init__.py b/sed/loader/flash/__init__.py index 8b137891..e69de29b 100644 --- a/sed/loader/flash/__init__.py +++ b/sed/loader/flash/__init__.py @@ -1 +0,0 @@ - diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index f4730d24..b13b28bf 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -9,6 +9,7 @@ from pathlib import Path from typing import cast from typing import List +from typing import Sequence from typing import Tuple from typing import Union @@ -40,11 +41,11 @@ class FlashLoader(BaseLoader): def __init__(self, config: dict, meta_handler) -> None: + super().__init__(config=config, meta_handler=meta_handler) self._config: dict = config.get("dataframe", {}) self.config_parser() # Set all channels, exluding pulseId as default self.all_channels: dict = self._config.get("channels", {}) - self.files: List[Path] = [] self.index_per_electron: Union[MultiIndex, None] = None self.index_per_pulse: Union[MultiIndex, None] = None self.parquet_names: List[Path] = [] @@ -467,7 +468,10 @@ def fill_na(self, dataframes: List) -> dd.DataFrame: return dd.concat(dataframes) - def parse_metadata(self, files) -> dict: + def parse_metadata( + self, + files: Sequence[str], # pylint: disable=unused-argument + ) -> dict: """Dummy Args: @@ -480,17 +484,17 @@ def parse_metadata(self, files) -> dict: def get_count_rate( self, - fids = None, + fids: Sequence[int] = None, **kwds, ): return None, None - def get_elapsed_time(self, fids = None, **kwds): + def get_elapsed_time(self, fids=None, **kwds): return None def read_dataframe( self, - files: Union[List[int], int] = 0, + files: Sequence[str] = "", folder: str = "", ftype: str = "h5", **kwds, @@ -500,15 +504,13 @@ def read_dataframe( temp_parquet_dir = self.data_parquet_dir.joinpath("per_file") os.makedirs(temp_parquet_dir, exist_ok=True) - self.files = files - runs = files folder = str(self.data_raw_dir) # Prepare a list of names for the files to read and parquets to write runs = files if isinstance(files, list) else [files] all_files = [] for run in runs: run_files = gather_flash_files( - run, + cast(int, run), self.daq, folder, extension=ftype, @@ -571,7 +573,9 @@ def read_dataframe( ) dataframe = dataframe.dropna(subset=self.channels_per_electron) - return dataframe, self.parse_metadata(all_files) + return dataframe, self.parse_metadata( + [str(path) for path in all_files], + ) LOADER = FlashLoader From 59004ea1cd6ddfeaaa3be9d73d34614ad95a0726 Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Thu, 4 May 2023 17:15:47 +0200 Subject: [PATCH 10/36] further linting errors --- sed/loader/flash/loader.py | 28 ++++++++++++++++++---------- tests/loader/test_loaders.py | 4 +++- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index b13b28bf..2fa8b442 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -271,7 +271,7 @@ def create_dataframe_per_pulse( train_id, channel, channel_dict, - ) -> DataFrame: + ) -> DataFrame: # pylint: disable=no-self-use """Returns a pandas DataFrame for a given channel name of type [per pulse]""" # Special case for auxillary channels which checks the channel # dictionary for correct slices and creates a multicolumn @@ -290,7 +290,7 @@ def create_dataframe_per_pulse( ) # Multiindex set and combined dataframe returned - return reduce(DataFrame.combine_first, data_frames) + data = reduce(DataFrame.combine_first, data_frames) else: # For all other pulse resolved channels, macrobunch resolved @@ -298,13 +298,16 @@ def create_dataframe_per_pulse( # Creates the index_per_pulse for the given channel self.create_multi_index_per_pulse(train_id, np_array) - return ( + data = ( Series((np_array[i] for i in train_id.index), name=channel) .explode() .to_frame() .set_index(self.index_per_pulse) ) + return data + + # pylint: disable=R0201 def create_dataframe_per_train( self, np_array, @@ -335,7 +338,7 @@ def create_dataframe_per_channel( # If np_array is size zero, fill with NaNs if np_array.size == 0: np_array = np.full_like(train_id, np.nan, dtype=np.double) - return Series( + data = Series( (np_array[i] for i in train_id.index), name=channel, index=train_id, @@ -347,7 +350,7 @@ def create_dataframe_per_channel( if self.index_per_electron is None: self.create_multi_index_per_electron(h5_file) - return self.create_dataframe_per_electron( + data = self.create_dataframe_per_electron( np_array, train_id, channel, @@ -355,7 +358,7 @@ def create_dataframe_per_channel( # Pulse resolved data is treated here elif channel_dict["format"] == "per_pulse": - return self.create_dataframe_per_pulse( + data = self.create_dataframe_per_pulse( np_array, train_id, channel, @@ -364,7 +367,7 @@ def create_dataframe_per_channel( # Train resolved data is treated here elif channel_dict["format"] == "per_train": - return self.create_dataframe_per_train(np_array, train_id, channel) + data = self.create_dataframe_per_train(np_array, train_id, channel) else: raise ValueError( @@ -373,6 +376,8 @@ def create_dataframe_per_channel( per_pulse, per_electron and per_train", ) + return data + def concatenate_channels( self, h5_file: h5py.File, @@ -431,7 +436,9 @@ def h5_to_parquet(self, h5_path: Path, parquet_path: Path) -> None: ) self.parquet_names.remove(parquet_path) - def fill_na(self, dataframes: List) -> dd.DataFrame: + def fill_na( + self, dataframes: List, + ) -> dd.DataFrame: # pylint: disable=no-self-use """Routine to fill the NaN values with intrafile forward filling.""" channels: List[str] = self.channels_per_pulse + self.channels_per_train for i, _ in enumerate(dataframes): @@ -468,6 +475,7 @@ def fill_na(self, dataframes: List) -> dd.DataFrame: return dd.concat(dataframes) + # pylint: disable=R0201 def parse_metadata( self, files: Sequence[str], # pylint: disable=unused-argument @@ -551,8 +559,8 @@ def read_dataframe( "Conversion failed for the following files: \n" + "\n".join(self.failed_files_error), ) - else: - print("All files converted successfully!") + + print("All files converted successfully!") if len(self.parquet_names) == 0: raise ValueError( diff --git a/tests/loader/test_loaders.py b/tests/loader/test_loaders.py index 8782a077..bbb30801 100644 --- a/tests/loader/test_loaders.py +++ b/tests/loader/test_loaders.py @@ -39,7 +39,9 @@ def get_all_loaders() -> List[ParameterSet]: """Scans through the loader list and returns them for pytest parametrization""" loaders = [] - for loader in [get_loader(x) for x in get_names_of_all_loaders()]: + for loader in [ + get_loader(x) for x in get_names_of_all_loaders() if x != "flash" + ]: loaders.append(pytest.param(loader)) return loaders From 285d878413d248334225485d0e49b5f41189598b Mon Sep 17 00:00:00 2001 From: rettigl Date: Fri, 5 May 2023 11:42:22 +0200 Subject: [PATCH 11/36] fix linting issues --- sed/loader/flash/loader.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index 2fa8b442..5fe98508 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -271,7 +271,7 @@ def create_dataframe_per_pulse( train_id, channel, channel_dict, - ) -> DataFrame: # pylint: disable=no-self-use + ) -> DataFrame: """Returns a pandas DataFrame for a given channel name of type [per pulse]""" # Special case for auxillary channels which checks the channel # dictionary for correct slices and creates a multicolumn @@ -307,7 +307,6 @@ def create_dataframe_per_pulse( return data - # pylint: disable=R0201 def create_dataframe_per_train( self, np_array, @@ -437,8 +436,9 @@ def h5_to_parquet(self, h5_path: Path, parquet_path: Path) -> None: self.parquet_names.remove(parquet_path) def fill_na( - self, dataframes: List, - ) -> dd.DataFrame: # pylint: disable=no-self-use + self, + dataframes: List, + ) -> dd.DataFrame: """Routine to fill the NaN values with intrafile forward filling.""" channels: List[str] = self.channels_per_pulse + self.channels_per_train for i, _ in enumerate(dataframes): @@ -475,7 +475,6 @@ def fill_na( return dd.concat(dataframes) - # pylint: disable=R0201 def parse_metadata( self, files: Sequence[str], # pylint: disable=unused-argument From 67d1147f2976f12eb5b3ad50eeafea9a1ee6866f Mon Sep 17 00:00:00 2001 From: rettigl Date: Fri, 5 May 2023 14:55:47 +0200 Subject: [PATCH 12/36] add config for loader tests --- sed/loader/generic/loader.py | 2 +- .../loader/flash/config.yaml} | 4 +-- tests/data/loader/generic/config.yaml | 1 + tests/data/loader/mpes/config.yaml | 1 + tests/loader/test_loaders.py | 26 +++++++++++++++++-- 5 files changed, 29 insertions(+), 5 deletions(-) rename tests/{loader/flash/test_config.yaml => data/loader/flash/config.yaml} (91%) create mode 100644 tests/data/loader/generic/config.yaml create mode 100644 tests/data/loader/mpes/config.yaml diff --git a/sed/loader/generic/loader.py b/sed/loader/generic/loader.py index 548aedf9..94103b85 100644 --- a/sed/loader/generic/loader.py +++ b/sed/loader/generic/loader.py @@ -21,7 +21,7 @@ class GenericLoader(BaseLoader): meta_handler (MetaHandler, optional): MetaHandler object. Defaults to None. """ - __name__ = "dask" + __name__ = "generic" supported_file_types = ["parquet", "csv", "json"] diff --git a/tests/loader/flash/test_config.yaml b/tests/data/loader/flash/config.yaml similarity index 91% rename from tests/loader/flash/test_config.yaml rename to tests/data/loader/flash/config.yaml index 6f407ed7..95e324e0 100644 --- a/tests/loader/flash/test_config.yaml +++ b/tests/data/loader/flash/config.yaml @@ -3,8 +3,8 @@ core: dataframe: paths: - data_raw_dir: raw/hdf/express-0/fl1user3 - data_parquet_dir: parquet + data_raw_dir: ../data/loader/flash/ + data_parquet_dir: ../data/loader/flash/parquet ubid_offset: 5 daq: fl1user3 channels: diff --git a/tests/data/loader/generic/config.yaml b/tests/data/loader/generic/config.yaml new file mode 100644 index 00000000..e901b4d3 --- /dev/null +++ b/tests/data/loader/generic/config.yaml @@ -0,0 +1 @@ +test: diff --git a/tests/data/loader/mpes/config.yaml b/tests/data/loader/mpes/config.yaml new file mode 100644 index 00000000..e901b4d3 --- /dev/null +++ b/tests/data/loader/mpes/config.yaml @@ -0,0 +1 @@ +test: diff --git a/tests/loader/test_loaders.py b/tests/loader/test_loaders.py index bbb30801..1d86585a 100644 --- a/tests/loader/test_loaders.py +++ b/tests/loader/test_loaders.py @@ -7,6 +7,7 @@ import pytest from _pytest.mark.structures import ParameterSet +from sed.config import parse_config from sed.loader.base.loader import BaseLoader from sed.loader.loader_interface import get_loader from sed.loader.loader_interface import get_names_of_all_loaders @@ -29,7 +30,17 @@ def get_loader_name_from_loader_object(loader: BaseLoader) -> str: str: extracted name. """ for loader_name in get_names_of_all_loaders(): - gotten_loader = get_loader(loader_name) + gotten_loader = get_loader( + loader_name, + config=parse_config( + os.path.join( + test_data_dir, + "loader", + loader_name, + "config.yaml", + ), + ), + ) if loader.__name__ is gotten_loader.__name__: return loader_name return "" @@ -40,7 +51,18 @@ def get_all_loaders() -> List[ParameterSet]: loaders = [] for loader in [ - get_loader(x) for x in get_names_of_all_loaders() if x != "flash" + get_loader( + loader_name, + config=parse_config( + os.path.join( + test_data_dir, + "loader", + loader_name, + "config.yaml", + ), + ), + ) + for loader_name in get_names_of_all_loaders() ]: loaders.append(pytest.param(loader)) From 7c8ce1f426d9cf13225a9f5dd7016cd47683d3a5 Mon Sep 17 00:00:00 2001 From: rettigl Date: Fri, 5 May 2023 15:28:38 +0200 Subject: [PATCH 13/36] fix paths to work with github actions --- tests/data/loader/flash/config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/loader/flash/config.yaml b/tests/data/loader/flash/config.yaml index 95e324e0..5070a840 100644 --- a/tests/data/loader/flash/config.yaml +++ b/tests/data/loader/flash/config.yaml @@ -3,8 +3,8 @@ core: dataframe: paths: - data_raw_dir: ../data/loader/flash/ - data_parquet_dir: ../data/loader/flash/parquet + data_raw_dir: "./tests/data/loader/flash/" + data_parquet_dir: "./tests/data/loader/flash/parquet" ubid_offset: 5 daq: fl1user3 channels: From 4532380a3ff43fab0c6a4e176ba6ee1d5d139a4a Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Mon, 29 May 2023 18:00:40 +0200 Subject: [PATCH 14/36] - fixed the recursive parse file error - using generic exception handling now - utils moved to flash module - attributes removed - moved initliaze paths to utils (new name) - added option for files and runs - metadata support (basic) - other instruments supported like wespe - paths like online-1 now supported --- sed/core/processor.py | 11 +- sed/loader/exception_handlers.py | 27 ---- sed/loader/flash/loader.py | 217 +++++++++++++++++-------------- sed/loader/flash/metadata.py | 83 ++++++++++++ sed/loader/utils.py | 67 ---------- 5 files changed, 215 insertions(+), 190 deletions(-) delete mode 100644 sed/loader/exception_handlers.py create mode 100644 sed/loader/flash/metadata.py diff --git a/sed/core/processor.py b/sed/core/processor.py index a7e3d8fe..1100757b 100644 --- a/sed/core/processor.py +++ b/sed/core/processor.py @@ -299,9 +299,18 @@ def load( ) self._dataframe = dataframe self._files = self.loader.files + elif kwds["runs"] is not None: + dataframe, metadata = self.loader.read_dataframe( + runs=kwds["runs"], + metadata=metadata, + collect_metadata=collect_metadata, + **kwds, + ) + self._dataframe = dataframe + self._files = self.loader.files else: raise ValueError( - "Either 'dataframe', 'files' or 'folder' needs to be privided!", + "Either 'dataframe', 'files' or 'folder' needs to be provided!", ) for key in metadata: diff --git a/sed/loader/exception_handlers.py b/sed/loader/exception_handlers.py deleted file mode 100644 index 05e204ab..00000000 --- a/sed/loader/exception_handlers.py +++ /dev/null @@ -1,27 +0,0 @@ -"Module for purpose of exception handling" - - -class NoFilesFoundError(Exception): - """Custom exception for when no files are found in the specified directory.""" - - def __init__(self, message): - self.message = message - super().__init__(self.message) - - -class H5ParsingError(Exception): - """Exception raised for errors related to parsing H5 files.""" - - def __init__( - self, - message="Error occurred while parsing H5 file.", - cause=None, - ): - self.message = message - self.cause = cause - super().__init__(self.message) - - def __str__(self): - if self.cause: - return f"{self.message} Caused by: {self.cause}" - return self.message diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index 5fe98508..b3b019e1 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -23,9 +23,10 @@ from pandas import Series from sed.loader.base.loader import BaseLoader -from sed.loader.exception_handlers import NoFilesFoundError -from sed.loader.utils import gather_flash_files -from sed.loader.utils import parse_h5_keys +from sed.loader.flash.metadata import get_metadata +from sed.loader.flash.utils import gather_flash_files +from sed.loader.flash.utils import initialize_paths +from sed.loader.flash.utils import parse_h5_keys class FlashLoader(BaseLoader): @@ -39,72 +40,19 @@ class FlashLoader(BaseLoader): supported_file_types = ["h5", "parquet"] - def __init__(self, config: dict, meta_handler) -> None: + def __init__(self, config: dict) -> None: - super().__init__(config=config, meta_handler=meta_handler) - self._config: dict = config.get("dataframe", {}) - self.config_parser() - # Set all channels, exluding pulseId as default - self.all_channels: dict = self._config.get("channels", {}) - self.index_per_electron: Union[MultiIndex, None] = None - self.index_per_pulse: Union[MultiIndex, None] = None + super().__init__(config=config) + self.index_per_electron: MultiIndex = None + self.index_per_pulse: MultiIndex = None self.parquet_names: List[Path] = [] self.failed_files_error: List[str] = [] - def config_parser(self): - """ - Parser for the config.yaml file. - """ - paths = self._config.get("paths") - - # Prases to locate the raw beamtime directory from config file - if paths: - if "data_raw_dir" in paths: - self.data_raw_dir = Path(paths["data_raw_dir"]) - if "data_parquet_dir" in paths: - self.data_parquet_dir = Path(paths["data_parquet_dir"]) - if not self.data_parquet_dir.exists(): - os.mkdir(self.data_parquet_dir) - - if not {"ubid_offset", "daq"}.issubset(self._config.keys()): - raise ValueError( - "One of the values from ubid_offset or daq is missing. \ - These are necessary.", - ) - - self.ubid_offset = self._config.get("ubid_offset", 0) - self.daq = self._config.get("daq", "") - - if not paths: - if not {"beamtime_id", "year"}.issubset(self._config.keys()): - raise ValueError( - "The beamtime_id and year or data_raw_dir is required.", - ) - - beamtime_id = self._config.get("beamtime_id") - year = self._config.get("year") - beamtime_dir = Path( - f"/asap3/flash/gpfs/pg2/{year}/data/{beamtime_id}/", - ) - - # Use os walk to reach the raw data directory - # the walk outputs a list of tuples, - # the last tuple contains the path to the raw data - self.data_raw_dir = list(os.walk(beamtime_dir.joinpath("raw/")))[ - -1 - ][0] - - parquet_path = "processed/parquet" - self.data_parquet_dir = beamtime_dir.joinpath(parquet_path) - - if not self.data_parquet_dir.exists(): - os.mkdir(self.data_parquet_dir) - @property def available_channels(self) -> List: """Returns the channel names that are available for use, excluding pulseId, defined by the json file""" - available_channels = list(self.all_channels.keys()) + available_channels = list(self._config["dataframe"]["channels"].keys()) available_channels.remove("pulseId") return available_channels @@ -114,9 +62,12 @@ def channels_per_pulse(self) -> List: including all auxillary channels""" channels_per_pulse = [] for key in self.available_channels: - if self.all_channels[key]["format"] == "per_pulse": + if ( + self._config["dataframe"]["channels"][key]["format"] + == "per_pulse" + ): if key == "dldAux": - for aux_key in self.all_channels[key][ + for aux_key in self._config["dataframe"]["channels"][key][ "dldAuxChannels" ].keys(): channels_per_pulse.append(aux_key) @@ -130,7 +81,8 @@ def channels_per_electron(self) -> List: return [ key for key in self.available_channels - if self.all_channels[key]["format"] == "per_electron" + if self._config["dataframe"]["channels"][key]["format"] + == "per_electron" ] @property @@ -139,7 +91,8 @@ def channels_per_train(self) -> List: return [ key for key in self.available_channels - if self.all_channels[key]["format"] == "per_train" + if self._config["dataframe"]["channels"][key]["format"] + == "per_train" ] def reset_multi_index(self) -> None: @@ -165,7 +118,7 @@ def create_multi_index_per_electron(self, h5_file: h5py.File) -> None: name="pulseId", index=train_id, ) - - self.ubid_offset + - self._config["dataframe"]["ubid_offset"] ) # Explode dataframe to get all microbunch vales per macrobunch, @@ -220,9 +173,13 @@ def create_numpy_array_per_channel( # Get the data from the necessary h5 file and channel group = cast( h5py.Group, - h5_file[self.all_channels[channel]["group_name"]], + h5_file[ + self._config["dataframe"]["channels"][channel]["group_name"] + ], ) - channel_dict = self.all_channels[channel] # channel parameters + channel_dict = self._config["dataframe"]["channels"][ + channel + ] # channel parameters train_id = Series(group["index"], name="trainId") # macrobunch # unpacks the timeStamp or value @@ -259,7 +216,10 @@ def create_dataframe_per_electron( .to_frame() .set_index(self.index_per_electron) .drop( - index=cast(List[int], np.arange(-self.ubid_offset, 0)), + index=cast( + List[int], + np.arange(-self._config["dataframe"]["ubid_offset"], 0), + ), level=1, errors="ignore", ) @@ -332,7 +292,9 @@ def create_dataframe_per_channel( h5_file, channel, ) # numpy Array created - channel_dict = self.all_channels[channel] # channel parameters + channel_dict = self._config["dataframe"]["channels"][ + channel + ] # channel parameters # If np_array is size zero, fill with NaNs if np_array.size == 0: @@ -386,11 +348,21 @@ def concatenate_channels( all_keys = parse_h5_keys(h5_file) # Parses all channels present # Check for if the provided group_name actually exists in the file - for channel in self.all_channels: + for channel in self._config["dataframe"]["channels"]: if channel == "timeStamp": - group_name = self.all_channels[channel]["group_name"] + "time" + group_name = ( + self._config["dataframe"]["channels"][channel][ + "group_name" + ] + + "time" + ) else: - group_name = self.all_channels[channel]["group_name"] + "value" + group_name = ( + self._config["dataframe"]["channels"][channel][ + "group_name" + ] + + "value" + ) if group_name not in all_keys: raise ValueError( @@ -501,28 +473,76 @@ def get_elapsed_time(self, fids=None, **kwds): def read_dataframe( self, - files: Sequence[str] = "", - folder: str = "", + files: Sequence[str] = None, + folder: str = None, ftype: str = "h5", + metadata: dict = None, + collect_metadata: bool = False, + runs: Sequence[int] = None, **kwds, ) -> Tuple[dd.DataFrame, dict]: - """Read express data from DAQ, generating a parquet in between.""" - # create a per_file directory - temp_parquet_dir = self.data_parquet_dir.joinpath("per_file") + """ + Read express data from the DAQ, generating a parquet in between. + + Args: + files (Sequence[str], optional): A list of specific file names to read. + Defaults to None. + folder (str, optional): The directory where the raw data files are located. + Defaults to None. + ftype (str, optional): The file extension type. Defaults to "h5". + metadata (dict, optional): Additional metadata. Defaults to None. + collect_metadata (bool, optional): Whether to collect metadata. + Defaults to False. + runs (Sequence[int], optional): A list of specific run numbers to read. + Defaults to None. + + Returns: + Tuple[dd.DataFrame, dict]: A tuple containing the concatenated DataFrame + and metadata. + + Raises: + ValueError: If neither 'runs' nor 'files'/'folder' is provided. + FileNotFoundError: If the conversion fails for some files or no + data is available. + """ + + # Check if a specific folder is provided + if folder: + parquet_path = "processed/parquet" + data_parquet_dir = folder.joinpath(parquet_path) + if not data_parquet_dir.exists(): + os.mkdir(data_parquet_dir) + + # If folder is not provided, initialize paths from the configuration + if not folder: + data_raw_dir, data_parquet_dir = initialize_paths( + self._config["dataframe"], + ) + folder = data_raw_dir + + # Create a per_file directory + temp_parquet_dir = data_parquet_dir.joinpath("per_file") os.makedirs(temp_parquet_dir, exist_ok=True) - folder = str(self.data_raw_dir) - # Prepare a list of names for the files to read and parquets to write - runs = files if isinstance(files, list) else [files] all_files = [] - for run in runs: - run_files = gather_flash_files( - cast(int, run), - self.daq, - folder, - extension=ftype, + if files: + all_files = [Path(folder + file) for file in files] + elif runs: + # Prepare a list of names for the runs to read and parquets to write + runs = runs if isinstance(runs, list) else [runs] + + for run in runs: + run_files = gather_flash_files( + run, + self._config["dataframe"]["daq"], + folder, + extension=ftype, + ) + all_files.extend(run_files) + else: + raise ValueError( + "At least one of 'runs' or 'files'/'folder' must be provided.", ) - all_files.extend(run_files) parquet_name = f"{temp_parquet_dir}/" self.parquet_names = [ @@ -531,7 +551,7 @@ def read_dataframe( missing_files: List[Path] = [] missing_parquet_names: List[Path] = [] - # only read and write files which were not read already + # Only read and write files which were not read already for i, parquet_file in enumerate(self.parquet_names): if not parquet_file.exists(): missing_files.append(all_files[i]) @@ -541,9 +561,9 @@ def read_dataframe( f"Reading files: {len(missing_files)} new files of {len(all_files)} total.", ) - self.reset_multi_index() # initializes the indices for h5_to_parquet + self.reset_multi_index() # Initializes the indices for h5_to_parquet - # run self.h5_to_parquet in parallel + # Run self.h5_to_parquet in parallel if len(missing_files) > 0: Parallel(n_jobs=len(missing_files), verbose=10)( delayed(self.h5_to_parquet)(h5_path, parquet_path) @@ -554,7 +574,7 @@ def read_dataframe( ) if self.failed_files_error: - raise NoFilesFoundError( + raise FileNotFoundError( "Conversion failed for the following files: \n" + "\n".join(self.failed_files_error), ) @@ -580,9 +600,16 @@ def read_dataframe( ) dataframe = dataframe.dropna(subset=self.channels_per_electron) - return dataframe, self.parse_metadata( - [str(path) for path in all_files], - ) + if collect_metadata: + metadata = get_metadata( + beamtime_id=self._config["dataframe"]["beamtime_id"], + runs=runs, + metadata=self.metadata, + ) + else: + metadata = self.metadata + + return dataframe, metadata LOADER = FlashLoader diff --git a/sed/loader/flash/metadata.py b/sed/loader/flash/metadata.py new file mode 100644 index 00000000..97b8b1c0 --- /dev/null +++ b/sed/loader/flash/metadata.py @@ -0,0 +1,83 @@ +import json +import os +from pathlib import Path + +import requests + +# Set the headers for the HTTP requests +headers = {"Content-Type": "application/json", "Accept": "application/json"} + +# Load user details from a JSON file +file_path = Path("/home/sohailmu/sed/sed/loader/flash/user.json") +if os.path.isfile(file_path): + print("Scicat metadata can be read.") + user_details = json.load(open(file_path)) + # Extract necessary information from user details + scicat_url = user_details["scicat_url"] + username = user_details["username"] + pw = user_details["pw"] +else: + print("Can not fetch metadata since user.json is undefined") + scicat_url = "" + username = "" + pw = "" + + +# Function to retrieve metadata for a given beamtime ID and list of runs +def get_metadata(beamtime_id, runs, metadata): + # If metadata is not provided, initialize it as an empty dictionary + if metadata is None: + metadata = {} + + # Iterate over the list of runs + for run in runs: + pid = f"{beamtime_id}/{run}" + # Retrieve metadata for each run and update the overall metadata dictionary + metadata_run = get_metadata_per_run(pid) + metadata.update(metadata_run) # TODO: Not correct for multiple runs + + return metadata + + +# Function to retrieve metadata for a specific run based on the PID +def get_metadata_per_run(pid: str): + # Create the dataset URL using the PID + dataset_response = requests.get(_create_dataset_url_by_PID(pid)) + + # If the dataset request is successful, return the retrieved metadata + # as a JSON object + if dataset_response.ok: + return dataset_response.json() + else: + # If the request fails, raise an exception with the error message + raise Exception(f"{dataset_response.text}") + + +# Helper function to create the dataset URL based on the PID +def _create_dataset_url_by_PID(pid: str) -> str: + npid = ("/" + pid).replace( + "/", + "%2F", + ) # Replace slashes in the PID with URL-encoded slashes + dataset_url_by_pid = ( + f"{scicat_url}/RawDatasets/{npid}?access_token={_get_token()}" + ) + return dataset_url_by_pid + + +# Helper function to retrieve the access token for authentication +def _get_token() -> str: + token_url = f"{scicat_url}/Users/login" + # Send a POST request to the token URL with the username and password + token_response = requests.post( + token_url, + headers=headers, + json={"username": username, "password": pw}, + ) + + # If the token request is successful, return the access token from the response + if token_response.ok: + return token_response.json()["id"] + else: + # If the request fails, raise an exception with the error message + raise Exception(f"{token_response.text}") diff --git a/sed/loader/utils.py b/sed/loader/utils.py index 312f80eb..89f243b6 100644 --- a/sed/loader/utils.py +++ b/sed/loader/utils.py @@ -1,15 +1,11 @@ """Utilities for loaders """ from glob import glob -from pathlib import Path from typing import cast from typing import List from natsort import natsorted -from sed.loader.exception_handlers import H5ParsingError -from sed.loader.exception_handlers import NoFilesFoundError - def gather_files( folder: str, @@ -36,19 +32,6 @@ def gather_files( Returns: List[str]: List of collected file names. """ - Collects and sorts files with specified extension from a given folder. - - Parameters: - folder: str - The folder to search - extension: str | r'/*.h5' - File extension used for glob.glob(). - f_start, f_end, f_step: int, int, int | None, None, 1 - Starting, ending file id and the step. Used to construct a file selector. - file_sorting: bool | True - Option to sort the files by their names. - """ - try: files = glob(folder + "/*." + extension) @@ -63,53 +46,3 @@ def gather_files( raise return files - - -def gather_flash_files( - run_number: int, - daq: str, - raw_data_dir: str, - extension: str = "h5", -) -> List[Path]: - """Returns all filenames of given run located in directory - for the given daq.""" - stream_name_prefixes = { - "pbd": "GMD_DATA_gmd_data", - "pbd2": "FL2PhotDiag_pbd2_gmd_data", - "fl1user1": "FLASH1_USER1_stream_2", - "fl1user2": "FLASH1_USER2_stream_2", - "fl1user3": "FLASH1_USER3_stream_2", - "fl2user1": "FLASH2_USER1_stream_2", - "fl2user2": "FLASH2_USER2_stream_2", - } - - files = sorted( - Path(raw_data_dir).glob( - f"{stream_name_prefixes[daq]}_run{run_number}_*." + extension, - ), - key=lambda filename: str(filename).rsplit("_", maxsplit=1)[-1], - ) - if not files: - raise NoFilesFoundError( - f"No files found for run {run_number} in directory {raw_data_dir}", - ) - return files - - -def parse_h5_keys(h5_file, prefix=""): - """Helper method which parses the channels present in the h5 file""" - file_channel_list = [] - - for key in h5_file.keys(): - try: - [ - file_channel_list.append(s) - for s in parse_h5_keys(h5_file[key], prefix=prefix + "/" + key) - ] - except Exception as exception: - raise H5ParsingError( - prefix + "/" + key, - cause=exception, - ) from exception - - return file_channel_list From 2e805c2d02cd40a104ee17138b2ef524383dae39 Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Mon, 29 May 2023 18:17:04 +0200 Subject: [PATCH 15/36] - add missing utils file - fix kwds in processor --- sed/core/processor.py | 2 +- sed/loader/flash/utils.py | 165 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 166 insertions(+), 1 deletion(-) create mode 100644 sed/loader/flash/utils.py diff --git a/sed/core/processor.py b/sed/core/processor.py index 1100757b..72df3823 100644 --- a/sed/core/processor.py +++ b/sed/core/processor.py @@ -304,7 +304,7 @@ def load( runs=kwds["runs"], metadata=metadata, collect_metadata=collect_metadata, - **kwds, + **{k: v for k, v in kwds.items() if k != "runs"}, ) self._dataframe = dataframe self._files = self.loader.files diff --git a/sed/loader/flash/utils.py b/sed/loader/flash/utils.py new file mode 100644 index 00000000..d3a96ae8 --- /dev/null +++ b/sed/loader/flash/utils.py @@ -0,0 +1,165 @@ +"""Utilities for flash loader""" +import os +from pathlib import Path +from typing import List + +from h5py import Group + + +def initialize_paths(df_config): + """ + Initializes the paths + """ + # Prases to locate the raw beamtime directory from config file + if "paths" in df_config: + paths = df_config["paths"] + if "data_raw_dir" in paths: + data_raw_dir = Path(paths["data_raw_dir"]) + if "data_parquet_dir" in paths: + data_parquet_dir = Path(paths["data_parquet_dir"]) + if not data_parquet_dir.exists(): + os.mkdir(data_parquet_dir) + + if "paths" not in df_config: + if not {"ubid_offset", "daq"}.issubset(df_config.keys()): + raise ValueError( + "One of the values from ubid_offset or daq is missing. \ + These are necessary.", + ) + + if not {"beamtime_id", "year"}.issubset(df_config.keys()): + raise ValueError( + "The beamtime_id and year or data_raw_dir is required.", + ) + + beamtime_id = df_config["beamtime_id"] + year = df_config["year"] + beamtime_dir = Path( + f"/asap3/flash/gpfs/pg2/{year}/data/{beamtime_id}/", + ) + + if {"instrument"}.issubset(df_config.keys()): + instrument = df_config["instrument"] + if instrument == "wespe": + beamtime_dir = Path( + f"/asap3/fs-flash-o/gpfs/{instrument}/{year}/data/{beamtime_id}/", + ) + + daq = df_config["daq"] + + # Use os walk to reach the raw data directory + data_raw_dir = [] + for root, dirs, files in os.walk(beamtime_dir.joinpath("raw/")): + for dir_name in dirs: + if dir_name.startswith("express-") or dir_name.startswith( + "online-", + ): + data_raw_dir.append(Path(root, dir_name, daq)) + elif dir_name == daq.upper(): + data_raw_dir.append(Path(root, dir_name)) + + if not data_raw_dir: + raise FileNotFoundError("Raw data directories not found.") + + parquet_path = "processed/parquet" + data_parquet_dir = beamtime_dir.joinpath(parquet_path) + + if not data_parquet_dir.exists(): + os.mkdir(data_parquet_dir) + + return data_raw_dir, data_parquet_dir + + +def gather_flash_files( + run_number: int, + daq: str, + raw_data_dirs: List[str], + extension: str = "h5", +) -> List[Path]: + """Returns a list of filenames for a given run located in the specified directory + for the specified data acquisition (daq). + + Args: + run_number (int): The number of the run. + daq (str): The data acquisition identifier. + raw_data_dir (str): The directory where the raw data is located. + extension (str, optional): The file extension. Defaults to "h5". + + Returns: + List[Path]: A list of Path objects representing the collected file names. + + Raises: + FileNotFoundError: If no files are found for the given run in the directory. + """ + # Define the stream name prefixes based on the data acquisition identifier + stream_name_prefixes = { + "pbd": "GMD_DATA_gmd_data", + "pbd2": "FL2PhotDiag_pbd2_gmd_data", + "fl1user1": "FLASH1_USER1_stream_2", + "fl1user2": "FLASH1_USER2_stream_2", + "fl1user3": "FLASH1_USER3_stream_2", + "fl2user1": "FLASH2_USER1_stream_2", + "fl2user2": "FLASH2_USER2_stream_2", + } + + # Generate the file patterns to search for in the directory + file_pattern = ( + f"{stream_name_prefixes[daq]}_run{run_number}_*." + extension + ) + + files = [] + raw_data_dirs = ( + raw_data_dirs if isinstance(raw_data_dirs, list) else [raw_data_dirs] + ) + # search through all directories + for raw_data_dir in raw_data_dirs: + # Use pathlib to search for matching files in each directory + files.extend( + sorted( + Path(raw_data_dir).glob(file_pattern), + key=lambda filename: str(filename).rsplit("_", maxsplit=1)[-1], + ), + ) + + # Check if any files are found + if not files: + raise FileNotFoundError( + f"No files found for run {run_number} in directory {raw_data_dir}", + ) + + # Return the list of found files + return files + + +def parse_h5_keys(h5_file, prefix=""): + """Helper method which parses the channels present in the h5 file""" + + # Initialize an empty list to store the channels + file_channel_list = [] + + # Iterate over the keys in the H5 file + for key in h5_file.keys(): + try: + # Check if the object corresponding to the key is a group + if isinstance(h5_file[key], Group): + # If it's a group, recursively call the function on the group object + # and append the returned channels to the file_channel_list + [ + file_channel_list.append(s) + for s in parse_h5_keys( + h5_file[key], + prefix=prefix + "/" + key, + ) + ] + else: + # If it's not a group (i.e., it's a dataset), append the key + # to the file_channel_list + file_channel_list.append(prefix + "/" + key) + except Exception as exception: + # If an exception occurs, raise a new exception with an error message + raise Exception( + f"Error parsing key: {prefix}/{key}", + ) from exception + + # Return the list of channels + return file_channel_list From 72728a1ffea4080f8107482ebb2536603c1f7304 Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Thu, 1 Jun 2023 17:19:27 +0200 Subject: [PATCH 16/36] parse_h5_keys moved to loader utils --- sed/loader/flash/loader.py | 2 +- sed/loader/flash/utils.py | 36 ----------------------------- sed/loader/utils.py | 47 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 37 deletions(-) diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index b3b019e1..6844c8bc 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -26,7 +26,7 @@ from sed.loader.flash.metadata import get_metadata from sed.loader.flash.utils import gather_flash_files from sed.loader.flash.utils import initialize_paths -from sed.loader.flash.utils import parse_h5_keys +from sed.loader.utils import parse_h5_keys class FlashLoader(BaseLoader): diff --git a/sed/loader/flash/utils.py b/sed/loader/flash/utils.py index d3a96ae8..6b3ea58b 100644 --- a/sed/loader/flash/utils.py +++ b/sed/loader/flash/utils.py @@ -3,8 +3,6 @@ from pathlib import Path from typing import List -from h5py import Group - def initialize_paths(df_config): """ @@ -129,37 +127,3 @@ def gather_flash_files( # Return the list of found files return files - - -def parse_h5_keys(h5_file, prefix=""): - """Helper method which parses the channels present in the h5 file""" - - # Initialize an empty list to store the channels - file_channel_list = [] - - # Iterate over the keys in the H5 file - for key in h5_file.keys(): - try: - # Check if the object corresponding to the key is a group - if isinstance(h5_file[key], Group): - # If it's a group, recursively call the function on the group object - # and append the returned channels to the file_channel_list - [ - file_channel_list.append(s) - for s in parse_h5_keys( - h5_file[key], - prefix=prefix + "/" + key, - ) - ] - else: - # If it's not a group (i.e., it's a dataset), append the key - # to the file_channel_list - file_channel_list.append(prefix + "/" + key) - except Exception as exception: - # If an exception occurs, raise a new exception with an error message - raise Exception( - f"Error parsing key: {prefix}/{key}", - ) from exception - - # Return the list of channels - return file_channel_list diff --git a/sed/loader/utils.py b/sed/loader/utils.py index 89f243b6..f817d8e8 100644 --- a/sed/loader/utils.py +++ b/sed/loader/utils.py @@ -4,6 +4,8 @@ from typing import cast from typing import List +from h5py import File +from h5py import Group from natsort import natsorted @@ -46,3 +48,48 @@ def gather_files( raise return files + + +def parse_h5_keys(h5_file: File, prefix: str = "") -> List[str]: + """Helper method which parses the channels present in the h5 file + Args: + h5_file (h5py.File): The H5 file object. + prefix (str, optional): The prefix for the channel names. + Defaults to an empty string. + + Returns: + List[str]: A list of channel names in the H5 file. + + Raises: + Exception: If an error occurs while parsing the keys. + """ + + # Initialize an empty list to store the channels + file_channel_list = [] + + # Iterate over the keys in the H5 file + for key in h5_file.keys(): + try: + # Check if the object corresponding to the key is a group + if isinstance(h5_file[key], Group): + # If it's a group, recursively call the function on the group object + # and append the returned channels to the file_channel_list + [ + file_channel_list.append(s) + for s in parse_h5_keys( + h5_file[key], + prefix=prefix + "/" + key, + ) + ] + else: + # If it's not a group (i.e., it's a dataset), append the key + # to the file_channel_list + file_channel_list.append(prefix + "/" + key) + except Exception as exception: + # If an exception occurs, raise a new exception with an error message + raise Exception( + f"Error parsing key: {prefix}/{key}", + ) from exception + + # Return the list of channels + return file_channel_list From 40696b70db8ae95f7a7d82fc76bac7f73fff7aa8 Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Thu, 1 Jun 2023 17:20:10 +0200 Subject: [PATCH 17/36] test fix --- sed/loader/flash/loader.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index 6844c8bc..15188b70 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -509,7 +509,7 @@ def read_dataframe( # Check if a specific folder is provided if folder: parquet_path = "processed/parquet" - data_parquet_dir = folder.joinpath(parquet_path) + data_parquet_dir = Path(folder).joinpath(parquet_path) if not data_parquet_dir.exists(): os.mkdir(data_parquet_dir) From 35a60f2b39a4b863558ba003182b1ac79888b665 Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Thu, 1 Jun 2023 18:28:03 +0200 Subject: [PATCH 18/36] Metadata class and necessary user details now from config file --- sed/loader/flash/loader.py | 5 +- sed/loader/flash/metadata.py | 213 ++++++++++++++++++++++------------- 2 files changed, 136 insertions(+), 82 deletions(-) diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index 15188b70..8dea78b7 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -23,7 +23,7 @@ from pandas import Series from sed.loader.base.loader import BaseLoader -from sed.loader.flash.metadata import get_metadata +from sed.loader.flash.metadata import MetadataRetriever from sed.loader.flash.utils import gather_flash_files from sed.loader.flash.utils import initialize_paths from sed.loader.utils import parse_h5_keys @@ -601,7 +601,8 @@ def read_dataframe( dataframe = dataframe.dropna(subset=self.channels_per_electron) if collect_metadata: - metadata = get_metadata( + metadata_retriever = MetadataRetriever(self._config["metadata"]) + metadata = metadata_retriever.get_metadata( beamtime_id=self._config["dataframe"]["beamtime_id"], runs=runs, metadata=self.metadata, diff --git a/sed/loader/flash/metadata.py b/sed/loader/flash/metadata.py index 97b8b1c0..d4847055 100644 --- a/sed/loader/flash/metadata.py +++ b/sed/loader/flash/metadata.py @@ -1,83 +1,136 @@ -import json -import os -from pathlib import Path +""" +The module provides a MetadataRetriever class for retrieving metadata +from a Scicatinstance based on beamtime and run IDs. +""" +from typing import Dict +from typing import Optional import requests -# Set the headers for the HTTP requests -headers = {"Content-Type": "application/json", "Accept": "application/json"} - -# Load user details from a JSON file -file_path = Path("/home/sohailmu/sed/sed/loader/flash/user.json") -if os.path.isfile(file_path): - print("Scicat metadata can be read.") - user_details = json.load(open(file_path)) - # Extract necessary information from user details - scicat_url = user_details["scicat_url"] - username = user_details["username"] - pw = user_details["pw"] -else: - print("Can not fetch metadata since user.json is undefined") - scicat_url = "" - username = "" - pw = "" - - -# Function to retrieve metadata for a given beamtime ID and list of runs -def get_metadata(beamtime_id, runs, metadata): - # If metadata is not provided, initialize it as an empty dictionary - if metadata is None: - metadata = {} - - # Iterate over the list of runs - for run in runs: - pid = f"{beamtime_id}/{run}" - # Retrieve metadata for each run and update the overall metadata dictionary - metadata_run = get_metadata_per_run(pid) - metadata.update(metadata_run) # TODO: Not correct for multiple runs - - return metadata - - -# Function to retrieve metadata for a specific run based on the PID -def get_metadata_per_run(pid: str): - # Create the dataset URL using the PID - dataset_response = requests.get(_create_dataset_url_by_PID(pid)) - - # If the dataset request is successful, return the retrieved metadata - # as a JSON object - if dataset_response.ok: - return dataset_response.json() - else: - # If the request fails, raise an exception with the error message - raise Exception(f"{dataset_response.text}") - - -# Helper function to create the dataset URL based on the PID -def _create_dataset_url_by_PID(pid: str) -> str: - npid = ("/" + pid).replace( - "/", - "%2F", - ) # Replace slashes in the PID with URL-encoded slashes - dataset_url_by_pid = ( - f"{scicat_url}/RawDatasets/{npid}?access_token={_get_token()}" - ) - return dataset_url_by_pid - - -# Helper function to retrieve the access token for authentication -def _get_token() -> str: - token_url = f"{scicat_url}/Users/login" - # Send a POST request to the token URL with the username and password - token_response = requests.post( - token_url, - headers=headers, - json={"username": username, "password": pw}, - ) - - # If the token request is successful, return the access token from the response - if token_response.ok: - return token_response.json()["id"] - else: - # If the request fails, raise an exception with the error message - raise Exception(f"{token_response.text}") + +class MetadataRetriever: + """ + A class for retrieving metadata from a Scicat instance based + on beamtime and run IDs. + """ + + def __init__(self, metadata_config: Dict) -> None: + """ + Initializes the MetadataRetriever class. + + Args: + metadata_config (dict): Takes a dict containing + at least scicat_url, username and password + """ + self.scicat_url = metadata_config["scicat_url"] + self.username = metadata_config["username"] + self.password = metadata_config["password"] + self.headers = { + "Content-Type": "application/json", + "Accept": "application/json", + } + + def get_metadata( + self, + beamtime_id: str, + runs: list, + metadata: Optional[Dict] = None, + ) -> Dict: + """ + Retrieves metadata for a given beamtime ID and list of runs. + + Args: + beamtime_id (str): The ID of the beamtime. + runs (list): A list of run IDs. + metadata (Dict, optional): The existing metadata dictionary. + Defaults to None. + + Returns: + Dict: The updated metadata dictionary. + + Raises: + Exception: If the request to retrieve metadata fails. + """ + # If metadata is not provided, initialize it as an empty dictionary + if metadata is None: + metadata = {} + + # Iterate over the list of runs + for run in runs: + pid = f"{beamtime_id}/{run}" + # Retrieve metadata for each run and update the overall metadata dictionary + metadata_run = self._get_metadata_per_run(pid) + metadata.update( + metadata_run, + ) # TODO: Not correct for multiple runs + + return metadata + + def _get_metadata_per_run(self, pid: str) -> Dict: + """ + Retrieves metadata for a specific run based on the PID. + + Args: + pid (str): The PID of the run. + + Returns: + Dict: The retrieved metadata. + + Raises: + Exception: If the request to retrieve metadata fails. + """ + # Create the dataset URL using the PID + dataset_response = requests.get(self._create_dataset_url_by_PID(pid)) + + # If the dataset request is successful, return the retrieved metadata + # as a JSON object + if dataset_response.ok: + return dataset_response.json() + else: + # If the request fails, raise an exception with the error message + raise Exception(f"{dataset_response.text}") + + def _create_dataset_url_by_PID(self, pid: str) -> str: + """ + Creates the dataset URL based on the PID. + + Args: + pid (str): The PID of the run. + + Returns: + str: The dataset URL. + + Raises: + Exception: If the token request fails. + """ + npid = ("/" + pid).replace( + "/", + "%2F", + ) # Replace slashes in the PID with URL-encoded slashes + url = f"{self.scicat_url}/RawDatasets/{npid}?access_token={self._get_token()}" + return url + + def _get_token(self) -> str: + """ + Retrieves the access token for authentication. + + Returns: + str: The access token. + + Raises: + Exception: If the token request fails. + """ + token_url = f"{self.scicat_url}/Users/login" + # Send a POST request to the token URL with the username and password + token_response = requests.post( + token_url, + headers=self.headers, + json={"username": self.username, "password": self.password}, + ) + + # If the token request is successful, return the access token from the response + if token_response.ok: + return token_response.json()["id"] + else: + # If the request fails, raise an exception with the error message + raise Exception(f"{token_response.text}") From c9a8d49fe6fdaeb1b7198b3686838e9a82d49fb0 Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Sat, 3 Jun 2023 16:41:29 +0200 Subject: [PATCH 19/36] docstrings and seperating paths in json --- sed/loader/flash/identifiers.json | 16 ++++++++ sed/loader/flash/utils.py | 61 ++++++++++++++++--------------- 2 files changed, 47 insertions(+), 30 deletions(-) create mode 100644 sed/loader/flash/identifiers.json diff --git a/sed/loader/flash/identifiers.json b/sed/loader/flash/identifiers.json new file mode 100644 index 00000000..053a9e06 --- /dev/null +++ b/sed/loader/flash/identifiers.json @@ -0,0 +1,16 @@ +{ + "stream_name_prefixes": { + "pbd": "GMD_DATA_gmd_data", + "pbd2": "FL2PhotDiag_pbd2_gmd_data", + "fl1user1": "FLASH1_USER1_stream_2", + "fl1user2": "FLASH1_USER2_stream_2", + "fl1user3": "FLASH1_USER3_stream_2", + "fl2user1": "FLASH2_USER1_stream_2", + "fl2user2": "FLASH2_USER2_stream_2" + }, + "beamtime_dir": { + "pg2": "/asap3/flash/gpfs/pg2/", + "hextof": "/asap3/flash/gpfs/pg2/", + "wespe": "/asap3/fs-flash-o/gpfs/wespe/" + } +} diff --git a/sed/loader/flash/utils.py b/sed/loader/flash/utils.py index 6b3ea58b..77190f0a 100644 --- a/sed/loader/flash/utils.py +++ b/sed/loader/flash/utils.py @@ -1,14 +1,29 @@ """Utilities for flash loader""" +import json import os from pathlib import Path +from typing import Dict from typing import List +from typing import Sequence +from typing import Tuple -def initialize_paths(df_config): +def initialize_paths(df_config: Dict) -> Tuple[Path, Path]: """ - Initializes the paths + Initializes the paths based on the configuration. + + Args: + df_config (Dict): A dictionary containing the configuration. + + Returns: + Tuple[Path, Path]: A tuple containing the raw data directory path + and the parquet data directory path. + + Raises: + ValueError: If required values are missing from the configuration. + FileNotFoundError: If the raw data directories are not found. """ - # Prases to locate the raw beamtime directory from config file + # Parses to locate the raw beamtime directory from config file if "paths" in df_config: paths = df_config["paths"] if "data_raw_dir" in paths: @@ -18,7 +33,7 @@ def initialize_paths(df_config): if not data_parquet_dir.exists(): os.mkdir(data_parquet_dir) - if "paths" not in df_config: + else: if not {"ubid_offset", "daq"}.issubset(df_config.keys()): raise ValueError( "One of the values from ubid_offset or daq is missing. \ @@ -32,18 +47,13 @@ def initialize_paths(df_config): beamtime_id = df_config["beamtime_id"] year = df_config["year"] + daq = df_config["daq"] + + identifiers = json.load("identifiers.json") beamtime_dir = Path( - f"/asap3/flash/gpfs/pg2/{year}/data/{beamtime_id}/", + identifiers["beamtime_dir"][df_config["instrument"]], ) - - if {"instrument"}.issubset(df_config.keys()): - instrument = df_config["instrument"] - if instrument == "wespe": - beamtime_dir = Path( - f"/asap3/fs-flash-o/gpfs/{instrument}/{year}/data/{beamtime_id}/", - ) - - daq = df_config["daq"] + beamtime_dir.joinpath(f"{year}/data/{beamtime_id}/") # Use os walk to reach the raw data directory data_raw_dir = [] @@ -71,7 +81,7 @@ def initialize_paths(df_config): def gather_flash_files( run_number: int, daq: str, - raw_data_dirs: List[str], + raw_data_dirs: Sequence[Path], extension: str = "h5", ) -> List[Path]: """Returns a list of filenames for a given run located in the specified directory @@ -80,7 +90,7 @@ def gather_flash_files( Args: run_number (int): The number of the run. daq (str): The data acquisition identifier. - raw_data_dir (str): The directory where the raw data is located. + raw_data_dir (Sequence[Path]): The directory where the raw data is located. extension (str, optional): The file extension. Defaults to "h5". Returns: @@ -90,15 +100,8 @@ def gather_flash_files( FileNotFoundError: If no files are found for the given run in the directory. """ # Define the stream name prefixes based on the data acquisition identifier - stream_name_prefixes = { - "pbd": "GMD_DATA_gmd_data", - "pbd2": "FL2PhotDiag_pbd2_gmd_data", - "fl1user1": "FLASH1_USER1_stream_2", - "fl1user2": "FLASH1_USER2_stream_2", - "fl1user3": "FLASH1_USER3_stream_2", - "fl2user1": "FLASH2_USER1_stream_2", - "fl2user2": "FLASH2_USER2_stream_2", - } + identifiers = json.load("identifiers.json") + stream_name_prefixes = identifiers["stream_name_prefixes"] # Generate the file patterns to search for in the directory file_pattern = ( @@ -106,15 +109,13 @@ def gather_flash_files( ) files = [] - raw_data_dirs = ( - raw_data_dirs if isinstance(raw_data_dirs, list) else [raw_data_dirs] - ) + raw_data_dirs = list(raw_data_dirs) # search through all directories for raw_data_dir in raw_data_dirs: # Use pathlib to search for matching files in each directory files.extend( sorted( - Path(raw_data_dir).glob(file_pattern), + raw_data_dir.glob(file_pattern), key=lambda filename: str(filename).rsplit("_", maxsplit=1)[-1], ), ) @@ -122,7 +123,7 @@ def gather_flash_files( # Check if any files are found if not files: raise FileNotFoundError( - f"No files found for run {run_number} in directory {raw_data_dir}", + f"No files found for run {run_number} in directory {str(raw_data_dirs)}", ) # Return the list of found files From 172f7a298c8bd147f9a0575b6a292d7e325ee6c7 Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Mon, 5 Jun 2023 15:19:30 +0200 Subject: [PATCH 20/36] add runs as an identifier --- sed/core/processor.py | 30 +++++++++++++++++++--------- sed/loader/base/loader.py | 28 ++++++++++++++++---------- sed/loader/flash/loader.py | 41 +++++++++++--------------------------- sed/loader/flash/utils.py | 13 ++++++++---- 4 files changed, 59 insertions(+), 53 deletions(-) diff --git a/sed/core/processor.py b/sed/core/processor.py index 72df3823..7b64ef99 100644 --- a/sed/core/processor.py +++ b/sed/core/processor.py @@ -60,11 +60,12 @@ def __init__( dataframe: Union[pd.DataFrame, ddf.DataFrame] = None, files: List[str] = None, folder: str = None, + runs: Sequence[int] = None, collect_metadata: bool = False, **kwds, ): """Processor class of sed. Contains wrapper functions defining a work flow - for data correction, calibration and binning. + for data correction, calibration, and binning. Args: metadata (dict, optional): Dict of external Metadata. Defaults to None. @@ -76,6 +77,8 @@ def __init__( the config. Defaults to None. folder (str, optional): Folder containing files to pass to the loader defined in the config. Defaults to None. + runs (Sequence[int], optional): List of runs to pass to the loader defined + in the config. Defaults to None. collect_metadata (bool): Option to collect metadata from files. Defaults to False. **kwds: Keyword arguments passed to the reader. @@ -131,12 +134,18 @@ def __init__( self.use_copy_tool = False # Load data if provided: - if dataframe is not None or files is not None or folder is not None: + if ( + dataframe is not None + or files is not None + or folder is not None + or runs is not None + ): self.load( dataframe=dataframe, metadata=metadata, files=files, folder=folder, + runs=runs, collect_metadata=collect_metadata, **kwds, ) @@ -257,6 +266,7 @@ def load( metadata: dict = None, files: List[str] = None, folder: str = None, + runs: Sequence[int] = None, collect_metadata: bool = False, **kwds, ): @@ -269,10 +279,11 @@ def load( metadata (dict, optional): Dict of external Metadata. Defaults to None. files (List[str], optional): List of file paths to pass to the loader. Defaults to None. + runs (Sequence[int], optional): List of run identifiers to pass to the + loader. + Defaults to None. folder (str, optional): Folder path to pass to the loader. Defaults to None. - collect_metadata (bool): Option to collect metadata from files. - Defaults to False. Raises: ValueError: Raised if no valid input is provided. @@ -299,18 +310,19 @@ def load( ) self._dataframe = dataframe self._files = self.loader.files - elif kwds["runs"] is not None: + elif runs is not None: dataframe, metadata = self.loader.read_dataframe( - runs=kwds["runs"], + runs=cast(List[str], self.cpy(runs)), metadata=metadata, collect_metadata=collect_metadata, - **{k: v for k, v in kwds.items() if k != "runs"}, + **kwds, ) self._dataframe = dataframe - self._files = self.loader.files + self._runs = self.loader.runs else: raise ValueError( - "Either 'dataframe', 'files' or 'folder' needs to be provided!", + "Either 'dataframe', 'files', 'folder', or 'runs' needs to be\ + provided!", ) for key in metadata: diff --git a/sed/loader/base/loader.py b/sed/loader/base/loader.py index 7f6e842d..95edcaad 100644 --- a/sed/loader/base/loader.py +++ b/sed/loader/base/loader.py @@ -40,6 +40,7 @@ def __init__( self._config = config if config is not None else {} self.files: List[str] = [] + self.runs: List[str] = [] self.metadata: Dict[Any, Any] = {} @abstractmethod @@ -48,11 +49,12 @@ def read_dataframe( files: Sequence[str] = None, folder: str = None, ftype: str = None, + runs: Sequence[str] = None, metadata: dict = None, collect_metadata: bool = False, **kwds, ) -> Tuple[ddf.DataFrame, dict]: - """Reads data from given files or folder and returns a dask dataframe + """Reads data from given files, folder, or runs and returns a dask dataframe and corresponding metadata. Args: @@ -63,11 +65,12 @@ def read_dataframe( ftype (str, optional): File type to read ('parquet', 'json', 'csv', etc). If a folder path is given, all files with the specified extension are read into the dataframe in the reading order. Defaults to None. - metadata (dict, optional): Manual meta data dictionary. Auto-generated - meta data are added to it. Defaults to None. + runs (Sequence[str], optional): List of run identifiers. Defaults to None. + metadata (dict, optional): Manual metadata dictionary. Auto-generated + metadata will be added to it. Defaults to None. collect_metadata (bool): Option to collect metadata from files. Requires a valid config dict. Defaults to False. - **kwds: keyword arguments. Se describtion in respective loader. + **kwds: keyword arguments. See description in respective loader. Returns: Tuple[ddf.DataFrame, dict]: Dask dataframe and metadata read from @@ -86,19 +89,22 @@ def read_dataframe( **kwds, ) - elif files is None: + elif files is None and runs is None: raise ValueError( - "Either the folder or file path should be provided!", + "Either the folder, file paths, or runs should be provided!", ) - else: - files = [os.path.realpath(file) for file in files] - self.files = files + if runs is not None: + self.runs = runs + + if files is not None: + files = [os.path.realpath(file) for file in files] + self.files = files self.metadata = deepcopy(metadata) - if not files: - raise FileNotFoundError("No valid files found!") + if not files and not runs: + raise FileNotFoundError("No valid files or runs found!") return None, None diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index 8dea78b7..ceb95d7e 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -473,75 +473,58 @@ def get_elapsed_time(self, fids=None, **kwds): def read_dataframe( self, - files: Sequence[str] = None, - folder: str = None, + runs: Sequence[int] = None, ftype: str = "h5", metadata: dict = None, collect_metadata: bool = False, - runs: Sequence[int] = None, **kwds, ) -> Tuple[dd.DataFrame, dict]: """ Read express data from the DAQ, generating a parquet in between. Args: - files (Sequence[str], optional): A list of specific file names to read. - Defaults to None. - folder (str, optional): The directory where the raw data files are located. + runs (Sequence[int], optional): A list of specific run numbers to read. Defaults to None. ftype (str, optional): The file extension type. Defaults to "h5". metadata (dict, optional): Additional metadata. Defaults to None. collect_metadata (bool, optional): Whether to collect metadata. Defaults to False. - runs (Sequence[int], optional): A list of specific run numbers to read. - Defaults to None. + Returns: Tuple[dd.DataFrame, dict]: A tuple containing the concatenated DataFrame and metadata. Raises: - ValueError: If neither 'runs' nor 'files'/'folder' is provided. + ValueError: If neither 'runs' nor 'files'/'data_raw_dir' is provided. FileNotFoundError: If the conversion fails for some files or no data is available. """ - # Check if a specific folder is provided - if folder: - parquet_path = "processed/parquet" - data_parquet_dir = Path(folder).joinpath(parquet_path) - if not data_parquet_dir.exists(): - os.mkdir(data_parquet_dir) - - # If folder is not provided, initialize paths from the configuration - if not folder: - data_raw_dir, data_parquet_dir = initialize_paths( - self._config["dataframe"], - ) - folder = data_raw_dir + data_raw_dir, data_parquet_dir = initialize_paths( + self._config["dataframe"], + ) # Create a per_file directory temp_parquet_dir = data_parquet_dir.joinpath("per_file") os.makedirs(temp_parquet_dir, exist_ok=True) all_files = [] - if files: - all_files = [Path(folder + file) for file in files] - elif runs: - # Prepare a list of names for the runs to read and parquets to write - runs = runs if isinstance(runs, list) else [runs] + # Prepare a list of names for the runs to read and parquets to write + runs = runs if isinstance(runs, Sequence) else [runs] + if runs: for run in runs: run_files = gather_flash_files( run, self._config["dataframe"]["daq"], - folder, + data_raw_dir, extension=ftype, ) all_files.extend(run_files) else: raise ValueError( - "At least one of 'runs' or 'files'/'folder' must be provided.", + "run identifiers must be provided.", ) parquet_name = f"{temp_parquet_dir}/" diff --git a/sed/loader/flash/utils.py b/sed/loader/flash/utils.py index 77190f0a..8575759a 100644 --- a/sed/loader/flash/utils.py +++ b/sed/loader/flash/utils.py @@ -1,12 +1,19 @@ """Utilities for flash loader""" -import json import os +from importlib.util import find_spec from pathlib import Path from typing import Dict from typing import List from typing import Sequence from typing import Tuple +from sed.config.settings import load_config + +# load identifiers +package_dir = os.path.dirname(find_spec("sed").origin) +identifiers_path = f"{package_dir}/loader/flash/identifiers.json" +identifiers = load_config(identifiers_path) + def initialize_paths(df_config: Dict) -> Tuple[Path, Path]: """ @@ -49,11 +56,10 @@ def initialize_paths(df_config: Dict) -> Tuple[Path, Path]: year = df_config["year"] daq = df_config["daq"] - identifiers = json.load("identifiers.json") beamtime_dir = Path( identifiers["beamtime_dir"][df_config["instrument"]], ) - beamtime_dir.joinpath(f"{year}/data/{beamtime_id}/") + beamtime_dir = beamtime_dir.joinpath(f"{year}/data/{beamtime_id}/") # Use os walk to reach the raw data directory data_raw_dir = [] @@ -100,7 +106,6 @@ def gather_flash_files( FileNotFoundError: If no files are found for the given run in the directory. """ # Define the stream name prefixes based on the data acquisition identifier - identifiers = json.load("identifiers.json") stream_name_prefixes = identifiers["stream_name_prefixes"] # Generate the file patterns to search for in the directory From e3ec7953fb83696c5341f4a18bcd3247aff0a6b2 Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Mon, 5 Jun 2023 16:49:26 +0200 Subject: [PATCH 21/36] remove casts --- sed/loader/flash/loader.py | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index ceb95d7e..4be0dd94 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -7,7 +7,6 @@ from functools import reduce from itertools import compress from pathlib import Path -from typing import cast from typing import List from typing import Sequence from typing import Tuple @@ -171,12 +170,10 @@ def create_numpy_array_per_channel( ) -> Tuple[Series, np.ndarray]: """Returns a numpy Array for a given channel name for a given file""" # Get the data from the necessary h5 file and channel - group = cast( - h5py.Group, - h5_file[ - self._config["dataframe"]["channels"][channel]["group_name"] - ], - ) + group = h5_file[ + self._config["dataframe"]["channels"][channel]["group_name"] + ] + channel_dict = self._config["dataframe"]["channels"][ channel ] # channel parameters @@ -184,10 +181,9 @@ def create_numpy_array_per_channel( train_id = Series(group["index"], name="trainId") # macrobunch # unpacks the timeStamp or value if channel == "timeStamp": - np_array = cast(h5py.Dataset, group["time"])[()] + np_array = group["time"][()] else: - np_array = cast(h5py.Dataset, group["value"])[()] - np_array = cast(np.ndarray, np_array) + np_array = group["value"][()] # Uses predefined axis and slice from the json file # to choose correct dimension for necessary channel if "slice" in channel_dict: @@ -216,10 +212,7 @@ def create_dataframe_per_electron( .to_frame() .set_index(self.index_per_electron) .drop( - index=cast( - List[int], - np.arange(-self._config["dataframe"]["ubid_offset"], 0), - ), + index=np.arange(-self._config["dataframe"]["ubid_offset"], 0), level=1, errors="ignore", ) From cdb686fb4e4862372114acb3760ddda60b6108db Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Mon, 5 Jun 2023 18:15:56 +0200 Subject: [PATCH 22/36] updated docstrings --- sed/loader/flash/loader.py | 283 +++++++++++++++++++++++++++++-------- 1 file changed, 221 insertions(+), 62 deletions(-) diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index 4be0dd94..dc79bc43 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -100,8 +100,19 @@ def reset_multi_index(self) -> None: self.index_per_pulse = None def create_multi_index_per_electron(self, h5_file: h5py.File) -> None: - """Creates an index per electron using pulseId - for usage with the electron resolved pandas dataframe""" + """ + Creates an index per electron using pulseId for usage with the electron + resolved pandas DataFrame. + + Args: + h5_file (h5py.File): The HDF5 file object. + + Notes: + - This method relies on the 'pulseId' channel to determine + the macrobunch IDs. + - It creates a MultiIndex with trainId, pulseId, and electronId + as the index levels. + """ # Macrobunch IDs obtained from the pulseId channel [train_id, np_array] = self.create_numpy_array_per_channel( @@ -146,17 +157,31 @@ def create_multi_index_per_electron(self, h5_file: h5py.File) -> None: .astype(int) ) - # Create a pandas multiindex using the exploded datasets + # Create a pandas MultiIndex using the exploded datasets self.index_per_electron = MultiIndex.from_arrays( (microbunches.index, microbunches.values, electrons), names=["trainId", "pulseId", "electronId"], ) - def create_multi_index_per_pulse(self, train_id, np_array) -> None: - """Creates an index per pulse using a pulse resovled channel's - macrobunch ID, for usage with the pulse resolved pandas dataframe""" + def create_multi_index_per_pulse( + self, + train_id: Series, + np_array: np.ndarray, + ) -> None: + """ + Creates an index per pulse using a pulse resolved channel's macrobunch ID, + for usage with the pulse resolved pandas DataFrame. + + Args: + train_id (Series): The train ID Series. + np_array (np.ndarray): The numpy array containing the pulse resolved data. + + Notes: + - This method creates a MultiIndex with trainId and pulseId as the + index levels. + """ - # Create a pandas multiindex, useful to compare electron and + # Create a pandas MultiIndex, useful for comparing electron and # pulse resolved dataframes self.index_per_pulse = MultiIndex.from_product( (train_id, np.arange(0, np_array.shape[1])), @@ -167,8 +192,19 @@ def create_numpy_array_per_channel( self, h5_file: h5py.File, channel: str, - ) -> Tuple[Series, np.ndarray]: - """Returns a numpy Array for a given channel name for a given file""" + ) -> Tuple[Series, np.ndarray[float]]: + """ + Returns a numpy array for a given channel name for a given file. + + Args: + h5_file (h5py.File): The h5py file object. + channel (str): The name of the channel. + + Returns: + Tuple[Series, np.ndarray]: A tuple containing the train ID Series + and the numpy array for the channel's data. + + """ # Get the data from the necessary h5 file and channel group = h5_file[ self._config["dataframe"]["channels"][channel]["group_name"] @@ -179,12 +215,14 @@ def create_numpy_array_per_channel( ] # channel parameters train_id = Series(group["index"], name="trainId") # macrobunch + # unpacks the timeStamp or value if channel == "timeStamp": np_array = group["time"][()] else: np_array = group["value"][()] - # Uses predefined axis and slice from the json file + + # Use predefined axis and slice from the json file # to choose correct dimension for necessary channel if "slice" in channel_dict: np_array = np.take( @@ -196,15 +234,27 @@ def create_numpy_array_per_channel( def create_dataframe_per_electron( self, - np_array, - train_id, - channel, + np_array: np.ndarray[float], + train_id: Series, + channel: str, ) -> DataFrame: - """Returns a pandas DataFrame for a given channel name of type [per electron]""" - # The microbunch resolved data is exploded and - # converted to dataframe, afterwhich the MultiIndex is set - # The NaN values are dropped, alongside the - # pulseId = 0 (meaningless) + """ + Returns a pandas DataFrame for a given channel name of type [per electron]. + + Args: + np_array (np.ndarray): The numpy array containing the channel data. + train_id (Series): The train ID Series. + channel (str): The name of the channel. + + Returns: + DataFrame: The pandas DataFrame for the channel's data. + + Notes: + The microbunch resolved data is exploded and converted to a DataFrame. + The MultiIndex is set, and the NaN values are dropped, alongside the + pulseId = 0 (meaningless). + + """ return ( Series((np_array[i] for i in train_id.index), name=channel) .explode() @@ -220,19 +270,36 @@ def create_dataframe_per_electron( def create_dataframe_per_pulse( self, - np_array, - train_id, - channel, - channel_dict, + np_array: np.ndarray[float], + train_id: Series, + channel: str, + channel_dict: dict, ) -> DataFrame: - """Returns a pandas DataFrame for a given channel name of type [per pulse]""" - # Special case for auxillary channels which checks the channel - # dictionary for correct slices and creates a multicolumn - # pandas dataframe + """ + Returns a pandas DataFrame for a given channel name of type [per pulse]. + + Args: + np_array (np.ndarray): The numpy array containing the channel data. + train_id (Series): The train ID Series. + channel (str): The name of the channel. + channel_dict (dict): The dictionary containing channel parameters. + + Returns: + DataFrame: The pandas DataFrame for the channel's data. + + Notes: + - For auxillary channels, the macrobunch resolved data is repeated 499 + times to be compared to electron resolved data for each auxillary + channel. The data is then converted to a multicolumn DataFrame. + - For all other pulse resolved channels, the macrobunch resolved + data is exploded to a DataFrame and the MultiIndex is set. + + """ + + # Special case for auxillary channels if channel == "dldAux": - # The macrobunch resolved data is repeated 499 times to be - # compared to electron resolved data for each auxillary channel - # and converted to a multicolumn dataframe + # Checks the channel dictionary for correct slices and creates a + # multicolumn DataFrame data_frames = ( Series( (np_array[i, value] for i in train_id.index), @@ -245,9 +312,10 @@ def create_dataframe_per_pulse( # Multiindex set and combined dataframe returned data = reduce(DataFrame.combine_first, data_frames) + # For all other pulse resolved channels else: - # For all other pulse resolved channels, macrobunch resolved - # data is exploded to a dataframe and the MultiIndex set + # Macrobunch resolved data is exploded to a DataFrame and + # the MultiIndex is set # Creates the index_per_pulse for the given channel self.create_multi_index_per_pulse(train_id, np_array) @@ -262,11 +330,21 @@ def create_dataframe_per_pulse( def create_dataframe_per_train( self, - np_array, - train_id, - channel, + np_array: np.ndarray[float], + train_id: Series, + channel: str, ) -> DataFrame: - """Returns a pandas DataFrame for a given channel name of type [per train]""" + """ + Returns a pandas DataFrame for a given channel name of type [per train]. + + Args: + np_array (np.ndarray): The numpy array containing the channel data. + train_id (Series): The train ID Series. + channel (str): The name of the channel. + + Returns: + DataFrame: The pandas DataFrame for the channel's data. + """ return ( Series((np_array[i] for i in train_id.index), name=channel) .to_frame() @@ -278,9 +356,26 @@ def create_dataframe_per_channel( h5_file: h5py.File, channel: str, ) -> Union[Series, DataFrame]: - """Returns a pandas DataFrame for a given channel name for - a given file. The Dataframe contains the MultiIndex and returns - depending on the channel's format""" + """ + Returns a pandas DataFrame for a given channel name from a given file. + + This method takes an h5py.File object `h5_file` and a channel name `channel`, + and returns a pandas DataFrame containing the data for that channel from the + file. The format of the DataFrame depends on the channel's format specified + in the configuration. + + Args: + h5_file (h5py.File): The h5py.File object representing the HDF5 file. + channel (str): The name of the channel. + + Returns: + Union[Series, DataFrame]: A pandas Series or DataFrame representing the + channel's data. + + Raises: + ValueError: If the channel has an undefined format. + + """ [train_id, np_array] = self.create_numpy_array_per_channel( h5_file, channel, @@ -291,7 +386,9 @@ def create_dataframe_per_channel( # If np_array is size zero, fill with NaNs if np_array.size == 0: + # Fill the np_array with NaN values of the same shape as train_id np_array = np.full_like(train_id, np.nan, dtype=np.double) + # Create a Series using np_array, with train_id as the index data = Series( (np_array[i] for i in train_id.index), name=channel, @@ -300,10 +397,11 @@ def create_dataframe_per_channel( # Electron resolved data is treated here if channel_dict["format"] == "per_electron": - # Creates the index_per_electron if it does not exist for a given file + # If index_per_electron is None, create it for the given file if self.index_per_electron is None: self.create_multi_index_per_electron(h5_file) + # Create a DataFrame for electron-resolved data data = self.create_dataframe_per_electron( np_array, train_id, @@ -312,6 +410,7 @@ def create_dataframe_per_channel( # Pulse resolved data is treated here elif channel_dict["format"] == "per_pulse": + # Create a DataFrame for pulse-resolved data data = self.create_dataframe_per_pulse( np_array, train_id, @@ -321,6 +420,7 @@ def create_dataframe_per_channel( # Train resolved data is treated here elif channel_dict["format"] == "per_train": + # Create a DataFrame for train-resolved data data = self.create_dataframe_per_train(np_array, train_id, channel) else: @@ -335,9 +435,24 @@ def create_dataframe_per_channel( def concatenate_channels( self, h5_file: h5py.File, - ) -> Union[Series, DataFrame]: - """Returns a concatenated pandas DataFrame for either all pulse, - train or electron resolved channels.""" + ) -> DataFrame: + """ + Concatenates the channels from the provided h5py.File into a pandas DataFrame. + + This method takes an h5py.File object `h5_file` and concatenates the channels + present in the file into a single pandas DataFrame. The concatenation is + performed based on the available channels specified in the configuration. + + Args: + h5_file (h5py.File): The h5py.File object representing the HDF5 file. + + Returns: + DataFrame: A concatenated pandas DataFrame containing the channels. + + Raises: + ValueError: If the group_name for any channel does not exist in the file. + + """ all_keys = parse_h5_keys(h5_file) # Parses all channels present # Check for if the provided group_name actually exists in the file @@ -362,10 +477,13 @@ def concatenate_channels( f"The group_name for channel {channel} does not exist.", ) + # Create a generator expression to generate data frames for each channel data_frames = ( self.create_dataframe_per_channel(h5_file, each) for each in self.available_channels ) + + # Use the reduce function to join the data frames into a single DataFrame return reduce( lambda left, right: left.join(right, how="outer"), data_frames, @@ -374,20 +492,42 @@ def concatenate_channels( def create_dataframe_per_file( self, file_path: Path, - ) -> Union[Series, DataFrame]: - """Returns two pandas DataFrames constructed for the given file. - The DataFrames contains the datasets from the iterable in the - order opposite to specified by channel names. One DataFrame is - pulse resolved and the other electron resolved. + ) -> DataFrame: """ - # Loads h5 file and creates two dataframes + Create pandas DataFrames for the given file. + + This method loads an HDF5 file specified by `file_path` and constructs a pandas + DataFrame from the datasets within the file. The order of datasets in the + DataFrames is the opposite of the order specified by channel names. + + Args: + file_path (Path): Path to the input HDF5 file. + + Returns: + DataFrame: pandas DataFrame + + """ + # Loads h5 file and creates a dataframe with h5py.File(file_path, "r") as h5_file: self.reset_multi_index() # Reset MultiIndexes for next file return self.concatenate_channels(h5_file) def h5_to_parquet(self, h5_path: Path, parquet_path: Path) -> None: - """Uses the createDataFramePerFile method and saves - the dataframes to a parquet file.""" + """ + Convert HDF5 file to Parquet format. + + This method uses the `create_dataframe_per_file` method to create dataframes + from individual files within an HDF5 file. The resulting dataframe is then + saved to a Parquet file. + + Args: + h5_path (Path): Path to the input HDF5 file. + parquet_path (Path): Path to the output Parquet file. + + Raises: + ValueError: If an error occurs during the conversion process. + + """ try: ( self.create_dataframe_per_file(h5_path) @@ -402,42 +542,61 @@ def h5_to_parquet(self, h5_path: Path, parquet_path: Path) -> None: def fill_na( self, - dataframes: List, + dataframes: List[dd.DataFrame], ) -> dd.DataFrame: - """Routine to fill the NaN values with intrafile forward filling.""" + """ + Fill NaN values in the given dataframes using intrafile forward filling. + + Args: + dataframes (List[dd.DataFrame]): List of dataframes to fill NaN values. + + Returns: + dd.DataFrame: Concatenated dataframe with filled NaN values. + + Notes: + This method is specific to the flash data structure and is used to fill NaN + values in certain channels that only store information at a lower frequency + The low frequency channels are exploded to match the dimensions of higher + frequency channels, but they may contain NaNs in the other columns. + This method fills the NaNs for the specific channels (channels_per_pulse + and channels_per_train). + + """ + # Channels to fill NaN values channels: List[str] = self.channels_per_pulse + self.channels_per_train + + # Fill NaN values within each dataframe for i, _ in enumerate(dataframes): dataframes[i][channels] = dataframes[i][channels].fillna( method="ffill", ) - # This loop forward fills between the consective files. - # The first run file will have NaNs, unless another run - # before it has been defined. + # Forward fill between consecutive dataframes for i in range(1, len(dataframes)): - # Take only pulse channels + # Select pulse channels from current dataframe subset = dataframes[i][channels] - # Find which column(s) contain NaNs. + # Find columns with NaN values in the first row is_null = subset.loc[0].isnull().values.compute() - # Statement executed if there is more than one NaN value in the - # first row from all columns + # Execute if there are NaN values in the first row if is_null.sum() > 0: # Select channel names with only NaNs channels_to_overwrite = list(compress(channels, is_null[0])) - # Get the values for those channels from previous file + # Get values for those channels from the previous dataframe values = dataframes[i - 1][channels].tail(1).values[0] - # Extract channels_to_overwrite from values and create a dictionary + # Create a dictionary to fill NaN values fill_dict = dict(zip(channels, values)) fill_dict = { k: v for k, v in fill_dict.items() if k in channels_to_overwrite } - # Fill all NaNs by those values + # Fill NaN values with the corresponding values from the + # previous dataframe dataframes[i][channels_to_overwrite] = subset[ channels_to_overwrite ].fillna(fill_dict) + # Concatenate the filled dataframes return dd.concat(dataframes) def parse_metadata( From 97b835899bad25786cfcc48ea2c52e9255825faf Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Wed, 7 Jun 2023 12:57:11 +0200 Subject: [PATCH 23/36] fix small bug with typehints --- sed/loader/flash/loader.py | 8 ++++---- sed/loader/flash/utils.py | 6 +++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index dc79bc43..15d37990 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -192,7 +192,7 @@ def create_numpy_array_per_channel( self, h5_file: h5py.File, channel: str, - ) -> Tuple[Series, np.ndarray[float]]: + ) -> Tuple[Series, np.ndarray]: """ Returns a numpy array for a given channel name for a given file. @@ -234,7 +234,7 @@ def create_numpy_array_per_channel( def create_dataframe_per_electron( self, - np_array: np.ndarray[float], + np_array: np.ndarray, train_id: Series, channel: str, ) -> DataFrame: @@ -270,7 +270,7 @@ def create_dataframe_per_electron( def create_dataframe_per_pulse( self, - np_array: np.ndarray[float], + np_array: np.ndarray, train_id: Series, channel: str, channel_dict: dict, @@ -330,7 +330,7 @@ def create_dataframe_per_pulse( def create_dataframe_per_train( self, - np_array: np.ndarray[float], + np_array: np.ndarray, train_id: Series, channel: str, ) -> DataFrame: diff --git a/sed/loader/flash/utils.py b/sed/loader/flash/utils.py index 8575759a..c1874277 100644 --- a/sed/loader/flash/utils.py +++ b/sed/loader/flash/utils.py @@ -114,7 +114,11 @@ def gather_flash_files( ) files = [] - raw_data_dirs = list(raw_data_dirs) + raw_data_dirs = ( + raw_data_dirs + if isinstance(raw_data_dirs, Sequence) + else [raw_data_dirs] + ) # search through all directories for raw_data_dir in raw_data_dirs: # Use pathlib to search for matching files in each directory From b1d53b224888208d7bc705d60f76647a4bce8829 Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Wed, 7 Jun 2023 13:22:09 +0200 Subject: [PATCH 24/36] simplify getting channels by format --- sed/loader/flash/loader.py | 73 +++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 41 deletions(-) diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index 15d37990..e6020081 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -55,44 +55,32 @@ def available_channels(self) -> List: available_channels.remove("pulseId") return available_channels - @property - def channels_per_pulse(self) -> List: - """Returns a list of channels with per_pulse format, - including all auxillary channels""" - channels_per_pulse = [] - for key in self.available_channels: - if ( - self._config["dataframe"]["channels"][key]["format"] - == "per_pulse" - ): - if key == "dldAux": - for aux_key in self._config["dataframe"]["channels"][key][ - "dldAuxChannels" - ].keys(): - channels_per_pulse.append(aux_key) - else: - channels_per_pulse.append(key) - return channels_per_pulse + def get_channels_by_format(self, formats: List[str]) -> List: + """ + Returns a list of channels with the specified format. - @property - def channels_per_electron(self) -> List: - """Returns a list of channels with per_electron format""" - return [ - key - for key in self.available_channels - if self._config["dataframe"]["channels"][key]["format"] - == "per_electron" - ] + Args: + formats (List[str]): The desired formats ('per_pulse', 'per_electron', + or 'per_train'). - @property - def channels_per_train(self) -> List: - """Returns a list of channels with per_train format""" - return [ - key - for key in self.available_channels - if self._config["dataframe"]["channels"][key]["format"] - == "per_train" - ] + Returns: + List: A list of channels with the specified format(s). + """ + channels = [] + for format_ in formats: + for key in self.available_channels: + channel_format = self._config["dataframe"]["channels"][key][ + "format" + ] + if channel_format == format_: + if key == "dldAux": + aux_channels = self._config["dataframe"]["channels"][ + key + ]["dldAuxChannels"].keys() + channels.extend(aux_channels) + else: + channels.append(key) + return channels def reset_multi_index(self) -> None: """Resets the index per pulse and electron""" @@ -557,13 +545,14 @@ def fill_na( This method is specific to the flash data structure and is used to fill NaN values in certain channels that only store information at a lower frequency The low frequency channels are exploded to match the dimensions of higher - frequency channels, but they may contain NaNs in the other columns. - This method fills the NaNs for the specific channels (channels_per_pulse - and channels_per_train). + frequency channels, but they may contain NaNs in the other columns. This + method fills the NaNs for the specific channels (per_pulse and per_train). """ # Channels to fill NaN values - channels: List[str] = self.channels_per_pulse + self.channels_per_train + channels: List[str] = self.get_channels_by_format( + ["per_pulse", "per_train"], + ) # Fill NaN values within each dataframe for i, _ in enumerate(dataframes): @@ -733,7 +722,9 @@ def read_dataframe( for parquet_file in self.parquet_names ], ) - dataframe = dataframe.dropna(subset=self.channels_per_electron) + dataframe = dataframe.dropna( + subset=self.get_channels_by_format("per_electron"), + ) if collect_metadata: metadata_retriever = MetadataRetriever(self._config["metadata"]) From 7e221ff12404c6b1efcb4efc3d1992c0261ae4fa Mon Sep 17 00:00:00 2001 From: "M. Zain Sohail" Date: Wed, 7 Jun 2023 15:03:29 +0200 Subject: [PATCH 25/36] metadata small fix --- sed/loader/flash/metadata.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sed/loader/flash/metadata.py b/sed/loader/flash/metadata.py index d4847055..210f7ea4 100644 --- a/sed/loader/flash/metadata.py +++ b/sed/loader/flash/metadata.py @@ -20,11 +20,11 @@ def __init__(self, metadata_config: Dict) -> None: Args: metadata_config (dict): Takes a dict containing - at least scicat_url, username and password + at least url, username and password """ - self.scicat_url = metadata_config["scicat_url"] - self.username = metadata_config["username"] - self.password = metadata_config["password"] + self.url = metadata_config["scicat_url"] + self.username = metadata_config["scicat_username"] + self.password = metadata_config["scicat_password"] self.headers = { "Content-Type": "application/json", "Accept": "application/json", @@ -107,7 +107,7 @@ def _create_dataset_url_by_PID(self, pid: str) -> str: "/", "%2F", ) # Replace slashes in the PID with URL-encoded slashes - url = f"{self.scicat_url}/RawDatasets/{npid}?access_token={self._get_token()}" + url = f"{self.url}/RawDatasets/{npid}?access_token={self._get_token()}" return url def _get_token(self) -> str: @@ -120,7 +120,7 @@ def _get_token(self) -> str: Raises: Exception: If the token request fails. """ - token_url = f"{self.scicat_url}/Users/login" + token_url = f"{self.url}/Users/login" # Send a POST request to the token URL with the username and password token_response = requests.post( token_url, From 67de4dc2da139401e21ac87bd477f753440519cd Mon Sep 17 00:00:00 2001 From: rettigl Date: Sat, 10 Jun 2023 00:38:32 +0200 Subject: [PATCH 26/36] modified base loader and processor to support runs as loader option, flash still intermediate --- sed/core/processor.py | 54 +++++++++------- sed/loader/base/loader.py | 39 +++++++++-- sed/loader/flash/loader.py | 121 ++++++++++++++++++++++++++++------- sed/loader/flash/utils.py | 55 ---------------- sed/loader/generic/loader.py | 3 + sed/loader/mpes/loader.py | 3 + 6 files changed, 168 insertions(+), 107 deletions(-) diff --git a/sed/core/processor.py b/sed/core/processor.py index 7b64ef99..5d5222c4 100644 --- a/sed/core/processor.py +++ b/sed/core/processor.py @@ -60,7 +60,7 @@ def __init__( dataframe: Union[pd.DataFrame, ddf.DataFrame] = None, files: List[str] = None, folder: str = None, - runs: Sequence[int] = None, + runs: Sequence[str] = None, collect_metadata: bool = False, **kwds, ): @@ -77,8 +77,8 @@ def __init__( the config. Defaults to None. folder (str, optional): Folder containing files to pass to the loader defined in the config. Defaults to None. - runs (Sequence[int], optional): List of runs to pass to the loader defined - in the config. Defaults to None. + runs (Sequence[str], optional): List of run identifiers to pass to the loader + defined in the config. Defaults to None. collect_metadata (bool): Option to collect metadata from files. Defaults to False. **kwds: Keyword arguments passed to the reader. @@ -266,7 +266,7 @@ def load( metadata: dict = None, files: List[str] = None, folder: str = None, - runs: Sequence[int] = None, + runs: Sequence[str] = None, collect_metadata: bool = False, **kwds, ): @@ -279,9 +279,8 @@ def load( metadata (dict, optional): Dict of external Metadata. Defaults to None. files (List[str], optional): List of file paths to pass to the loader. Defaults to None. - runs (Sequence[int], optional): List of run identifiers to pass to the - loader. - Defaults to None. + runs (Sequence[str], optional): List of run identifiers to pass to the + loader. Defaults to None. folder (str, optional): Folder path to pass to the loader. Defaults to None. @@ -292,6 +291,26 @@ def load( metadata = {} if dataframe is not None: self._dataframe = dataframe + elif runs is not None: + # If runs are provided, we only use the copy tool if also folder is provided. + # In that case, we copy the whole provided base folder tree, and pass the copied + # version to the loader as base folder to look for the runs. + if folder is not None: + dataframe, metadata = self.loader.read_dataframe( + folder=self.cpy(folder), + runs=runs, + metadata=metadata, + collect_metadata=collect_metadata, + **kwds, + ) + else: + dataframe, metadata = self.loader.read_dataframe( + runs=runs, + metadata=metadata, + collect_metadata=collect_metadata, + **kwds, + ) + elif folder is not None: dataframe, metadata = self.loader.read_dataframe( folder=cast(str, self.cpy(folder)), @@ -299,8 +318,7 @@ def load( collect_metadata=collect_metadata, **kwds, ) - self._dataframe = dataframe - self._files = self.loader.files + elif files is not None: dataframe, metadata = self.loader.read_dataframe( files=cast(List[str], self.cpy(files)), @@ -308,23 +326,15 @@ def load( collect_metadata=collect_metadata, **kwds, ) - self._dataframe = dataframe - self._files = self.loader.files - elif runs is not None: - dataframe, metadata = self.loader.read_dataframe( - runs=cast(List[str], self.cpy(runs)), - metadata=metadata, - collect_metadata=collect_metadata, - **kwds, - ) - self._dataframe = dataframe - self._runs = self.loader.runs + else: raise ValueError( - "Either 'dataframe', 'files', 'folder', or 'runs' needs to be\ - provided!", + "Either 'dataframe', 'files', 'folder', or 'runs' needs to be provided!", ) + self._dataframe = dataframe + self._files = self.loader.files + for key in metadata: self._attributes.add( entry=metadata[key], diff --git a/sed/loader/base/loader.py b/sed/loader/base/loader.py index 95edcaad..f2b0a8bf 100644 --- a/sed/loader/base/loader.py +++ b/sed/loader/base/loader.py @@ -80,7 +80,13 @@ def read_dataframe( if metadata is None: metadata = {} - if folder is not None: + if runs is not None: + self.runs = runs + files = [] + for run in runs: + files.extend(self.get_files_from_run_id(run, folder, **kwds)) + + elif folder is not None: folder = os.path.realpath(folder) files = gather_files( folder=folder, @@ -89,25 +95,44 @@ def read_dataframe( **kwds, ) - elif files is None and runs is None: + elif files is None: raise ValueError( - "Either the folder, file paths, or runs should be provided!", + "Either folder, file paths, or runs should be provided!", ) - if runs is not None: - self.runs = runs - if files is not None: files = [os.path.realpath(file) for file in files] self.files = files self.metadata = deepcopy(metadata) - if not files and not runs: + if not files: raise FileNotFoundError("No valid files or runs found!") return None, None + @abstractmethod + def get_files_from_run_id( + self, + run_id: str, + raw_data_dirs: Sequence[str] = None, + extension: str = None, + **kwds, + ) -> List[str]: + """Locate the files for a given run identifier. + + Args: + run_id (str): The run identifier to locate. + raw_data_dir (str, optinal): The directory where the raw data is located. + Defaults to config["loader"]["base_folder"]. + extension (str, optional): The file extension. Defaults to "h5". + kwds: Keyword arguments + + Return: + str: Path to the location of run data. + """ + raise NotImplementedError + @abstractmethod def get_count_rate( self, diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index e6020081..a6652954 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -5,6 +5,7 @@ """ import os from functools import reduce +from importlib.util import find_spec from itertools import compress from pathlib import Path from typing import List @@ -17,16 +18,24 @@ import numpy as np from joblib import delayed from joblib import Parallel +from natsort import natsorted from pandas import DataFrame from pandas import MultiIndex from pandas import Series +from sed.config.settings import load_config from sed.loader.base.loader import BaseLoader from sed.loader.flash.metadata import MetadataRetriever -from sed.loader.flash.utils import gather_flash_files from sed.loader.flash.utils import initialize_paths +from sed.loader.utils import gather_files from sed.loader.utils import parse_h5_keys +# TODO move into standard config!!!!!!!!!!!!!!!!!!!!!!!!! +# load identifiers +package_dir = os.path.dirname(find_spec("sed").origin) +identifiers_path = f"{package_dir}/loader/flash/identifiers.json" +identifiers = load_config(identifiers_path) + class FlashLoader(BaseLoader): """ @@ -614,8 +623,10 @@ def get_elapsed_time(self, fids=None, **kwds): def read_dataframe( self, - runs: Sequence[int] = None, + files: Sequence[str] = None, + folder: str = None, ftype: str = "h5", + runs: Sequence[str] = None, metadata: dict = None, collect_metadata: bool = False, **kwds, @@ -624,12 +635,16 @@ def read_dataframe( Read express data from the DAQ, generating a parquet in between. Args: - runs (Sequence[int], optional): A list of specific run numbers to read. - Defaults to None. + files (Sequence[str], optional): List of file paths. Defaults to None. + folder (str, optional): Path to folder where files are stored. Path has + the priority such that if it's specified, the specified files will + be ignored. Defaults to None. + runs (Sequence[str], optional): A list of specific run numbers to read. + Defaults to None. ftype (str, optional): The file extension type. Defaults to "h5". metadata (dict, optional): Additional metadata. Defaults to None. collect_metadata (bool, optional): Whether to collect metadata. - Defaults to False. + Defaults to False. Returns: @@ -650,39 +665,43 @@ def read_dataframe( temp_parquet_dir = data_parquet_dir.joinpath("per_file") os.makedirs(temp_parquet_dir, exist_ok=True) - all_files = [] # Prepare a list of names for the runs to read and parquets to write - runs = runs if isinstance(runs, Sequence) else [runs] - if runs: + if runs is not None: + runs = runs if isinstance(runs, Sequence) else [runs] + files = [] for run in runs: - run_files = gather_flash_files( - run, - self._config["dataframe"]["daq"], - data_raw_dir, + run_files = self.get_files_from_run_id( + run_id=run, + data_raw_dir=data_raw_dir, extension=ftype, + daq=self._config["dataframe"]["daq"], ) - all_files.extend(run_files) - else: - raise ValueError( - "run identifiers must be provided.", - ) + files.extend(run_files) + self.runs = runs + + # This call takes care of files and folders. As we have converted runs into files already, + # they are just stored in the class by this call. + super().read_dataframe( + files=files, + folder=folder, + ftype=ftype, + metadata=metadata, + ) parquet_name = f"{temp_parquet_dir}/" - self.parquet_names = [ - Path(parquet_name + file.stem) for file in all_files - ] + self.parquet_names = [Path(parquet_name + file.stem) for file in files] missing_files: List[Path] = [] missing_parquet_names: List[Path] = [] # Only read and write files which were not read already for i, parquet_file in enumerate(self.parquet_names): if not parquet_file.exists(): - missing_files.append(all_files[i]) + missing_files.append(files[i]) missing_parquet_names.append(parquet_file) print( - f"Reading files: {len(missing_files)} new files of {len(all_files)} total.", + f"Reading files: {len(missing_files)} new files of {len(files)} total.", ) self.reset_multi_index() # Initializes the indices for h5_to_parquet @@ -712,7 +731,7 @@ def read_dataframe( print( f"Loading {len(self.parquet_names)} dataframes. Failed reading " - f"{len(all_files)-len(self.parquet_names)} files.", + f"{len(files)-len(self.parquet_names)} files.", ) # Read all parquet files using dask and concatenate into one dataframe # after filling @@ -738,5 +757,61 @@ def read_dataframe( return dataframe, metadata + def gather_flash_files( + run_number: int, + daq: str, + raw_data_dirs: Sequence[Path], + extension: str = "h5", + ) -> List[Path]: + """Returns a list of filenames for a given run located in the specified directory + for the specified data acquisition (daq). + + Args: + run_number (int): The number of the run. + daq (str): The data acquisition identifier. + raw_data_dir (Sequence[Path]): The directory where the raw data is located. + extension (str, optional): The file extension. Defaults to "h5". + + Returns: + List[Path]: A list of Path objects representing the collected file names. + + Raises: + FileNotFoundError: If no files are found for the given run in the directory. + """ + # Define the stream name prefixes based on the data acquisition identifier + stream_name_prefixes = identifiers["stream_name_prefixes"] + + # Generate the file patterns to search for in the directory + file_pattern = ( + f"{stream_name_prefixes[daq]}_run{run_number}_*." + extension + ) + + files = [] + raw_data_dirs = ( + raw_data_dirs + if isinstance(raw_data_dirs, Sequence) + else [raw_data_dirs] + ) + # search through all directories + for raw_data_dir in raw_data_dirs: + # Use pathlib to search for matching files in each directory + files.extend( + sorted( + raw_data_dir.glob(file_pattern), + key=lambda filename: str(filename).rsplit("_", maxsplit=1)[ + -1 + ], + ), + ) + + # Check if any files are found + if not files: + raise FileNotFoundError( + f"No files found for run {run_number} in directory {str(raw_data_dirs)}", + ) + + # Return the list of found files + return files + LOADER = FlashLoader diff --git a/sed/loader/flash/utils.py b/sed/loader/flash/utils.py index c1874277..95308852 100644 --- a/sed/loader/flash/utils.py +++ b/sed/loader/flash/utils.py @@ -82,58 +82,3 @@ def initialize_paths(df_config: Dict) -> Tuple[Path, Path]: os.mkdir(data_parquet_dir) return data_raw_dir, data_parquet_dir - - -def gather_flash_files( - run_number: int, - daq: str, - raw_data_dirs: Sequence[Path], - extension: str = "h5", -) -> List[Path]: - """Returns a list of filenames for a given run located in the specified directory - for the specified data acquisition (daq). - - Args: - run_number (int): The number of the run. - daq (str): The data acquisition identifier. - raw_data_dir (Sequence[Path]): The directory where the raw data is located. - extension (str, optional): The file extension. Defaults to "h5". - - Returns: - List[Path]: A list of Path objects representing the collected file names. - - Raises: - FileNotFoundError: If no files are found for the given run in the directory. - """ - # Define the stream name prefixes based on the data acquisition identifier - stream_name_prefixes = identifiers["stream_name_prefixes"] - - # Generate the file patterns to search for in the directory - file_pattern = ( - f"{stream_name_prefixes[daq]}_run{run_number}_*." + extension - ) - - files = [] - raw_data_dirs = ( - raw_data_dirs - if isinstance(raw_data_dirs, Sequence) - else [raw_data_dirs] - ) - # search through all directories - for raw_data_dir in raw_data_dirs: - # Use pathlib to search for matching files in each directory - files.extend( - sorted( - raw_data_dir.glob(file_pattern), - key=lambda filename: str(filename).rsplit("_", maxsplit=1)[-1], - ), - ) - - # Check if any files are found - if not files: - raise FileNotFoundError( - f"No files found for run {run_number} in directory {str(raw_data_dirs)}", - ) - - # Return the list of found files - return files diff --git a/sed/loader/generic/loader.py b/sed/loader/generic/loader.py index 94103b85..787be598 100644 --- a/sed/loader/generic/loader.py +++ b/sed/loader/generic/loader.py @@ -30,6 +30,7 @@ def read_dataframe( files: Sequence[str] = None, folder: str = None, ftype: str = "parquet", + runs: Sequence[str] = None, metadata: dict = None, collect_metadata: bool = False, **kwds, @@ -44,6 +45,7 @@ def read_dataframe( ftype (str, optional): File type to read ('parquet', 'json', 'csv', etc). If a folder path is given, all files with the specified extension are read into the dataframe in the reading order. Defaults to "parquet". + runs (Sequence[str], optional): List of run identifiers. Defaults to None. metadata (dict, optional): Manual meta data dictionary. Auto-generated meta data are added to it. Defaults to None. collect_metadata (bool): Option to collect metadata from files. Requires @@ -65,6 +67,7 @@ def read_dataframe( files=files, folder=folder, ftype=ftype, + runs=runs, metadata=metadata, ) diff --git a/sed/loader/mpes/loader.py b/sed/loader/mpes/loader.py index 21b94a56..a924a668 100644 --- a/sed/loader/mpes/loader.py +++ b/sed/loader/mpes/loader.py @@ -319,6 +319,7 @@ def read_dataframe( files: Sequence[str] = None, folder: str = None, ftype: str = "h5", + runs: Sequence[str] = None, metadata: dict = None, collect_metadata: bool = False, time_stamps: bool = False, @@ -335,6 +336,7 @@ def read_dataframe( ftype (str, optional): File extension to use. If a folder path is given, all files with the specified extension are read into the dataframe in the reading order. Defaults to "h5". + runs (Sequence[str], optional): List of run identifiers. Defaults to None. metadata (dict, optional): Manual meta data dictionary. Auto-generated meta data are added to it. Defaults to None. collect_metadata (bool): Option to collect metadata from files. Requires @@ -365,6 +367,7 @@ def read_dataframe( files=files, folder=folder, ftype=ftype, + runs=runs, metadata=metadata, ) From 5d694b410236d1f76e698daa4df0ff33557b2216 Mon Sep 17 00:00:00 2001 From: rettigl Date: Sat, 10 Jun 2023 01:04:21 +0200 Subject: [PATCH 27/36] working flash loader --- sed/loader/base/loader.py | 4 +-- sed/loader/flash/loader.py | 59 +++++++++++++++++++------------------- 2 files changed, 31 insertions(+), 32 deletions(-) diff --git a/sed/loader/base/loader.py b/sed/loader/base/loader.py index f2b0a8bf..3363cedb 100644 --- a/sed/loader/base/loader.py +++ b/sed/loader/base/loader.py @@ -115,7 +115,7 @@ def read_dataframe( def get_files_from_run_id( self, run_id: str, - raw_data_dirs: Sequence[str] = None, + raw_data_dir: str = None, extension: str = None, **kwds, ) -> List[str]: @@ -123,7 +123,7 @@ def get_files_from_run_id( Args: run_id (str): The run identifier to locate. - raw_data_dir (str, optinal): The directory where the raw data is located. + raw_data_dir (str, optional): The directory where the raw data is located. Defaults to config["loader"]["base_folder"]. extension (str, optional): The file extension. Defaults to "h5". kwds: Keyword arguments diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index a6652954..a4033e70 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -27,7 +27,6 @@ from sed.loader.base.loader import BaseLoader from sed.loader.flash.metadata import MetadataRetriever from sed.loader.flash.utils import initialize_paths -from sed.loader.utils import gather_files from sed.loader.utils import parse_h5_keys # TODO move into standard config!!!!!!!!!!!!!!!!!!!!!!!!! @@ -673,7 +672,7 @@ def read_dataframe( for run in runs: run_files = self.get_files_from_run_id( run_id=run, - data_raw_dir=data_raw_dir, + raw_data_dir=data_raw_dir.absolute(), extension=ftype, daq=self._config["dataframe"]["daq"], ) @@ -757,23 +756,27 @@ def read_dataframe( return dataframe, metadata - def gather_flash_files( - run_number: int, - daq: str, - raw_data_dirs: Sequence[Path], + def get_files_from_run_id( + self, + run_id: str, + raw_data_dir: str = None, extension: str = "h5", - ) -> List[Path]: + **kwds, + ) -> List[str]: """Returns a list of filenames for a given run located in the specified directory for the specified data acquisition (daq). Args: - run_number (int): The number of the run. - daq (str): The data acquisition identifier. - raw_data_dir (Sequence[Path]): The directory where the raw data is located. + run_id (str): The run identifier to locate. + raw_data_dir (str, optional): The directory where the raw data is located. + Defaults to config["loader"]["base_folder"]. extension (str, optional): The file extension. Defaults to "h5". + kwds: Keyword arguments: + - daq (str): The data acquisition identifier. + Defaults to config["dataframe"]["daq"]. Returns: - List[Path]: A list of Path objects representing the collected file names. + List[str]: A list of path strings representing the collected file names. Raises: FileNotFoundError: If no files are found for the given run in the directory. @@ -781,37 +784,33 @@ def gather_flash_files( # Define the stream name prefixes based on the data acquisition identifier stream_name_prefixes = identifiers["stream_name_prefixes"] + if raw_data_dir is None: + raw_data_dir = self._config["loader"]["base_folder"] + + daq = kwds.pop("daq", self._config.get("dataframe", {}).get("daq")) + # Generate the file patterns to search for in the directory file_pattern = ( - f"{stream_name_prefixes[daq]}_run{run_number}_*." + extension + f"{stream_name_prefixes[daq]}_run{run_id}_*." + extension ) - files = [] - raw_data_dirs = ( - raw_data_dirs - if isinstance(raw_data_dirs, Sequence) - else [raw_data_dirs] + files: List[Path] = [] + # Use pathlib to search for matching files in each directory + files.extend( + natsorted( + Path(raw_data_dir).glob(file_pattern), + key=lambda filename: str(filename).rsplit("_", maxsplit=1)[-1], + ), ) - # search through all directories - for raw_data_dir in raw_data_dirs: - # Use pathlib to search for matching files in each directory - files.extend( - sorted( - raw_data_dir.glob(file_pattern), - key=lambda filename: str(filename).rsplit("_", maxsplit=1)[ - -1 - ], - ), - ) # Check if any files are found if not files: raise FileNotFoundError( - f"No files found for run {run_number} in directory {str(raw_data_dirs)}", + f"No files found for run {run_id} in directory {str(raw_data_dir)}", ) # Return the list of found files - return files + return [file.absolute() for file in files] LOADER = FlashLoader From a4c409173c90f45228b6dfe838cb65de86a051c2 Mon Sep 17 00:00:00 2001 From: rettigl Date: Sat, 10 Jun 2023 01:41:19 +0200 Subject: [PATCH 28/36] linting and bugfixes --- sed/core/processor.py | 2 +- sed/loader/base/loader.py | 2 +- sed/loader/flash/loader.py | 17 +++++++++-------- sed/loader/flash/utils.py | 4 +--- sed/loader/utils.py | 14 +++++--------- 5 files changed, 17 insertions(+), 22 deletions(-) diff --git a/sed/core/processor.py b/sed/core/processor.py index 5d5222c4..58a4ff63 100644 --- a/sed/core/processor.py +++ b/sed/core/processor.py @@ -297,7 +297,7 @@ def load( # version to the loader as base folder to look for the runs. if folder is not None: dataframe, metadata = self.loader.read_dataframe( - folder=self.cpy(folder), + folder=cast(str, self.cpy(folder)), runs=runs, metadata=metadata, collect_metadata=collect_metadata, diff --git a/sed/loader/base/loader.py b/sed/loader/base/loader.py index 3363cedb..5f992dab 100644 --- a/sed/loader/base/loader.py +++ b/sed/loader/base/loader.py @@ -81,7 +81,7 @@ def read_dataframe( metadata = {} if runs is not None: - self.runs = runs + self.runs = list(runs) files = [] for run in runs: files.extend(self.get_files_from_run_id(run, folder, **kwds)) diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index a4033e70..cf2318f6 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -667,17 +667,16 @@ def read_dataframe( # Prepare a list of names for the runs to read and parquets to write if runs is not None: - runs = runs if isinstance(runs, Sequence) else [runs] files = [] for run in runs: run_files = self.get_files_from_run_id( run_id=run, - raw_data_dir=data_raw_dir.absolute(), + raw_data_dir=str(data_raw_dir.resolve()), extension=ftype, daq=self._config["dataframe"]["daq"], ) files.extend(run_files) - self.runs = runs + self.runs = list(runs) # This call takes care of files and folders. As we have converted runs into files already, # they are just stored in the class by this call. @@ -689,14 +688,16 @@ def read_dataframe( ) parquet_name = f"{temp_parquet_dir}/" - self.parquet_names = [Path(parquet_name + file.stem) for file in files] + self.parquet_names = [ + Path(parquet_name + Path(file).stem) for file in files + ] missing_files: List[Path] = [] missing_parquet_names: List[Path] = [] # Only read and write files which were not read already for i, parquet_file in enumerate(self.parquet_names): if not parquet_file.exists(): - missing_files.append(files[i]) + missing_files.append(Path(files[i])) missing_parquet_names.append(parquet_file) print( @@ -741,14 +742,14 @@ def read_dataframe( ], ) dataframe = dataframe.dropna( - subset=self.get_channels_by_format("per_electron"), + subset=self.get_channels_by_format(["per_electron"]), ) if collect_metadata: metadata_retriever = MetadataRetriever(self._config["metadata"]) metadata = metadata_retriever.get_metadata( beamtime_id=self._config["dataframe"]["beamtime_id"], - runs=runs, + runs=list(runs), metadata=self.metadata, ) else: @@ -810,7 +811,7 @@ def get_files_from_run_id( ) # Return the list of found files - return [file.absolute() for file in files] + return [str(file.resolve()) for file in files] LOADER = FlashLoader diff --git a/sed/loader/flash/utils.py b/sed/loader/flash/utils.py index 95308852..ca4c00c0 100644 --- a/sed/loader/flash/utils.py +++ b/sed/loader/flash/utils.py @@ -3,8 +3,6 @@ from importlib.util import find_spec from pathlib import Path from typing import Dict -from typing import List -from typing import Sequence from typing import Tuple from sed.config.settings import load_config @@ -63,7 +61,7 @@ def initialize_paths(df_config: Dict) -> Tuple[Path, Path]: # Use os walk to reach the raw data directory data_raw_dir = [] - for root, dirs, files in os.walk(beamtime_dir.joinpath("raw/")): + for root, dirs, files in os.walk(beamtime_dir.joinpath("raw/")): # pylint: disable=W0612 for dir_name in dirs: if dir_name.startswith("express-") or dir_name.startswith( "online-", diff --git a/sed/loader/utils.py b/sed/loader/utils.py index f817d8e8..6048891a 100644 --- a/sed/loader/utils.py +++ b/sed/loader/utils.py @@ -74,20 +74,16 @@ def parse_h5_keys(h5_file: File, prefix: str = "") -> List[str]: if isinstance(h5_file[key], Group): # If it's a group, recursively call the function on the group object # and append the returned channels to the file_channel_list - [ - file_channel_list.append(s) - for s in parse_h5_keys( - h5_file[key], - prefix=prefix + "/" + key, - ) - ] + file_channel_list.extend( + parse_h5_keys(h5_file[key], prefix=prefix + "/" + key), + ) else: # If it's not a group (i.e., it's a dataset), append the key # to the file_channel_list file_channel_list.append(prefix + "/" + key) - except Exception as exception: + except KeyError as exception: # If an exception occurs, raise a new exception with an error message - raise Exception( + raise KeyError( f"Error parsing key: {prefix}/{key}", ) from exception From 7ec43902a21b31e606fc7c68e6fbcc6c4afba586 Mon Sep 17 00:00:00 2001 From: rettigl Date: Sat, 10 Jun 2023 02:00:16 +0200 Subject: [PATCH 29/36] add dummy function to mpes and generic loaders --- sed/loader/generic/loader.py | 22 ++++++++++++++++++++++ sed/loader/mpes/loader.py | 21 +++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/sed/loader/generic/loader.py b/sed/loader/generic/loader.py index 787be598..3f799adb 100644 --- a/sed/loader/generic/loader.py +++ b/sed/loader/generic/loader.py @@ -3,6 +3,7 @@ Mostly ported from https://github.com/mpes-kit/mpes. @author: L. Rettig """ +from typing import List from typing import Sequence from typing import Tuple @@ -94,6 +95,27 @@ def read_dataframe( "The file format cannot be understood!", ) from exc + def get_files_from_run_id( + self, + run_id: str, + raw_data_dir: str = None, + extension: str = None, + **kwds, + ) -> List[str]: + """Locate the files for a given run identifier. + + Args: + run_id (str): The run identifier to locate. + raw_data_dir (str, optional): The directory where the raw data is located. + Defaults to config["loader"]["base_folder"]. + extension (str, optional): The file extension. Defaults to "h5". + kwds: Keyword arguments + + Return: + str: Path to the location of run data. + """ + raise NotImplementedError + def get_count_rate( # Pylint: disable=unused_parameter self, fids: Sequence[int] = None, diff --git a/sed/loader/mpes/loader.py b/sed/loader/mpes/loader.py index a924a668..4737cc0a 100644 --- a/sed/loader/mpes/loader.py +++ b/sed/loader/mpes/loader.py @@ -421,6 +421,27 @@ def read_dataframe( return df, metadata + def get_files_from_run_id( + self, + run_id: str, + raw_data_dir: str = None, + extension: str = None, + **kwds, + ) -> List[str]: + """Locate the files for a given run identifier. + + Args: + run_id (str): The run identifier to locate. + raw_data_dir (str, optional): The directory where the raw data is located. + Defaults to config["loader"]["base_folder"]. + extension (str, optional): The file extension. Defaults to "h5". + kwds: Keyword arguments + + Return: + str: Path to the location of run data. + """ + raise NotImplementedError + def gather_metadata( self, files: Sequence[str], From f9eb60e2dbb1464566c88b86cf88ff5c79b61214 Mon Sep 17 00:00:00 2001 From: rettigl Date: Mon, 12 Jun 2023 02:03:12 +0200 Subject: [PATCH 30/36] add option for multiple folders to general loader infrastructure fix remaining issues with linting and tests --- .github/workflows/pylint.yml | 2 +- sed/core/processor.py | 4 +- sed/loader/base/loader.py | 60 +++++++----- sed/loader/flash/identifiers.json | 16 ---- sed/loader/flash/loader.py | 138 ++++++++++++++++++++-------- sed/loader/flash/metadata.py | 17 ++-- sed/loader/flash/utils.py | 82 ----------------- sed/loader/generic/loader.py | 30 +++--- sed/loader/mpes/loader.py | 30 +++--- tests/calibrator/test_energy.py | 6 +- tests/calibrator/test_momentum.py | 8 +- tests/data/loader/flash/config.yaml | 18 +++- tests/loader/test_loaders.py | 4 +- 13 files changed, 206 insertions(+), 209 deletions(-) delete mode 100644 sed/loader/flash/identifiers.json delete mode 100644 sed/loader/flash/utils.py diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml index cf6da917..1f147510 100644 --- a/.github/workflows/pylint.yml +++ b/.github/workflows/pylint.yml @@ -17,7 +17,7 @@ jobs: run: | git lfs pull python -m pip install --upgrade pip - pip install pycodestyle pylint mypy pytest types-PyYAML + pip install pycodestyle pylint mypy pytest types-PyYAML types-requests if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - name: Install package run: | diff --git a/sed/core/processor.py b/sed/core/processor.py index 58a4ff63..3f7059a3 100644 --- a/sed/core/processor.py +++ b/sed/core/processor.py @@ -297,7 +297,7 @@ def load( # version to the loader as base folder to look for the runs. if folder is not None: dataframe, metadata = self.loader.read_dataframe( - folder=cast(str, self.cpy(folder)), + folders=cast(str, self.cpy(folder)), runs=runs, metadata=metadata, collect_metadata=collect_metadata, @@ -313,7 +313,7 @@ def load( elif folder is not None: dataframe, metadata = self.loader.read_dataframe( - folder=cast(str, self.cpy(folder)), + folders=cast(str, self.cpy(folder)), metadata=metadata, collect_metadata=collect_metadata, **kwds, diff --git a/sed/loader/base/loader.py b/sed/loader/base/loader.py index 5f992dab..1f42149d 100644 --- a/sed/loader/base/loader.py +++ b/sed/loader/base/loader.py @@ -8,6 +8,7 @@ from typing import List from typing import Sequence from typing import Tuple +from typing import Union import dask.dataframe as ddf import numpy as np @@ -46,10 +47,10 @@ def __init__( @abstractmethod def read_dataframe( self, - files: Sequence[str] = None, - folder: str = None, + files: Union[str, Sequence[str]] = None, + folders: Union[str, Sequence[str]] = None, + runs: Union[str, Sequence[str]] = None, ftype: str = None, - runs: Sequence[str] = None, metadata: dict = None, collect_metadata: bool = False, **kwds, @@ -58,14 +59,17 @@ def read_dataframe( and corresponding metadata. Args: - files (Sequence[str], optional): List of file paths. Defaults to None. - folder (str, optional): Path to folder where files are stored. Path has - the priority such that if it's specified, the specified files will - be ignored. Defaults to None. + files (Union[str, Sequence[str]], optional): File path(s) to process. + Defaults to None. + folders (Union[str, Sequence[str]], optional): Path to folder(s) where files + are stored. Path has priority such that if it's specified, the specified + files will be ignored. Defaults to None. + runs (Union[str, Sequence[str]], optional): Run identifier(s). Corresponding + files will be located in the location provided by ``folders``. Takes + precendence over ``files`` and ``folders``. Defaults to None. ftype (str, optional): File type to read ('parquet', 'json', 'csv', etc). If a folder path is given, all files with the specified extension are read into the dataframe in the reading order. Defaults to None. - runs (Sequence[str], optional): List of run identifiers. Defaults to None. metadata (dict, optional): Manual metadata dictionary. Auto-generated metadata will be added to it. Defaults to None. collect_metadata (bool): Option to collect metadata from files. Requires @@ -81,19 +85,27 @@ def read_dataframe( metadata = {} if runs is not None: + if isinstance(runs, str): + runs = [runs] self.runs = list(runs) files = [] for run in runs: - files.extend(self.get_files_from_run_id(run, folder, **kwds)) - - elif folder is not None: - folder = os.path.realpath(folder) - files = gather_files( - folder=folder, - extension=ftype, - file_sorting=True, - **kwds, - ) + files.extend(self.get_files_from_run_id(run, folders, **kwds)) + + elif folders is not None: + if isinstance(folders, str): + folders = [folders] + files = [] + for folder in folders: + folder = os.path.realpath(folder) + files.extend( + gather_files( + folder=folder, + extension=ftype, + file_sorting=True, + **kwds, + ), + ) elif files is None: raise ValueError( @@ -101,6 +113,8 @@ def read_dataframe( ) if files is not None: + if isinstance(files, str): + files = [files] files = [os.path.realpath(file) for file in files] self.files = files @@ -115,7 +129,7 @@ def read_dataframe( def get_files_from_run_id( self, run_id: str, - raw_data_dir: str = None, + folders: Union[str, Sequence[str]] = None, extension: str = None, **kwds, ) -> List[str]: @@ -123,13 +137,13 @@ def get_files_from_run_id( Args: run_id (str): The run identifier to locate. - raw_data_dir (str, optional): The directory where the raw data is located. - Defaults to config["loader"]["base_folder"]. - extension (str, optional): The file extension. Defaults to "h5". + folders (Union[str, Sequence[str]], optional): The directory(ies) where the raw + data is located. Defaults to None. + extension (str, optional): The file extension. Defaults to None. kwds: Keyword arguments Return: - str: Path to the location of run data. + List[str]: List of files for the given run. """ raise NotImplementedError diff --git a/sed/loader/flash/identifiers.json b/sed/loader/flash/identifiers.json deleted file mode 100644 index 053a9e06..00000000 --- a/sed/loader/flash/identifiers.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "stream_name_prefixes": { - "pbd": "GMD_DATA_gmd_data", - "pbd2": "FL2PhotDiag_pbd2_gmd_data", - "fl1user1": "FLASH1_USER1_stream_2", - "fl1user2": "FLASH1_USER2_stream_2", - "fl1user3": "FLASH1_USER3_stream_2", - "fl2user1": "FLASH2_USER1_stream_2", - "fl2user2": "FLASH2_USER2_stream_2" - }, - "beamtime_dir": { - "pg2": "/asap3/flash/gpfs/pg2/", - "hextof": "/asap3/flash/gpfs/pg2/", - "wespe": "/asap3/fs-flash-o/gpfs/wespe/" - } -} diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index cf2318f6..a9ef31a2 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -5,7 +5,6 @@ """ import os from functools import reduce -from importlib.util import find_spec from itertools import compress from pathlib import Path from typing import List @@ -23,18 +22,10 @@ from pandas import MultiIndex from pandas import Series -from sed.config.settings import load_config from sed.loader.base.loader import BaseLoader from sed.loader.flash.metadata import MetadataRetriever -from sed.loader.flash.utils import initialize_paths from sed.loader.utils import parse_h5_keys -# TODO move into standard config!!!!!!!!!!!!!!!!!!!!!!!!! -# load identifiers -package_dir = os.path.dirname(find_spec("sed").origin) -identifiers_path = f"{package_dir}/loader/flash/identifiers.json" -identifiers = load_config(identifiers_path) - class FlashLoader(BaseLoader): """ @@ -45,7 +36,7 @@ class FlashLoader(BaseLoader): __name__ = "flash" - supported_file_types = ["h5", "parquet"] + supported_file_types = ["h5"] def __init__(self, config: dict) -> None: @@ -622,10 +613,10 @@ def get_elapsed_time(self, fids=None, **kwds): def read_dataframe( self, - files: Sequence[str] = None, - folder: str = None, + files: Union[str, Sequence[str]] = None, + folders: Union[str, Sequence[str]] = None, + runs: Union[str, Sequence[str]] = None, ftype: str = "h5", - runs: Sequence[str] = None, metadata: dict = None, collect_metadata: bool = False, **kwds, @@ -634,12 +625,14 @@ def read_dataframe( Read express data from the DAQ, generating a parquet in between. Args: - files (Sequence[str], optional): List of file paths. Defaults to None. - folder (str, optional): Path to folder where files are stored. Path has - the priority such that if it's specified, the specified files will - be ignored. Defaults to None. - runs (Sequence[str], optional): A list of specific run numbers to read. + files (Union[str, Sequence[str]], optional): File path(s) to process. Defaults to None. + folders (Union[str, Sequence[str]], optional): Path to folder(s) where files + are stored. Path has priority such that if it's specified, the specified + files will be ignored. Defaults to None. + runs (Union[str, Sequence[str]], optional): Run identifier(s). Corresponding + files will be located in the location provided by ``folders``. Takes + precendence over ``files`` and ``folders``. Defaults to None. ftype (str, optional): The file extension type. Defaults to "h5". metadata (dict, optional): Additional metadata. Defaults to None. collect_metadata (bool, optional): Whether to collect metadata. @@ -656,9 +649,7 @@ def read_dataframe( data is available. """ - data_raw_dir, data_parquet_dir = initialize_paths( - self._config["dataframe"], - ) + data_raw_dir, data_parquet_dir = self.initialize_paths() # Create a per_file directory temp_parquet_dir = data_parquet_dir.joinpath("per_file") @@ -671,7 +662,9 @@ def read_dataframe( for run in runs: run_files = self.get_files_from_run_id( run_id=run, - raw_data_dir=str(data_raw_dir.resolve()), + raw_data_dir=[ + str(folder.resolve()) for folder in data_raw_dir + ], extension=ftype, daq=self._config["dataframe"]["daq"], ) @@ -682,14 +675,14 @@ def read_dataframe( # they are just stored in the class by this call. super().read_dataframe( files=files, - folder=folder, + folders=folders, ftype=ftype, metadata=metadata, ) parquet_name = f"{temp_parquet_dir}/" self.parquet_names = [ - Path(parquet_name + Path(file).stem) for file in files + Path(parquet_name + Path(file).stem) for file in self.files ] missing_files: List[Path] = [] missing_parquet_names: List[Path] = [] @@ -701,7 +694,7 @@ def read_dataframe( missing_parquet_names.append(parquet_file) print( - f"Reading files: {len(missing_files)} new files of {len(files)} total.", + f"Reading files: {len(missing_files)} new files of {len(self.files)} total.", ) self.reset_multi_index() # Initializes the indices for h5_to_parquet @@ -731,7 +724,7 @@ def read_dataframe( print( f"Loading {len(self.parquet_names)} dataframes. Failed reading " - f"{len(files)-len(self.parquet_names)} files.", + f"{len(self.files)-len(self.parquet_names)} files.", ) # Read all parquet files using dask and concatenate into one dataframe # after filling @@ -760,7 +753,7 @@ def read_dataframe( def get_files_from_run_id( self, run_id: str, - raw_data_dir: str = None, + folders: Union[str, Sequence[str]] = None, extension: str = "h5", **kwds, ) -> List[str]: @@ -769,8 +762,8 @@ def get_files_from_run_id( Args: run_id (str): The run identifier to locate. - raw_data_dir (str, optional): The directory where the raw data is located. - Defaults to config["loader"]["base_folder"]. + folders (Union[str, Sequence[str]], optional): The directory(ies) where the raw + data is located. Defaults to config["core"]["base_folder"]. extension (str, optional): The file extension. Defaults to "h5". kwds: Keyword arguments: - daq (str): The data acquisition identifier. @@ -783,10 +776,15 @@ def get_files_from_run_id( FileNotFoundError: If no files are found for the given run in the directory. """ # Define the stream name prefixes based on the data acquisition identifier - stream_name_prefixes = identifiers["stream_name_prefixes"] + stream_name_prefixes = self._config["dataframe"][ + "stream_name_prefixes" + ] - if raw_data_dir is None: - raw_data_dir = self._config["loader"]["base_folder"] + if folders is None: + folders = self._config["core"]["base_folder"] + + if isinstance(folders, str): + folders = [folders] daq = kwds.pop("daq", self._config.get("dataframe", {}).get("daq")) @@ -797,21 +795,83 @@ def get_files_from_run_id( files: List[Path] = [] # Use pathlib to search for matching files in each directory - files.extend( - natsorted( - Path(raw_data_dir).glob(file_pattern), - key=lambda filename: str(filename).rsplit("_", maxsplit=1)[-1], - ), - ) + for folder in folders: + files.extend( + natsorted( + Path(folder).glob(file_pattern), + key=lambda filename: str(filename).rsplit("_", maxsplit=1)[-1], + ), + ) # Check if any files are found if not files: raise FileNotFoundError( - f"No files found for run {run_id} in directory {str(raw_data_dir)}", + f"No files found for run {run_id} in directory {str(folders)}", ) # Return the list of found files return [str(file.resolve()) for file in files] + def initialize_paths(self) -> Tuple[List[Path], Path]: + """ + Initializes the paths based on the configuration. + + Returns: + Tuple[List[Path], Path]: A tuple containing a list of raw data directories + paths and the parquet data directory path. + + Raises: + ValueError: If required values are missing from the configuration. + FileNotFoundError: If the raw data directories are not found. + """ + # Parses to locate the raw beamtime directory from config file + if "paths" in self._config["core"]: + data_raw_dir = [ + Path(self._config["core"]["paths"].get("data_raw_dir", "")), + ] + data_parquet_dir = Path( + self._config["core"]["paths"].get("data_parquet_dir", ""), + ) + + else: + try: + beamtime_id = self._config["core"]["beamtime_id"] + year = self._config["core"]["year"] + daq = self._config["dataframe"]["daq"] + except KeyError as exc: + raise ValueError( + "The beamtime_id, year and daq are required.", + ) from exc + + beamtime_dir = Path( + self._config["dataframe"]["beamtime_dir"][ + self._config["loader"]["instrument"] + ], + ) + beamtime_dir = beamtime_dir.joinpath(f"{year}/data/{beamtime_id}/") + + # Use os walk to reach the raw data directory + data_raw_dir = [] + for root, dirs, files in os.walk(beamtime_dir.joinpath("raw/")): # pylint: disable=W0612 + for dir_name in dirs: + if dir_name.startswith("express-") or dir_name.startswith( + "online-", + ): + data_raw_dir.append(Path(root, dir_name, daq)) + elif dir_name == daq.upper(): + data_raw_dir.append(Path(root, dir_name)) + + if not data_raw_dir: + raise FileNotFoundError("Raw data directories not found.") + + parquet_path = "processed/parquet" + data_parquet_dir = beamtime_dir.joinpath(parquet_path) + + # TODO: This will fail of more than one level of directories needs to be created... + if not data_parquet_dir.exists(): + os.mkdir(data_parquet_dir) + + return data_raw_dir, data_parquet_dir + LOADER = FlashLoader diff --git a/sed/loader/flash/metadata.py b/sed/loader/flash/metadata.py index 210f7ea4..3324d6db 100644 --- a/sed/loader/flash/metadata.py +++ b/sed/loader/flash/metadata.py @@ -80,17 +80,17 @@ def _get_metadata_per_run(self, pid: str) -> Dict: Exception: If the request to retrieve metadata fails. """ # Create the dataset URL using the PID - dataset_response = requests.get(self._create_dataset_url_by_PID(pid)) + dataset_response = requests.get(self._create_dataset_url_by_PID(pid), timeout=10) # If the dataset request is successful, return the retrieved metadata # as a JSON object if dataset_response.ok: return dataset_response.json() - else: - # If the request fails, raise an exception with the error message - raise Exception(f"{dataset_response.text}") - def _create_dataset_url_by_PID(self, pid: str) -> str: + # If the request fails, raise an exception with the error message + raise ConnectionError(f"{dataset_response.text}") + + def _create_dataset_url_by_PID(self, pid: str) -> str: # pylint: disable=invalid-name """ Creates the dataset URL based on the PID. @@ -126,11 +126,12 @@ def _get_token(self) -> str: token_url, headers=self.headers, json={"username": self.username, "password": self.password}, + timeout=10, ) # If the token request is successful, return the access token from the response if token_response.ok: return token_response.json()["id"] - else: - # If the request fails, raise an exception with the error message - raise Exception(f"{token_response.text}") + + # If the request fails, raise an exception with the error message + raise ConnectionError(f"{token_response.text}") diff --git a/sed/loader/flash/utils.py b/sed/loader/flash/utils.py deleted file mode 100644 index ca4c00c0..00000000 --- a/sed/loader/flash/utils.py +++ /dev/null @@ -1,82 +0,0 @@ -"""Utilities for flash loader""" -import os -from importlib.util import find_spec -from pathlib import Path -from typing import Dict -from typing import Tuple - -from sed.config.settings import load_config - -# load identifiers -package_dir = os.path.dirname(find_spec("sed").origin) -identifiers_path = f"{package_dir}/loader/flash/identifiers.json" -identifiers = load_config(identifiers_path) - - -def initialize_paths(df_config: Dict) -> Tuple[Path, Path]: - """ - Initializes the paths based on the configuration. - - Args: - df_config (Dict): A dictionary containing the configuration. - - Returns: - Tuple[Path, Path]: A tuple containing the raw data directory path - and the parquet data directory path. - - Raises: - ValueError: If required values are missing from the configuration. - FileNotFoundError: If the raw data directories are not found. - """ - # Parses to locate the raw beamtime directory from config file - if "paths" in df_config: - paths = df_config["paths"] - if "data_raw_dir" in paths: - data_raw_dir = Path(paths["data_raw_dir"]) - if "data_parquet_dir" in paths: - data_parquet_dir = Path(paths["data_parquet_dir"]) - if not data_parquet_dir.exists(): - os.mkdir(data_parquet_dir) - - else: - if not {"ubid_offset", "daq"}.issubset(df_config.keys()): - raise ValueError( - "One of the values from ubid_offset or daq is missing. \ - These are necessary.", - ) - - if not {"beamtime_id", "year"}.issubset(df_config.keys()): - raise ValueError( - "The beamtime_id and year or data_raw_dir is required.", - ) - - beamtime_id = df_config["beamtime_id"] - year = df_config["year"] - daq = df_config["daq"] - - beamtime_dir = Path( - identifiers["beamtime_dir"][df_config["instrument"]], - ) - beamtime_dir = beamtime_dir.joinpath(f"{year}/data/{beamtime_id}/") - - # Use os walk to reach the raw data directory - data_raw_dir = [] - for root, dirs, files in os.walk(beamtime_dir.joinpath("raw/")): # pylint: disable=W0612 - for dir_name in dirs: - if dir_name.startswith("express-") or dir_name.startswith( - "online-", - ): - data_raw_dir.append(Path(root, dir_name, daq)) - elif dir_name == daq.upper(): - data_raw_dir.append(Path(root, dir_name)) - - if not data_raw_dir: - raise FileNotFoundError("Raw data directories not found.") - - parquet_path = "processed/parquet" - data_parquet_dir = beamtime_dir.joinpath(parquet_path) - - if not data_parquet_dir.exists(): - os.mkdir(data_parquet_dir) - - return data_raw_dir, data_parquet_dir diff --git a/sed/loader/generic/loader.py b/sed/loader/generic/loader.py index 3f799adb..3212bebe 100644 --- a/sed/loader/generic/loader.py +++ b/sed/loader/generic/loader.py @@ -6,6 +6,7 @@ from typing import List from typing import Sequence from typing import Tuple +from typing import Union import dask.dataframe as ddf import numpy as np @@ -28,10 +29,10 @@ class GenericLoader(BaseLoader): def read_dataframe( self, - files: Sequence[str] = None, - folder: str = None, + files: Union[str, Sequence[str]] = None, + folders: Union[str, Sequence[str]] = None, + runs: Union[str, Sequence[str]] = None, ftype: str = "parquet", - runs: Sequence[str] = None, metadata: dict = None, collect_metadata: bool = False, **kwds, @@ -39,14 +40,17 @@ def read_dataframe( """Read stored files from a folder into a dataframe. Args: - files (Sequence[str], optional): List of file paths. Defaults to None. - folder (str, optional): Path to folder where files are stored. Path has - the priority such that if it's specified, the specified files will - be ignored. Defaults to None. + files (Union[str, Sequence[str]], optional): File path(s) to process. + Defaults to None. + folders (Union[str, Sequence[str]], optional): Path to folder(s) where files + are stored. Path has priority such that if it's specified, the specified + files will be ignored. Defaults to None. + runs (Union[str, Sequence[str]], optional): Run identifier(s). Corresponding + files will be located in the location provided by ``folders``. Takes + precendence over ``files`` and ``folders``. Defaults to None. ftype (str, optional): File type to read ('parquet', 'json', 'csv', etc). If a folder path is given, all files with the specified extension are read into the dataframe in the reading order. Defaults to "parquet". - runs (Sequence[str], optional): List of run identifiers. Defaults to None. metadata (dict, optional): Manual meta data dictionary. Auto-generated meta data are added to it. Defaults to None. collect_metadata (bool): Option to collect metadata from files. Requires @@ -66,9 +70,9 @@ def read_dataframe( # pylint: disable=duplicate-code super().read_dataframe( files=files, - folder=folder, - ftype=ftype, + folders=folders, runs=runs, + ftype=ftype, metadata=metadata, ) @@ -98,7 +102,7 @@ def read_dataframe( def get_files_from_run_id( self, run_id: str, - raw_data_dir: str = None, + folders: Union[str, Sequence[str]] = None, extension: str = None, **kwds, ) -> List[str]: @@ -106,8 +110,8 @@ def get_files_from_run_id( Args: run_id (str): The run identifier to locate. - raw_data_dir (str, optional): The directory where the raw data is located. - Defaults to config["loader"]["base_folder"]. + folders (Union[str, Sequence[str]], optional): The directory(ies) where the raw + data is located. Defaults to None. extension (str, optional): The file extension. Defaults to "h5". kwds: Keyword arguments diff --git a/sed/loader/mpes/loader.py b/sed/loader/mpes/loader.py index 4737cc0a..84739548 100644 --- a/sed/loader/mpes/loader.py +++ b/sed/loader/mpes/loader.py @@ -11,6 +11,7 @@ from typing import List from typing import Sequence from typing import Tuple +from typing import Union import dask import dask.array as da @@ -316,10 +317,10 @@ def __init__( def read_dataframe( self, - files: Sequence[str] = None, - folder: str = None, + files: Union[str, Sequence[str]] = None, + folders: Union[str, Sequence[str]] = None, + runs: Union[str, Sequence[str]] = None, ftype: str = "h5", - runs: Sequence[str] = None, metadata: dict = None, collect_metadata: bool = False, time_stamps: bool = False, @@ -329,14 +330,17 @@ def read_dataframe( dataframe and corresponding metadata. Args: - files (Sequence[str], optional): List of file paths. Defaults to None. - folder (str, optional): Path to folder where files are stored. Path has - the priority such that if it's specified, the specified files will - be ignored. Defaults to None. + files (Union[str, Sequence[str]], optional): File path(s) to process. + Defaults to None. + folders (Union[str, Sequence[str]], optional): Path to folder(s) where files + are stored. Path has priority such that if it's specified, the specified + files will be ignored. Defaults to None. + runs (Union[str, Sequence[str]], optional): Run identifier(s). Corresponding + files will be located in the location provided by ``folders``. Takes + precendence over ``files`` and ``folders``. Defaults to None. ftype (str, optional): File extension to use. If a folder path is given, all files with the specified extension are read into the dataframe in the reading order. Defaults to "h5". - runs (Sequence[str], optional): List of run identifiers. Defaults to None. metadata (dict, optional): Manual meta data dictionary. Auto-generated meta data are added to it. Defaults to None. collect_metadata (bool): Option to collect metadata from files. Requires @@ -365,9 +369,9 @@ def read_dataframe( # pylint: disable=duplicate-code super().read_dataframe( files=files, - folder=folder, - ftype=ftype, + folders=folders, runs=runs, + ftype=ftype, metadata=metadata, ) @@ -424,7 +428,7 @@ def read_dataframe( def get_files_from_run_id( self, run_id: str, - raw_data_dir: str = None, + folders: Union[str, Sequence[str]] = None, extension: str = None, **kwds, ) -> List[str]: @@ -432,8 +436,8 @@ def get_files_from_run_id( Args: run_id (str): The run identifier to locate. - raw_data_dir (str, optional): The directory where the raw data is located. - Defaults to config["loader"]["base_folder"]. + folders (Union[str, Sequence[str]], optional): The directory(ies) where the raw + data is located. Defaults to None. extension (str, optional): The file extension. Defaults to "h5". kwds: Keyword arguments diff --git a/tests/calibrator/test_energy.py b/tests/calibrator/test_energy.py index 73b2d346..be3f63f9 100644 --- a/tests/calibrator/test_energy.py +++ b/tests/calibrator/test_energy.py @@ -109,7 +109,7 @@ def test_calibrate_append(energy_scale: str, calibration_method: str): calibration_method (str): method used for ralibration """ loader = get_loader(loader_name="mpes", config=config) - df, _ = loader.read_dataframe(folder=df_folder, collect_metadata=False) + df, _ = loader.read_dataframe(folders=df_folder, collect_metadata=False) ec = EnergyCalibrator(config=config, loader=loader) ec.load_data(biases=biases, traces=traces, tof=tof) ec.normalize() @@ -159,7 +159,7 @@ def test_apply_correction_from_dict_kwds(calib_type: str, calib_dict: dict): """ loader = get_loader(loader_name="mpes", config=config) # from dict - df, _ = loader.read_dataframe(folder=df_folder, collect_metadata=False) + df, _ = loader.read_dataframe(folders=df_folder, collect_metadata=False) ec = EnergyCalibrator(config=config, loader=loader) df, metadata = ec.append_energy_axis(df, calibration=calib_dict) assert config["dataframe"]["energy_column"] in df.columns @@ -169,7 +169,7 @@ def test_apply_correction_from_dict_kwds(calib_type: str, calib_dict: dict): assert metadata["calibration"]["calib_type"] == calib_type # from kwds - df, _ = loader.read_dataframe(folder=df_folder, collect_metadata=False) + df, _ = loader.read_dataframe(folders=df_folder, collect_metadata=False) ec = EnergyCalibrator(config=config, loader=loader) df, metadata = ec.append_energy_axis(df, **calib_dict) assert config["dataframe"]["energy_column"] in df.columns diff --git a/tests/calibrator/test_momentum.py b/tests/calibrator/test_momentum.py index 73da57c5..d033fc23 100644 --- a/tests/calibrator/test_momentum.py +++ b/tests/calibrator/test_momentum.py @@ -108,7 +108,7 @@ def test_pose_correction(): def test_apply_correction(): """Test the application of the distortion correction to the dataframe.""" df, _ = get_loader(loader_name="mpes", config=config).read_dataframe( - folder=df_folder, + folders=df_folder, collect_metadata=False, ) mc = MomentumCorrector(config=config) @@ -215,7 +215,7 @@ def test_apply_registration( ): """Test the application of the distortion correction to the dataframe.""" df, _ = get_loader(loader_name="mpes", config=config).read_dataframe( - folder=df_folder, + folders=df_folder, collect_metadata=False, ) mc = MomentumCorrector(config=config) @@ -264,7 +264,7 @@ def test_momentum_calibration_equiscale(): and application to the dataframe. """ df, _ = get_loader(loader_name="mpes", config=config).read_dataframe( - folder=df_folder, + folders=df_folder, collect_metadata=False, ) mc = MomentumCorrector(config=config) @@ -289,7 +289,7 @@ def test_momentum_calibration_equiscale(): def test_momentum_calibration_two_points(): """Test the calibration using two k-points, and application to the dataframe.""" df, _ = get_loader(loader_name="mpes", config=config).read_dataframe( - folder=df_folder, + folders=df_folder, collect_metadata=False, ) mc = MomentumCorrector(config=config) diff --git a/tests/data/loader/flash/config.yaml b/tests/data/loader/flash/config.yaml index 5070a840..d6e004c3 100644 --- a/tests/data/loader/flash/config.yaml +++ b/tests/data/loader/flash/config.yaml @@ -1,10 +1,10 @@ core: loader: flash + paths: + data_raw_dir: "tests/data/loader/flash/" + data_parquet_dir: "tests/data/loader/flash/parquet" dataframe: - paths: - data_raw_dir: "./tests/data/loader/flash/" - data_parquet_dir: "./tests/data/loader/flash/parquet" ubid_offset: 5 daq: fl1user3 channels: @@ -41,3 +41,15 @@ dataframe: cryoTemperature: 4 sampleTemperature: 5 dldTimeBinSize: 15 + stream_name_prefixes: + pbd: "GMD_DATA_gmd_data" + pbd2: "FL2PhotDiag_pbd2_gmd_data" + fl1user1: "FLASH1_USER1_stream_2" + fl1user2: "FLASH1_USER2_stream_2" + fl1user3: "FLASH1_USER3_stream_2" + fl2user1: "FLASH2_USER1_stream_2" + fl2user2: "FLASH2_USER2_stream_2" + beamtime_dir: + pg2: "/asap3/flash/gpfs/pg2/" + hextof: "/asap3/flash/gpfs/pg2/" + wespe: "/asap3/fs-flash-o/gpfs/wespe/" diff --git a/tests/loader/test_loaders.py b/tests/loader/test_loaders.py index 1d86585a..d773b1da 100644 --- a/tests/loader/test_loaders.py +++ b/tests/loader/test_loaders.py @@ -95,7 +95,7 @@ def test_has_correct_read_dataframe_func(loader): ) if read_type == "folder": loaded_dataframe, loaded_metadata = loader.read_dataframe( - folder=input_folder, + folders=input_folder, ftype=supported_file_type, collect_metadata=False, ) @@ -117,7 +117,7 @@ def test_mpes_timestamps(): loader = get_loader(loader_name) input_folder = os.path.join(test_data_dir, "loader", loader_name) df, _ = loader.read_dataframe( - folder=input_folder, + folders=input_folder, collect_metadata=False, time_stamps=True, ) From 75b7d81f236472b6d3bc2d81eb9d578b534a7106 Mon Sep 17 00:00:00 2001 From: rettigl Date: Tue, 13 Jun 2023 23:04:13 +0200 Subject: [PATCH 31/36] Bugfix to allow again single run w/o list, and prevent provided folder/files to overwrite run data. --- sed/loader/flash/loader.py | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index a9ef31a2..aa1bbd15 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -659,26 +659,28 @@ def read_dataframe( if runs is not None: files = [] + if isinstance(runs, str): + runs = [runs] for run in runs: run_files = self.get_files_from_run_id( run_id=run, - raw_data_dir=[ - str(folder.resolve()) for folder in data_raw_dir - ], + folders=[str(folder.resolve()) for folder in data_raw_dir], extension=ftype, daq=self._config["dataframe"]["daq"], ) files.extend(run_files) self.runs = list(runs) + super().read_dataframe(files=files, ftype=ftype) - # This call takes care of files and folders. As we have converted runs into files already, - # they are just stored in the class by this call. - super().read_dataframe( - files=files, - folders=folders, - ftype=ftype, - metadata=metadata, - ) + else: + # This call takes care of files and folders. As we have converted runs + # into files already, they are just stored in the class by this call. + super().read_dataframe( + files=files, + folders=folders, + ftype=ftype, + metadata=metadata, + ) parquet_name = f"{temp_parquet_dir}/" self.parquet_names = [ From 7d5301d7b2465c77e547d9a4c826a0a070a3893c Mon Sep 17 00:00:00 2001 From: rettigl Date: Tue, 13 Jun 2023 23:17:57 +0200 Subject: [PATCH 32/36] add parametrized tests for loaders covering files, folders and runs --- tests/loader/test_loaders.py | 85 ++++++++++++++++++++++++++---------- 1 file changed, 61 insertions(+), 24 deletions(-) diff --git a/tests/loader/test_loaders.py b/tests/loader/test_loaders.py index d773b1da..fc93e419 100644 --- a/tests/loader/test_loaders.py +++ b/tests/loader/test_loaders.py @@ -17,7 +17,8 @@ test_data_dir = os.path.join(package_dir, "..", "tests", "data") -read_types = ["folder", "files"] +read_types = ["one_file", "files", "one_folder", "folders", "one_run", "runs"] +runs = {"generic": None, "mpes": None, "flash": ["43878", "43878"]} def get_loader_name_from_loader_object(loader: BaseLoader) -> str: @@ -77,7 +78,8 @@ def test_if_loaders_are_children_of_base_loader(loader): @pytest.mark.parametrize("loader", get_all_loaders()) -def test_has_correct_read_dataframe_func(loader): +@pytest.mark.parametrize("read_type", read_types) +def test_has_correct_read_dataframe_func(loader, read_type): """Test if all loaders have a valid read function implemented""" assert callable(loader.read_dataframe) if loader.__name__ != "BaseLoader": @@ -86,29 +88,64 @@ def test_has_correct_read_dataframe_func(loader): loader_name = get_loader_name_from_loader_object(loader) - for read_type in read_types: - input_folder = os.path.join(test_data_dir, "loader", loader_name) - for supported_file_type in loader.supported_file_types: - input_files = gather_files( - folder=input_folder, - extension=supported_file_type, + input_folder = os.path.join(test_data_dir, "loader", loader_name) + for supported_file_type in loader.supported_file_types: + input_files = gather_files( + folder=input_folder, + extension=supported_file_type, + ) + if read_type == "one_file": + loaded_dataframe, loaded_metadata = loader.read_dataframe( + files=input_files[0], + ftype=supported_file_type, + collect_metadata=False, ) - if read_type == "folder": - loaded_dataframe, loaded_metadata = loader.read_dataframe( - folders=input_folder, - ftype=supported_file_type, - collect_metadata=False, - ) - else: - loaded_dataframe, loaded_metadata = loader.read_dataframe( - files=list(input_files), - ftype=supported_file_type, - collect_metadata=False, - ) - - assert isinstance(loaded_dataframe, ddf.DataFrame) - assert loaded_dataframe.npartitions == len(input_files) - assert isinstance(loaded_metadata, dict) + expected_size = 1 + elif read_type == "files": + loaded_dataframe, loaded_metadata = loader.read_dataframe( + files=list(input_files), + ftype=supported_file_type, + collect_metadata=False, + ) + expected_size = len(input_files) + elif read_type == "one_folder": + loaded_dataframe, loaded_metadata = loader.read_dataframe( + folders=input_folder, + ftype=supported_file_type, + collect_metadata=False, + ) + expected_size = len(input_files) + elif read_type == "folders": + loaded_dataframe, loaded_metadata = loader.read_dataframe( + folders=[input_folder], + ftype=supported_file_type, + collect_metadata=False, + ) + expected_size = len(input_files) + elif read_type == "one_run": + if runs[get_loader_name_from_loader_object(loader)] is None: + pytest.skip("Not implemented") + loaded_dataframe, loaded_metadata = loader.read_dataframe( + runs=runs[get_loader_name_from_loader_object(loader)][0], + ftype=supported_file_type, + collect_metadata=False, + ) + expected_size = 1 + elif read_type == "runs": + if runs[get_loader_name_from_loader_object(loader)] is None: + pytest.skip("Not implemented") + loaded_dataframe, loaded_metadata = loader.read_dataframe( + runs=runs[get_loader_name_from_loader_object(loader)], + ftype=supported_file_type, + collect_metadata=False, + ) + expected_size = len( + runs[get_loader_name_from_loader_object(loader)], + ) + + assert isinstance(loaded_dataframe, ddf.DataFrame) + assert loaded_dataframe.npartitions == expected_size + assert isinstance(loaded_metadata, dict) def test_mpes_timestamps(): From c1b1af124a4028c185e4b10c59d54b3e01c5ec55 Mon Sep 17 00:00:00 2001 From: rettigl Date: Thu, 15 Jun 2023 22:14:49 +0200 Subject: [PATCH 33/36] add stripped down test data for FLASH reader --- ...ream_2_run43878_file1_20230130T153807.1.h5 | Bin 0 -> 2250600 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/data/loader/flash/FLASH1_USER3_stream_2_run43878_file1_20230130T153807.1.h5 diff --git a/tests/data/loader/flash/FLASH1_USER3_stream_2_run43878_file1_20230130T153807.1.h5 b/tests/data/loader/flash/FLASH1_USER3_stream_2_run43878_file1_20230130T153807.1.h5 new file mode 100644 index 0000000000000000000000000000000000000000..02a04d9f9508fd7b0e64bf490eeb2740fccbbd0d GIT binary patch literal 2250600 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%0Alm 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

0wpcxMdkz3?jL@^ZLtbJ}mg9*OPF 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%0Afwa6Mg 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�~e`9O`yy<|>zsYUO03O5i#kNPQis^S2DD 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

8Cx zjjwz|f7!Mk9;MAE_G^SoAs&EE;lHr;p@%fWeAsdcI)tacf&Oo-hj|~ahxst{EA#>@ zH*SQV!@%y1FdY{CqaKV_t8B_7?T9>`}&pry=0)=P{SF;kN&-hcP&V zd0Ytdu0S7f@@MMdt+0b@gRAh%>tQy}>sdnI!{NV-6pi{aW4AoeM#F6VT6RRBuUzg&<^1$ZJ!WEVi#da zyB#@<*c9RWd|m5aeU^Sczwe*lf5zkSd|db8y063g{d&Kz>t2(!K45HBjCUJceR|wv z5l4++{#o=1OQ?Gfd_EPuObbl|+WL`a7NYl?;Fx}B9~Sm!Ot1rAZ-WJog{Dg*>;gFt zp-re76`JL66@H%!t9If`c<&IlfI~&0*$d_9d_0VJ5UoH_=eQaB=ae?jtsOVNhc(q` z5mx>K8^P*0wuSxyx`Xx|7#lSIp6C10CgkPDO-Ixr-Va36EI9sW8nZmxpCUomEI*!?+p1z$HA z8aGYh34FDoTimRNJai;IEiVsE0!}0D2f}c!jfEem^9?NE-cl$&H#8Q8k7Mj`>F_w; z`4Tq|k~b=$b&t5Y=+4mGhJPwRzN~~`UugP3HFY+inXqQ&*Vx3z~&$#{Ma|($H*yMc<(n_FM>oZVgkOM6Pk0-M;YWaWgZ)dP1ubMtG*?#LM44Y0*O+_zK0kB zvpF=);ZOMXO4yu*?|9~J_>}dd8X7##+6zZbBcGC6uL6fAo?|?ha9?@5*1Ms3fc0)Q ztRX*C!oA#E4YRj|W;#@2!!@v!vD^n0tlif^Y&PvfeQezXW)Kro;Tdea8I+qBKq)$# z0_RUb8?fk%xVaHNd!1N#13er=JVDvRp}D3Jd9xLIhYP!r&*0I~*c;}Y95>V7BG*EF zG?@(t(V@XMb;dFtXiYxr2>&2&Zi3yDsE17!4##(JA-2B?zAeDNu%uJm+$GqDEQNkI zh9>-pn1d~shb9Sc*NL0=;7}LlI20d2y#{ep7Y5%&UAPE}VU>xS$Klqa(E=Fsd^@?} zCb+Q(AA;==ni+6*o4A<SV(* z=CBT`Le>sg*&MsTX2$m{lt2h`$%EHGx5?yk7|@zL3mve3d-#C7wG&pN)nzblK-`Rn zg~VYJ{>Zp5f-WP-xiDZ=X!^lR=;BrAhiwPI?Zne!SiT3H!wqQoTG&{@nBdc%bzCFpA&%x;FBnd>&l!QUPKi2Yzw7P_6lng}bt zpdEM%-E4z0p6SiAec))~tTk-!MH|qCeikhyKH%fi*|)>`D258L@nEQGOuJ238%oh5 zl%kulPz+@dDDYYy-n-<0b61S=`IGvGr(}MQ;5)Y{PD^ z!#;B44{%fgb0QbylcQsBAvyN~ILO-AD34sgIAgGueD^e5@&WxY{`p)>h$4Ip+1zUg ztMSt=*02LG9N!c}0sDYFc!1on8g4;9*TL$?h;b;nA8o=y^gMkr^M!WI?Gol`VM!z2 zC*Xd@zYI3A?rnz$xwZ_xCSO*=O0=;Qs!n9z2#eP6EW}Qvf9U-+`*r9|KRrOX)xk9U zG6Njj{O8|{2Y5i zoo(zhVEi8D-IO>!4jsZ(^l>R%%)YZ6MsMdj>QL+mg5v)}rhdDA_??g8D=7 zC2V{?G!A-_XG@`YDt?9Q(8?0Hg5-%{X5^WOS2l3OyLOv^iB~P=a!0qU9GvnC^!+v5d zf;^s$!PYmhGiV?7GVE-LJ(x=un0Q>=Oo4*)Xd4Ecjx8ZEn7t%4WF5(YKi$N;Ep%p1 zC&K&!>cHq~_Hnyt8w~ldHk`y*_VLVKxQe{C5F9!2C8+#>`jDti`w&BW&EdsXaq|K! z!hd(bKJ2g`Zf(vx&@jddgN~1zBG_wrp9V7x%}ou>4``ttd2L+dxcP)wuZEI1K8EZ9 z#ssUGTLLQoL~gv0`~?@%PdUsX7t94qd-LIvd)Q;b<70Whf&pKJraLScNB)HZV!a0p zybF6lc{5_3K1*SBAI8-;H0KdJ=R%#c$Xk$e5&NMjyh}_Y-tpyhsKb7(07_3I7sL1D zsJ(DK8ZTsgz2R%xI0QTI=Z%9Z^2-kRn7JgOG4`(u`#)tIP=IFg;Rm~lS_ zBgh3qU=#k`0L83Dr@}_o#jmyBLmNGR49$Oa#wTcc?0)vl@MAsph1l#`^t1p*FAUA) z1s*CXUN7~X>Y5-cY##LC%sP3AK$h>>UVVEX&mmG$U2{Cza6?umY&q6qE1OWp%F zm^=q(65AoHdx?1d3|~VQV`>C9)g^~Q7xK~c7g*C_?;(5#MU1frtZR<1$UQwl@3O<- z&w0EH!dK*hJ&;YTPcCAOhHhxS3`U^YA@DUk_5pd0{BwDndBVH&_W`WWN4KzIH`<4t zTzdyD*+-s&tdZCX*3QE(#A7d5Fq{~HE3k7p)F(gWz}A(F9lq+0FJTeBxe>PijT{co zqrdgAiCnN2s?hIpSh;{TxhWckKVXZ?pu7$9cjy3SpTN5uY?_N*p~*+=dtei7z5vg) zC%3`VXl^acXa7(Em!W~np%Se;38xO^vp(o|GV_2h(T2g!dN)7B@g=u1XUNCC%TK|d zFtZK&7&sj*Xun-TEPumXtKr9qyhC+hJ%P&^^IYhJ{<=d`jvGMN9mE6Zom%hKjqybj z_@*JB5kfy=wlfSSKlO(z^U0- z`9u5&b8o`0GN0Dz~ z19sg4>Cf=nOya!^Zo*bKL!}MP>vgCD<>Z{{@O(S;2?x2KMPH5J;$!*D11j>c9lVYI zW*4yLz{}*$Myo^97G`q&cd%_Z`&p-4_`jz?QhTo>c`eEb-xQ;ybS6KHm@3NrJu)l?u z$ltGm;(TYE&j(=eLDnm1Ol;SMs>?(3ElgxTFa?HT(?PJ}FT?}PVLY>8@b%aL^6QWb zVElx*nE+2P|8?-zQ2Kzn%)cp=&LFoz{Z8lsipg_jaNmjSbKt-UZ|q$lL0sGg+nbPgVKy;-Db$&YE#R`9?9X6J zcRpW$9%He6Z*m~S^7-r^l3#>o50uVBi|GAHcn?i&hj9(b(@?~{5GsDpnoh2m1)tQW zU$~c8Sq^JY!CznoF%KyClxN`lA&i&Y_5suPm`5x-t8=Cvk$$ju1wmJaou+!h$@|i4D@LAFP@r(m1UuWHcH}I+QQ-?EX z^DFix31S3h6k{VOL)WvQe@FJtuzw-`xQWlKULYQz3$a@O+AnM0ybjGh0Z%gKHLx{_ z&fxJ0?4_XSZ1zLYlJVCEz0(YUH9s;Y2s-F*%gnP0`*`eA0DT_iJ$@DI6nxPMd%;_1 za|(K%28-aszoJpdSw`H!jKI=wqan&9WAk00j%qZW?=zq$c->@D9^)c{AIV2w_#duu0t{Q9R}ynZW%OYFWwTC z_u#V=NWZI%FmZDhln@KUp)T_`Fc$k%z>AaO=2>`?vAhg3iH{4xj1JB3MiPtg$;rIi zKrU|1W;a$^pi>Ki5!WgBlIgXrM*|H5#bVK#c}!G*F{~8V%HFphg2V8mQ4gjRtBo zP@{nw4b*6$Mguh(sL?=;25K}=qk$R?)M%ha12r0`(ZK&}4UFb{p~gVtqSS9I9K-iL z9Shl9gMf2S8_Hbj45I}9{j;Ui>BTwddwuOGa02)8xpoxCkp5kR^mi+}LEIb6y?|#R z{hiIKYwK`M8~PmvTZ?1R?dlcYRIa~w%-hu^vr?kFHS-%zKe>Xzs;OJWfMVt?XGb37X zttIuDqhZYcH$vKTFN<@~Z+Zlv-(k@2Z|J`5z;S+5w+rVw=6QWbaWDlYagBLcY^`zW zd!z&ApB}5)3P9gIt?!z)eW=HL{Jh6-+#F=9Vy;n7zonz!mpc4ADcDuNp`zbRbH~#b zZO9(-!(rcR&aJ4!T=iR>`fgy4<#{QY-~ z>pY+P_{mW(DB&0ls*X92vCN{Z2ekqF2l9b_(}(X+mv2-$o;C76@DF@bzYWuq5)DXi z4opYxV>8)12mu{CX<0UbbYIet@V}9RRxCCO#BtQ29ewAs|K4c&_I|)88l&{%@+m{= z=zHDyes_!J^t(>_-f(?KxNN8ID);SZT-~XwzJiWg_OjL|J}#v zd+9CTTQ6IiA0hIEQ+&v_Aq=HWwU15oTW&`B8Am(Pn|z3G^}Xaqw#I)J0{K~U(Y;1o z>qL15*TMUmek@}Rz{+PGI37tG(!Fd+yM|}gr}BX#*7V)+{`dH>hyTr-e9Fil-j>Ww z-y@!$gT`Pq2HAz{`aW_;>A%;ylyY*au9Xk<-Ta1Y%*p>oAoiD^G#`DJy=_k0XLBqK zFi!v7+{aM11?;Riu<|{4dqp-27=O^6>nC%+E^TV;%+1dazq^)PkM7HV8mm)IqE8=> z_)@vb^Z;UB?b`+%ga5v8{1Ipj=w096t-1T(jbYqA9?zsCulV09_!o0zoU(()>(HKs z!~Nj{`NHTK=BPZXegka9KaNlRUgHqX$%D!viVMxzPzEBG-byR@!yY*O}$>E z0kw}G1MKN&Tbk5(UOrZ2xBgt0Z}ErbY={B>edp4p z;sj(reb2wXCtvG@VoJZ~pzk>MYfoM7K`=VHM}J2B%AO$27;L4O4Ek~0jAMM``{kN` zBf)F?B#!AX{aX>zhVP5thVZ{589nFMDcbb$Mqc!OJcYL9kF~qvC+A86i+F<o*wv z+NHSF+}m)Eezo@axRuTrkDE-X*uwT{`$)f5W8yi#X3)0fd58bhwtVCi8)!y0GT6l1 zka76m0I5rWVbnS=HVJ{AY?Jo@nV)w+NU{qGcDPsOp%pZG<;qviJ` znlCm?|5k?ADsu@m2if{)&^YA-#wvR#);#!MdiA-He&rwUBedl8Bpb;t>A8*PxRg5h z)X1i-DQVxJZJ)c)r7hx^dAklk{a`Gm`UR~K-p>s=2gmsI8)?C*l=v^eZnB+UtD4Z( zAkI}M%E!tf@={2AfJxmI_JtKBK=!~KJRM${irW} zG3J10>_os`(ueep?#qA>*p3y=M1i+SHBLEOTET<&f*{WD3GS>b6$s1 zNSD~t+aDcB-+{D%KeRVV?`16G(r@bdF`;ua6()mxkDX*ki=Wc-QXUlnxlivG_AJhc z@56D5J{&d;PJuq$=h(`Yj9>d6gP$!v)BKe4{JizsdD5|Lr{5CNUaWEI-0uN2Uu^Gv zAX`Jg80A~NGZ{gf0k*X#Q%~cPow1|F=+5R?zE}H$xYmsl`)J+vYj;oTFdtXKJxJH} z{y%|h*jK((JXX=VJ4hkC6#yj2ieWXF0rNG zstK5*6XYU|Gp%u-Pw}DhsI+78O#p^A{rZgEWqVhTd!s3tm*218E1%C9r`MR~S`6sS z#|iOhc$fCSLoB_JTfAna3!YJ~(0IK+u%{*dl@I-#HE)jn`b&R4jyPAY)bEw*H(IUi z#oV>_%H~$Tg{AAv)heDfXHX0|#_#Q>+?Jl7o<)1g;j*i3$1!v8?^Aj=mHh_tEN#1d z?$_lWe)VzAdy3-L`>j3q$EBV{AMPk%9^TiCSNS}s%{`vic$IUNtCYvR zeI`;@?{4^0?{(T=DE8%B-*;=SfwU;w+lJ79I?^+KP;B|!CVL9>Y^CX_j(p|ygq@Tl zGzLfC>QiG;K387TzEhfV8beF!Vo#09ziUw6uS`H*9ywqy&DOFb~?#mArKqx#AT ziXFvJ)Th<}X~apB_)d1zdyU%mdaTDe*eG@#esPL>H0a}l`D<+y{@sLe=(@$%%0(7! zAD+K{uUWs-$Jlhww}UpU{Gw|RpbPoSe}*@LYxu>liOkDrjJk(!gw`U(j%=d+sN&C; z(je^z9YAqZNFB!Q=gC}+awod?I?%kNL-_=oEAMKb8K5;E!%_ck9Cfgn6SJs?9kr)Z zUQvGV_F!xQ(_`j+Mb(SSPj z0lNk2TmF$98gosIDpZIF|CR?o}+7Bof&(uCiC(Wg_t*k7?GpGeD2>$2uun|oOtGfrtq zc{ixV`DCs$PM?nzpL!pR)?}+^nV(<#$;k$-X`k!jJUa}C0ewc`>q%Se7u1*2I-=*8 zmtUjkSN%KslaHi7ADgnjbf7umL&c?)4LWeFHHXjY0_LLjEPYwoYY%MqU|!mf>2uP6{{23Zz7<mx@qW;l zj^|kLexi3%^`+eC{iC(AD|OJY)&?WECR;k@<@XrUNge7jUk94M)(wY00%;VR8DiMm zpJ&vz)^Ux|Dh9#(r$2Sjsp35#M_7Tq0{XJDRded0J&jRzu<~<0$MhLU57^DWV`~g( zRiEQ1&s)`%y+FTXZnC)Ffn(y@X)J{t(~op$z@a;RhN9~}7uDuE^Fus--)eQtSbU7i zK8#%;S=N59{aKv%;a+dRc3RicYnETL z<#YD@hx>`@%BRXvvP&Rcr%QaNbB)op;kt4Hn$bLz52a_HgNaq;2hBq{-`iULz{U={ z`gj?_J^2{_Is6z*S1TUCZPf8-S2Vmwblq9zt~m#CXd>d zPq3}t$q&zwHVxyKevRS-6eodVPw(-{4}&-#%sn*fwW7Gm1MI6DDLY#5S~>HYDYR~LYdCbg&g+<=^Pz+oh$b6pY{t*zUIFCW;KS8QhhQO?T57nX*>r11?bq3 z!?Z6|JV?{hlyvLRt+cPdPXyDrj*oJKCSz(2vjaI-oYm#{C`z4k-Kk{UMkr=A|Fq4EIj3LC*eqkydZm4r@Z&s#lIOIx3+c^k zn7*}#lI{I_4?gjB!v;?JMO*T-_d9(!bm@ITAAykm@*#`sU^G8rI0i@C4*e-l`+TN* zj7jtI@hF?4d&7MPb{FURoozJYV_$91u3sqWy;A zQohq(BS14w_7-~Y0TXgOl=`v@F)5u{@c!mmjmfvaoBGm~?8JEGE4}MUpMFotI!y!IUC*L!3(f_4R6f_fQCigA#_w;GcjQx0&hY-#{WGbLU1T3~I`@=E)DLaS?gF=Ny^qkLo|J7}#j5Des+a+&r7A7PKQkM%w%y~$?eAftUUb){$d%KM+bwC+eF z-tO9y>2ovXF~;R{QWD#eQ+&MPAL-d^T4TF_XR(oTos~Y+H~!JSz;y@NgnCBy!M5^~ zK6BC>1NA$C=Ro~?zjUP@vEj8x9mDg&Mty0&t9`fZ7BI$uT;SWlR$4pMmQ#DQA^$1A zX^j3|k@rRAVcP)eLqHwb11$#9_Uz($`jJCw8+@fIaqU1ZVVz{+7EdKn`^!X zKOMFaajbo-;XU7fon!&0Hj=(opLuxOXK`Kj*E~5k_{9=?MxccN%}Tej zqkoQE7xd?NCvyYYMt)ZQl6^H#*+*-Hd}{E!#TKd~U;3D0+#0{n198exke&l$^=oOm zPF>m&vS-we>IU2w+Jh-xw4YKwQK=j)jT+V&{}}>fmtM5?81kIYb;N}gij$w2C(rnG zjdus_k(AdgXm2Y0%kGLlGl+A1W4m$;ny&#H&E3ZjwsW#Gw()xaeclskMtMkc4-C)J ze;_StKJ8Pe55IrR<9ZiRKN@Ed^#=p~_VngDXx-L3siA#82kh-~s89a}9QN`1RO%`p z`xsOl@{G@YtOI@zqUk?0_2rzsk>97#j;)=#uei`VjC3#iYHU7M(13guaPDYF zxlZw_wiK5dqtjgEbJ>0nD25qlAX-ruq!;1y5?b(a$#@;4?PBO(|7OO>USLk*d2q!k z6gM`6$QE8BCsK!g6>Aplr`vMO!)qKrTKQP_G!C`hl(wUFS?@5?gXXUHIM<1L`P3!< z`J&vZHc=B}TRO8=hA`0sY99`nN{j28CRUbe6WaV#UV`dI}ha;?w_~KN0-i1b>hFj&TOk8`r&EWl!k@ zUHV*!PPE@LT-P2~v7r1bZFzlZ4~M-2^r+n6WJ@skLZ6KrJ&)b2`o$+2i+^5iFrGj# z7jFyfEt^Y=jxoA=T*q$dHOS{?Y#(IPCfBX>hpqisw9ZJ&ApHi?f#O(NO}DSPX&ytk zKZs-2UgdFzuKXHWi!zJr1(cxA1mr8nyaUafwv>03+ZBICbEa*rt&VnFB zgPzb;i|d-Z`jD?88)~gn&OJOY*$8}Y)R>4F zN56)=qnOwJ%)htE#tlI46|7l?eggF)ziM2{d(tfPGwN3{djaRv^JCKciq6r!G;UAj zxF4nL20qv7d1+enBNtowyAGf+&B^L++(a-C$$EdJf2aXiU;LZVo2|k2DGMH!5sW}W7Gk~e7b$DIf@0p_Gx|Mvq;Uy z$OqWfGWNr5khAq!tN#6)BbOTaTjT6cUF;%%`CO)w93zcsjEC0)&6T=-Jow)4hX+wl z`J(~X)vx-KZ6O!}MIhaia}6jj7;LUJ&aYAJQuU<)uZL)^dKVMvwc_x&6dxdecv~<} z%~5NK&&Al*YfyV-#W%k2@i3Bl;ABtwmv)rX{5za^Iwdnw;a!-`FZPyL=zcHx@ip0@{Db|-R8pm~3~KSd=Gy-qZS##j*6*2go`4ckB8$G17#=*G6Nd{Q$Jq8)-{A zM3=5Rr9L+iA?HJ*dKwS*RjkQ}ib3tyd`wA`5a3T?>!t{_-Y_SJEwrEXYx}VrE4OJs zp!H6<}0LG$M~g3Lp{ZiU)zZV#ZTIH${~(xR_NJ5DSSNQPp>m<;)rj*_hnzF zy`3NXFzV)k+CBqDz;Nm*@1rT{$!iL`xelp*)R!aw>OEic3&2M4C0%QbvYF91ltY-W z#^UuWKVlc}2gL`-9?HGi1DLK{lkW9ig+B~^D!=-8lplIY?(UqO>p zsW$z(L;G$>io>>79OO|~ajAOvOYH^Z5BW{kR5z$i$ymH!)E6i|wRclKC1IvM2hwMO zXwPJE4i0_Tew-@@2>KHN+Hrhz7jhw7(J>-w^5-(H6e&IZzs5E|xLNU&=397vx82LVGuT-lEvm z9?scdm0z`Yla2J8>=R($^n83?(&vSpxkg-gd&njn>zZ71owgU0l?EZI#lCLihy`QV&%W6oIDFud4nS+Sa#7HeXUN;Kk;bd}%NI`ZN!SM_<+{~9t#v|wv(tVNEjsGRpL)0Uc{-nSP!3isdEeq+*+uae5EE_?=dulPt}*(3 zy*?+X%Q@PU{(OEpnNoJ@$2I2TeWrZ@`Ondxk&e)l_M@gd_vzE;9__ys!^%kzP|s$8 zw9tx@y|g8#cpcM!P{4DHMSB9FcsJNyvE>-E-!C$6#jp1TbMSF3pXzyR=>5f*0<|Ik z$^Ut&HvHJ-5B6Ciz<p!Frz>*J0^wlgpYl-t@hARfQI~g+6d}uj(TV6 z#x?Do^^O#McJJ*X8=`yVaR0Zhk(Bz(6I*#7jpKYgGy~@1*H+~wY@pn!`O9w(4f=hQ z;*L2=Zyx2*$hTg@(lXbKe5QF(PxG{zhd@_8hBQaC>vN^X2IdUTnUf!z;-N0*8asYd z4)pt#wj48m6Mfd@ueau2JK6w~PyG`pvmp4A>n@vODZ z$Aad}xYKdw^KI0R-#6g1^cvzK?Hsl%c6R7o^9uxX*7M3^27ErlH{R#6A3AcfIaquf z$iMP?ea;(joi#L&);a-m*Swr`3-YtqJTW58%HGQ3T5GiTP|T+DRWOk2;C0RzrF*rb z`S>+2JJq)Ap=V_y?M0Leyw65*tpvJq4g4IXDeSJ;_clU*DEw!SivPhJ zXY}dU!5D36%-F_aCp{|-+CiZD=uJ9H`&#RjKI8NGrWSRiaR{Vs@{j8d=-rVcypNfK z-^(&z?cEG*dTm@liFQ5Ozi{sJTR*OMbH z`3kIjFB_0c^zV4IeyT0ybA8^WcN^80O*Aei4a=SbC1=N_>UfR72qMsu!#<}RCfy=PGe(rc2B3&jRwP~1t&CI>WD z;@#&d=~DN|DUN3?e(`@t)q7i4u0h)7PWq6|sN=xuoH04gk+n@ZO#8wB?JDkrlT+yP zVE_K2`J#zHc2w+XydAmL0n+2cmS)MI6pr$@sN#Ai+c_6Ws52P-M)al>B@t67Gnv7; zm=#e@DK3kcO(|}OsGt;!U~$A!%1l;rE>=ZUQi^pE&r*u@5sq?G#H*Cz4XBFPN-4HS z?4kS&evYVzZAF8KhLoaFL}N&ToiVNGWcLxS0~nEh%gT=U{G4VHa@@ z=8lNPl)r)Hn&(bRFiTQcO3z)CVD6z@dIa}zF78iZ64VpR;K3AjIrqeh6y{;Bi$_w} zRa_U3rZB6yo`HRg>tG)LZ7kP?S(Cz23iD(NOX+!_*C$U{ebF5AKUsBVOnFTM=6+#XnP6%Ks1Bxt4+cUgz0K`9TW5PyUd4 znS8{(WQxP<80Y@@V@kn0k?{X6VK>KV{>5zKYrpI^tUMC*OFgYU!#0)w7v+f zcMwEaO2_)=(Y~YZuL&AZ7cBcX5onJBer?Jq^&Xgs<6LN8DS`+`DYVBG>GjsJJ__xP zGSOP=BD9zDu%2qYPGdP10c)!;+H-@Aa4K2elN$G>GvP3 z{ejm1h=Bc~(7sXl&jn-uQ|diixFgBq8fXuzJ*s0J&cwg3=W`GAE-GAv-zT#6Yj2`G zK_-TMfY5$NXiwnx1?(e&BQWfe(%U}y3{+g2#&zN51h_D2*5@7eR4p1gHmYUE-bhR|M>^|LhY@E{tltf z&Gq@Ru;7m1@V`G8MjdfR3jJHdBe7@FMh5zf#(z#TlDgo|iYTEJqmEz<=ivYC+gQqR z5#uRAe4WG|66ArUzEa9 z3iHPl0j01J=3&7>)szs-O=13vXCR2MmbSnhL6UP}=KY!&=b|jaQHsR1DIBFpMwt0L53z`V zQj|p`D24k=3iDU$|NpUo`w&D}N@1?2%?yGYr~@t{Ntubck!K(lQAR0TL~J4VGAQF% zBqPjCJfDH(Sh$GbX8MORu#kvwlp=9UidY5xKyU{gyR0>`;9i)bUFj8eD= zb36ATh)7aqV(#ERBqPce^E}vy1m$nxxSos%?xcNi5lKp6me5v2g3{cTBA^sDB6c@+ zfB@`L`h#Rd>^`nVBq-B3j?={M=XofLu$00@Bq>EK5%B;e*ds`A?v|x64>HyaVjPR$ z2+BCm#4P7I2qMZTMIypH#C>oPW(DU^7GWtxLOh%zNhyMr5sy%UjYv>t5?jSsAsLZ) zl>6Wy84>)AHlQrRQf89iT*MxSO6o?GQHo@Qd4lmnETW83#Mbak1__Qu?8y|4QpBG6 z-znps1s75FG{$DgJ&bm%ZyR{H_t~{%3raWb8r#CEA#>8RmKyMpcF15_8RR$kb&h`xCnj}*<=!M zE?k6to%-U96v3O^hXf?6Qt+d+yicZxQIf2Sk5y^a4uX#lJb9}Y#VKZQ~3_{ zBFuLBfLMg3{4Ek(7Y>pUWjkmKTtw_W=9fVk$C+5pg?ayfupEm-griK8gLNlp?k}ML?ORjALOT5n=wt^H2sZ!tCK1#3Jm!c?KNB_WqiH^Gqz~BB|@2rm&PE z8Ikym{=w|~HL=fW8xj$YG8vKhg6k0bGDScsY(#=mI0(KsRqvY= z2}U?$ zFbz`VP>O!=b|K{oKn~fDmWJ9tx_Z?g=zh3$~YGm zDj*S2MVX8!IGTAuNd}c1i)2JBmoY++K^e!wMpRIWM1*O>SRf~&lCmlyXiHleBsmt< z5y3Hx=Ljk|PefEwimHgpcASHYsG=0fh@4{?M+OxfCn72-Gf8qTa*j(8PzrYh)yFel z$cd$>pcIwhB69M$2eBh4;arp*f#tlQ{jVwKTvSKobf8U$MU+sMMU+$8BdFk9R6%t_ z(2+T1kl5ia^bCEm(lh4>A$|;47s5pUff{RE}it31p&h*(O zMFpiuM3}B<4RSIl;J7TpQi_U*O3JE;B&9GXrif9Bf+Hy5T-YP1;9R(fYD$sQEk%q{ zlth$Kit-3cnMnobA`wwVDXJrKPNH21A`+CDRC6vWyZ<(h>!RS~6lIjcMpRH{;y4${ zBQOQnE24l>xQLt{j47g$Qn-j%PwW8&P!>^1DRO$Hh*64yh=B4)EZ0OOR7Vu_<{7Ar zFsCp^D1k(TqZHK~U<{fyZbKGo#m;1)ee?#G@xak3#E)7ir zw(bqhUU>C|&}@ctI`TYB`YtrH;82seS=l;n9)LAT>cA;o;-(K2ToRhzV7~~>JedDu zXzqgq<68z-4~m=FV8+Bv7JSb5J6;u<5@@+PG{?d8uR;?$DQ+4RSo0jVff_uxY-5O-9ob)nqap&aNzsU?1w*`7&o(E z)$5^I3D04ljj+3M+xg@U(3lMmCDViVZ)7&e2|r^n6h z58^-g@T1V|gu%=+4hF zPT2lVXx@YIQ?bFmkiP?Pjq$z>Kdi@QaNRb12|r+~+&8fGcG`f>Xs<1-&Bd?(2+fQ} zq3L>%>oCkRceoXMEr5%9#LXXJ1Ag2Dw{^$!{4#FQ=#LWz-T0$(q@A1t=Fz+*T4c8NU6>#k-*b+JaGG+?2xE4dUipxP~!XXxlArjt2J(F#(iVKaIW%9w1GVF3HO#CZH~kqyA+$U-G=;DUO{|4M zJX}K~4ZWAa1UP zDTkOp9Eaa;J34NTrCdV!D)ZO^J3GeB2k<^)PC|8@xxlH|w+Nmj=QyaJA2*HQedh5V zByPgyQ1wsZ9CnP2n{BY_eRKlrU1%PI&r9&jD6~$W$3X4?Gz0_C*s1V9Gv*C#`jLy^ zvoClC9-K&ygy~;~X2>LTKp!u|z4&Y?wCGP;FcV!oHH-QGfjMKN%ZP`I;2h#(7Bs>~ zZDCtLE`CL;up!y zu(w^@d;^0RQ!&h8PV->`wjTjA(DfK%wiNz?{eH&Q;YMr%%kbmlFq*tD6G|UMzi?|^ zd<4N3{0qZckSo!ph1>VDEE-MSo zY-o#z#oX4{;i~KbQ zN+-w7X7srl4lsu`ud^n@0d#s0T4UF}Z-(YGn70#~K^NxU8LGMeHGKXjbn<6>)`#^A z3W(hg*#mU`Dl}KHCiKSVr@(OhUJQvpG6zuXRKmr?+-0COs{vFu3C)Hn_@6kv3+6N? zXG23Y)f{SP#m#};p|}0!k!TE^oCUc{(ehf>@#nD>WHGmF=#Fh$!ue4@XR_Wrz*?4o znb>Sld;A3ph_UOTurzLZL3!`EIUmf2^t>4MKg_k2p&4BrnmdTwrLa7g`9r(0v#xVw1P=%jiYX$o}*!mhJ%*L)`;cfbT51u{?-$VIdh-;YJDsHZXA?SMqyoo=y zz@b@;<4L^h;{80KSpkGRAeT#`iQjhnWf5gdgi*+oR&f{lXdm^U0}mU@kuYFF2nZH5YF0j19W-4C~BH zcnR%ohV{(rA8-k6TG)to*1?vkp-IB+^T-qM0Bh1pSlS6aLDfF&1<(L= zV%~6C0eKhQoKNg6_#LqVReN{_3Y()1c!jtaHj(uV@)&bF$o>affYmQzN4Tax*KWYi z*E9a-m?O-%l(E8>e+=uNYw85C(SU_KtPcrvsp@{1N45r^H zkef|?_>g)06PAC8ZsB8evmLUqT{djlhF@VZ{ceJM=H45Q3)!2%Bp3sgFA?)_FEP9n zTs!usu=+IY12^BsF|;M#vf+j6*ptC~ThR_IWej(~#G<%KGEc+W))2mJO0I^omgE)k zMB=}(A8h%AXJIhrqMU# zJ@haDOf%*VyN9yhhu5(2R_OT={$oBjJQt!RS>(8bp__%f&E}dH+%yZ zG3L4OiXm3ucYU!BT-u1eHax+aydIL&)iX0jvHyfA#LYUWMB|UZxs2~jn1eoEJ%+JD z^=XV1hH-o{sen{$m@k&p%M4%!yv6Yu7wXcs<(8*X8)e__3ViRgSRJV0(uK=~SS7L>C7PlTW&ITPlxkGcSImh$cd z&jr{U-W|dFG3;N2c5Y+;))h^{Qx}puU>CXL0K9^3H^X(T2Nm!_H9CcrKjYUEnJ-i> zq+i|-1hU4meiH{d@I*23 z2V(Z^~K(Yrm1??%{ z0!zFs{hIY2EbPP2)$n|OJ}ZF2Z+U-!&Di`|=tv%^3(ct04)mG8bn@;DZ2dRvxE`i7 zqs_kf1d13_9|*?sEIds9T>%}a*BO@Gj18gidGE_45db-e?2i$Txj_yNu#kIaC=)@X!1#-s50x$J4q!#2k-K5#wBS6~|QE`%+g zfsO?{53VI`jA#E1^6#sVgWg+1lJ$KU`;mZt$D@}Lm{=R%z%M7TKZYLU$5V$gZ>atv zG<)C>>&FkUh#b2TW}uA<=)$~$4?+{dqXpO!rl9xASID<84VzAdZBy9qV5{Fj9$N1V z3y9ZipxrOzYiLBiX#&r(eyoF?f5-03bvXR#UGfZUFN~X)U@F?10%hdb(XgD{wwSi= zhsAGE7gXL3Z<6ocfL7SNBkXw{JHYegycZxR!FmiW|ACEQHu1R_5>O`(t+JlH3{$&e z_Z!LG@C7+&G3)Lv@bz%^gfJf;Rlq>T-VvIOW^V8zwq66VF2n|me3>{Vr(Owd@NEvv zJqEu(Z^mC|80{TP9)e+YS-&7Lk@X5TKS(@7K#cZ>?wyE3`1W+-6CC3`dP3af!#eIi z0ylAOAq+=vr?SQr!wr+M|9!lJ(?>SzsrHZ!cCfa?k{sfLHS;I@|L$w#5LiB$5~gEM zmn7Fg_8F}Gu#23NgyWtMO*h!&SnpsYd%X&B#bQXDKpQZVIGIhZy%xUd!rlU|r;Urd zvo^rG`e+%}6Q8T#WO8VCDF2?mA!iDCeJ#hZ{&I8zJ@3SJ(EW4zhxu*E18^&Sto@Pk zLP3+b=>o;*WH{`+p8Xb7Jk0(Q?jcrILF2x0(*)K$Nqm95ozIKlqFSt9a5=1vvA2ba zhUkKRM?cG+<#DtQK^1eIM0`L#+Uf)kOyV;LFwe0cqwd#n_8=QsGr^E2YJuy|`UV%A zMT|i1w_Jy>kHSWe5qmKG@4P?3C7)qKxTOJpg!38GW$-nA{T7Pa={=Oa<9m!7{zKnC z{0)E6#yr+<3p=kwOR)Ek#5OG9xqBdIAew~s%w>T53ZOs2kboZHAw$4sJ;OW5qtaL&!?cfedrA? zX00xV`sBlGxBuBANq>#;<^_ zCsPkvGRIbsM_ZktKI6=Ra>hLtsw(g^tc7&^#=R!#4 z;cv+A$vXpt3$ZEa-DW+kjBHi@47!FVd$11StNrk&9C8=jKz_Iy7PEJ`7q+62D%idU zE%3}>SX<55;ojqTSAYQ}y!XSJU(h++$9i+G)*Sj=3f&fvFJSH(axsi}n|%-LJDShH zV8u!71>p6*tf5dyE@}_13?D=w890%aJ zW_(T!g>h^EB^QNe&T!TZsOUw!uR>$+1wQ-^zWji_9CSdN?V%BUw8yUnFsB1+25j%g zJ_vHqQwvym2;ac|e=`OMcut=&@Byyr2>bC}Hg=o+ANHWo2VWOK&Rwj5@E~(t1*Z?j zS8&bg#0$(ISDp)n!+8&cY;3mw333=Qu@E*8Z<}ENeme~c$uSS%%MR!@1{3k$44Bdt zt$}Mto`20~FE<_GH-~6lgu;*T8*F=ocTU*Uk^Xn#bLhT_*o4G-YzAdbvF!!K+mFN>HoUr*{KDG! z67PjjIf=hL;Fp=K&)0y~y>H0R)vyO!R>Q8l>5FIIg4d&7I0w~4)y`hBp7eQ75 z`&ZVw?eHOcoPUG%kb~j;+T;WH;X85wH2NcZJ1A&@@5wpyLGPS1;6|QX00H_O30J&N zK7{)CeHl440R!{#DHKzG8vdOCJ-=t&ghKK|FZdAKZ-TLmc|6qm3|+v1NAWf6y`Ikj z;N7*vACwS-J-hHM80@;c1Nnk_*TEoSrx>Q=yO}VRHE#+$%e~c)vt}~>3GgKA%(Jiw z{X5u*uc}}#^|DSR=ffKORtXcxALC&!>%+&ey%V1uL(dTmFM+q2&sNBt#s2?7;^J=N1DX-@xloI-*Mrg_!~@JiOYdjLO%kqa%G!gb zdqS*;H5iVc%)1dBm4gOh*l4s3ow3bao|yy3)nn}fN4p!K3Y~3*o=ce%>>bSd4#B(V z3g$Dm?GK<$c#APr!Lh_kJ2?9^-k)J6a~#F>QrO6NK1N47A$MeIzpBsVhQa8K$1Ot4TBjg41R&}LD3uN5%!N~ZG+ey#4C&$K>zUW zgY3(fv(7X|-|(lF>=)sHVhwKZ%Q^)8Hjy(xd!PeQkC>_jIjncBVJEp^Gwkbye&A>3 z_&H1`7nZ{T;vT}ei?$0&U*q}xOH5#bVK#c}!G*F{~ z8V%HFphg2V8mQ4gjRtBoP@{nw4b*6$Mguh(sL?=;25K}=qk$R?)M%ha12r0`(Ljv` zYBccwSOfZQU(-Y1ag_RP2>rgizBg9i+ph0Fd1p9pHd z9p}eVHsxLm>I|hE#JR@b3;5n`eMh%{el+JL+=Ij43EiIh9cY94{yU0!#((c{G3U{o z_4^r4br`$8m)V{KvXRCChwZ|={co43jo#FW#u`vs)oTK$Qm0SqzW+X4=BVFe(05B~ z95yd?U+w7kNQC;=cSP&^bNnjQa~%09z!v&0VsCGJ zkp4dC;7qR5hG8zUqrSh_(SA^$>-9M2*xOsFu6@|Aus%3`au z9i$2W{o~`PkAG}k>L0~@zVAK#eeMBvb;OOqC*JP#so%)ccf;%VQS|-YfyO8M5r>+G zz9ZdYL+RcBMo3i8;s^cSijO&bF0ESXsC|nD9RzWXIS=TM|JgY8doG3Cqps{{!PKFo zPn*RtSn7$OC`H~EZq0@7|c1CdYp4lbyU}Ap5VWm`!tTRsfDz?0*;;L zkBb z%69TwHpiftQJgyY7Nh~igylJXN4Q}gf#%beYl^3VT+>{ojUHTQyp|Z(_h38PH}vCb zaa}fT!Li^O$1}2-&%d)M6{r2V)(`SI2j#>-V0-z>BOkTrnE7~(o=M4X3s`hyyKp=a z(29PWM!!Ggebtd`VDl-_xpJP*Y5cB$HC$ufPIE_hPI;&s=h9_*T*Q>(N}3n?zH!Bo z?C(OZNmIm&@{yAdO8_lc=4cfIO#pud*iUm;-08da70*Uwf#Dq6NY~z%vL$&$@fgsq z&y~#Cg4z%0U$HNgUyXc$ZS*@vUd#03zx!SN2(+Ns@NKHyXm07!qA|brP2(Q+^ZsNG z`kr~|&&L${G0em3Me`8+wu8nO4CA_ds(DLK-KooOLg@F5m1~r944Tn6{qH(xzKwWB zagoP!*g?5H2)GVf6P)Z#>24J5q*RN6UfofSAlR;z8~E-1&dld(&_|tMYz(1wsfAU=s!-LD>mm z6G8}^5QcItB8oGfvQDC{h#OctS8;%wa5GM{SuGkJk~v|dkxq1yRNnFJGdWh$hc$9%*nd( z%v|oHIjP42W2w$rU+o0w%Uta5T*Tk^U(9oiCCdwYBh#rff9eIFW{MCo(* zBMb2wG0U9HscO;d@%via^ZaSt2YqNPYisose}lijHc=*hg00kDpU|^)XYmYUspgsK z9HSv^XN)J<5+_ZMnXwmb%Q#%0%}uVA=7PxK*rU>J=o$?a2%pX8n!2(d=9s}4vVFB2 z`HOKHyXFZ|hvpgS>pt3O<1My@ZKM5zcxEo`LVwKWNylXF7WIu%6M*4a%r@7zCM{?cyp~K>Q zxgNe$4?|r0@$&ecp0pR&$&LLOiT#js^}2q+2Cjwf86?)nov6QrbI|6+^4M0-n3=|X zY+n|0>~-cZVPAg(2wzm&8={2JXg?;k@i9CPVQe}gIB5z&seH>V}W z6Za-_3}IJe3M#(W|NWQ`|DYLjbW)28sW0eEJx1LQ&z{108$+4Fb(0(ds9S|)qOVKpH7K3s_o%heXLFj_?-Ik+&y#Pd_p*(3Y+m)b?W7*=mt5bs%=vQKc6~aN z>*~t+@|-y?GdJ_C>vSUCV=T;7{cCskHU9Q=c23}WQFo*bi1;M_`nkdVkb9_D-%sT_ z=aGx?yD=8uFZ>NI_9ropA+9?X>#m|beUAnrH|xWxTnBySdtE*s(0Rsw85`+~f-l0> z_{%lBP`{!*ec~Q5_HC`6_6-{!PN|Q{akdpY!xshH#2#b;_tdU&jXsUlg4U8~N9>uk zF>}w_5t8-Qf;NR%|M0iDB>M6mb)0X+A9l*vB=R`->JsjufyhPJpn`k2j8DR!yK)UO zv6UISK8g2k>=1h`=e7_0H)DpphI-gP@(i}A-k;OJ-sMFcI~T@R%w^h)am4-sO~hJ` zE@GZ1avi%{KVduT`<=*rYNa3dXuiWn>^AL(cDmdzkaaxyh-~K^cIv@LU?Mc`r zs~hj@w?W!@3Y##m#Q6Lk=KH1f&8^zNeTu#{FSze^Z8PV(cKYs=nP0`u+Os%rZG9AI z;}wA3qEGGQnAD0kJq-LF;T}d^OyPd((>610y3fgw(4*Q7zcVMFuV}&?T$~5t z$~FDEmO9Qs+u;xMrdsyC`J|pfiLWdD#QKKr%;SkMneQuY*{1uTu%C7U=k1y$?sx1n zw2dDke{i0#Pa^+XI`0Cum59kL`6+R|9}CzkGrvUKrR}*6enVBy{rqU`7y2|_s{W+? zV*4ur8^_)Z`#2x%VO|K0(6>2I?b>EpOL;n_KAOd|U|u$7L=HQJQr%zhKlim+I*7XD zm%={9xUI)O$+PD9(8V5H(+>E+IahO;bLs$f!uNe2V)xK8`bgX}hei(4 z7TBoRu6>|2eN>L14eZfxTb;Qti#7aUj`5*;<%&IxZ!w+<_q2~%)xT=PH7L*KSg^PG z!x+^Ders{P(pI^}gnFykBSW>`a@t0ZwT+=*=W-U;uunAx=*zV>@6R!KJ=RRdQyrT& zaJ-BqVOQ%#Txw65!FfLx9k0G8uZ2G7r_z5}252*Z{)zR&ein0#X4J3tF<#VI)$h#L zJW^RZ%mLNs=W~1rb?H;xnh%^y*bm?6BiDqY4Q$Jp@%@T9#+o)nU2xx8=-Y8sNDC-i z+mXMlrv^`>bUyeXzNNZO?!tAn7_o=_Lg#z)y#8j)N&j&_bi((Kv>nHwZ7aIZ_`!FO z_}xq96#CX*j)8H9Z5O_sW9Gd6K0opWTFkajKN)*eAvTN$ z?X8_dk9%>>xUCm?3cDuh$Af+YZI$s+tgq9!&-^2H_n{QW&G^$fz&MRv$6kH@Y|1lu zo_hABzO!258GkP{){ho8=&;&M!eWQIaw>p!1U|-QEb}h^$*67`+yO3jSRvB~n$Y+RyVjeNK zF(&nuh@rwf3-k24x(dHA58G9*-b*qG(2{$`(Bl+JQ0uNIv8K?6KHHLyx$a&gIX>-r zImgBw+H!5K#wlY})A}uRf?i_m%)OX5AW!Dnew1j@cr>=+-Tg(J4{?v{;ky$kcjsCg zbL`1GTtnLhTSQJ^{An(2m_KH7&3QQ-q$+@v(-`Lsp zMSmLSjv@Vo@%inN=ly<{e1>=_%(bXH=i;;UAL|NZ3mxL0tj*7d4%p_QfaWuKEluZH zeZ#%Nb@i9j6UXY+cL{TxxweA7(MMrJ=BNI|oE`dNuC{B8XLaWO^Hh$pNk;p&RW5*w zIA?C=)gtz7pN_A?J?2qYag8}TPv_*Cmbs_D`}TAn8*Othe8}_eH(X~d)t7Zc|JXRR zg`Q#^W-V498GRJ|X*`w=_1AFi9GJ%WE|kniznFI;_hN_Q+|iNiSnRLb?+5qC6?#Au z#*q4REXnaWPi)Z7pT%~Uat-~(`_2ovw;y%;Igj%#$J9&9xR1Z|ncoTO{v3mOSIR=# zI{?UQ=Gf$35yGC>Fy`+wT=QOLeic2%e&-DCw>c;FxAAW2IP7N%ZK278eGBbGyNua2 z$u&ps-n5&2Ke_UAi`d!ik|IRs}>LiESjj7?)C^trV6jQXq1{>Al= zxXtt_YE3(2H3Hfx{5y$zj4eC9A?{sHiSN{o^Qn#z`u>YpCbrxItK*1Ca-Zu_#kR#U zId0ceQCo6ggL<((Ykz$~Tlpxi9mzAqULB^K2J5(P%&95!h%w`DYx|qo^SOQ~Eae)6 z?XkaOvTixNK^wM}@O^w=;yZWdS=X8<+x@7MxHgHpXspca^_OhR+~WH?=tdxsLnkWMG^{o2hy1P@!)xb4R7$$f3kd>|@lcV{&ZG$9_kO z_2g9QZ`Y&WhW3uJVHa)V{C%e|*IPPQ$D^-pFV@ICde0b(=Gh8KO=)v{5jkoy$B@(& znlWF7AACkzIKS0B)Me7{#?VyI29TFG=5Zff8(c&BaS?ffoEYEY&5hV8Y^VL{SG#$w zV0UwPMbn|}NtDLA{^gq2i+zqzt^=QC%oS~z7k$5sy%_a<##|QTA)aGy#ADul~{%5{8GwKF*`>^j6b_HtjY zMk0Tk$G^^fG?&$#vFU$5z_Izwd}rS4`z~yRe_R7gqO>j9jpv2&NZ5$|O5`D8!<=Y7 zaV{|*<{Wuz7T29SdROxid&@azuHg%8t9HyQkz;Is9@p?oZN7;;<{8|d#y$Enmi1dc ziQ^U2-JWypWxi)GtnXr7G}df~{2&n*#s;~nLN>Wi z&oZGs-?4p{(a&lio*|wpbIi?8ktfhap{(``U14uC@EI z=Xc+PRw5>}CG&7Bv1Ze*dj?6`Z>U%1*<3RpQqTIXaq)gJg>!HWq1DqkUd=V^rOvfO z*om=*F41S?8f~;U_aIvj(w>~#|2eRRbMvBer;VicPT;;{>i8kK~GoM*(dIkk;TTbMh2*YbVAeByDP%5^lQt|IPf zzhW!%Q~Y;i#>`$Ew{e8FT~i&?!M$g+k?V)+nQ?7hb7#daV*DA4+Cg2#-iBu@b+X#j z-o$`waM+tM$GZ!Z*ZbDUa*b2|q8TJ%~K(T+mEFE{xdp z-~IijaUl1gpC{cj#eB32M7-0s??2`qW38~CGES0cw=SqH^jyq$<~reeytD4a@s1qh zpU5N4x2_BNr9g&+-F?S0zSWX#*OeS&*Rbt;O8Shxx92{DwwYh)&u<~u$w9G3pe^-R zu&eng+P9Bcp!OUG{t4SN@5m4Cld!eEHHHfRwv^F-^&G!?%~&>P*XBF@W;?FA6+0Ey zIoF)9shV`&=)20^T!+Ye79rU&P8`!u0=4Y7 zf>>|+Yl(3{Ztcf>#DsBwF7@S{hWQcHlQ}&@!ruDZZ#(Y6e8-PDt7l{LAnFPJmdKs> zvhd$axCU%l_uU`x->dgyz_BLcBkZNl{hU!_Hv%$_|!;Y4zV7bOo_eYn;$Wf>C?4) zi^lw>#vUSkHJj^DwV}2ggjpPeWjw1*v2Q*b4g}8CXJ#z=vOni7C0dP~V~o0A#J}bc zwcO8xjz=xzW4Nwn&}`VxF^KU%DegV=iE(Wo8Qq&hv{BYZ#9HV_n=rn}2l|t-nVTb* zx<@^Tb8Y)P?)A0ISo8K=gRFjuzsQ9H9M9tz)Q9nJy^4?3nz84*av`Q;FMd?7jo3q@ z8TZ6V-&&9OEA(3q=2_YemT`{n3geAE#VSf^d+GjMljCsxTFP@7XfNh&UWbZZLllSCLblRAEjD%RP|&ftEYLQ7Ls`eUnsILGZ5Ac* zk+l>4%=&o=rM7VYkIgFMiu1`_1HXd>&ReZ%SHC^z1O1DgisMA{>OMQ}J-Oz*sqegu zJGEta59ey|PK3g59Z z?G|bCa$P8*e!+F9901s;kON{rPM&c;;v5oVH@=JZG^Y}GzAN>wo8yYU5$Eb0`34d` zXFSH5vD;riUHc+VhPdYXAmqca%`wzh1K7`hr;G2&>Yq3$#H(@L&r3;vlXK#o4Ifl& zAra&AxNbZ8n7EAG>bdPRo&>H}#;oIvxTlRI_O*&@+S29=6XUkMXcr$up46_|$-TRKU)yAz zaU9`auajq^O|+FD(|!ftxz%nW-=#s0A@W#jTVESPiE+o+(S77c{jeHN;ht*@Yh2_s z*HXv8c*VK&^`dqqIX=fW1kTfA`$N<26?2zsY7bwjUGsm~n3$~E3SU=H%W7EPN$mUd z9q%^rZ2`Mf?J}PdA}_L5MSbmQyY_3jn6{vhKlEL7O!Seli~Ez=X{wolbcSo4QanrARk*ZHl z;2JtC=qb71z*h0TNz^-i0yX6SEogqqgB#HsP5 zc4A*o`{}Fn;}{r=Il?xp^HyKjweYO5Q^~Q$ld)Wn=NKaY(Qd_W<~y&&J^Q7N%vjA0 zg)!Kc`^@+z>Hgi=)h^lx-GwHxvwIP9kT@^3RQ0)F-$egvsDK(0^Px6#j`~xLr(?Me zVN35F!a2mg-+j6EB`y;&CFVn8Nq<$wrN5K?Gk<-Wz;VXZ&OVt;Q8Sx4G+^Rc>4 zI|F{*qE~aoKAcaXEl^Jx?L-V6#<|+ZUQ(EsWAU4Aa-3*Ry=(tihuzoHR_xa%QUBx~ z5mVSE(Z4#$vv>yL9Ywo70?wJZ6myt)(C0*dg;sp0X+DT?GXJ7a)sc2)9dRv*@80G` z+9~+ReW^ZDkHKo%JDKBkpgl7sdMnH&;@miK?VZm#sF~3C(VUa}BA&F9(6idp#?0Aq8pEL*a-4a(lE3=*t98zx-7{Mq z{o-B&-&e+%!Ca+Z6XXHvVaKc=$+gZWVKehU<=KpV^rL$$bB#8Pca>SxbBs{?&oFQ2 zZXeN?T7bSijk~&t`@~IXX+`hYH8u8X?&Yz)xh<0mV~^-wkyx+f!h{Vf*PX99yW;1F zHEiO0Pvl^19&=zmvEP|N9c_lc``RqVy!GfyKd0%O?*V8~-^L!>d15E$t#-9T!nRUp zQyxG)z9R;-5p59@5o@;V93g2N$3p-5M$+-zLs#L0CDd*2-&OlFPx~wO*Wz6bB=LK! zHfO97Idl@&>BF@sG`pH}a+f*0LeW--_ApmOzHltsj652-6wStZaU|#Zg7|gqh_yU( z-qx9_wjmu&36(iG7d4sjMdZ}Ql=LU@U0^B4__?Chgni9xp&{R4uzTcN=j9sDTynE< z*be)J_O$1@9BW6kSsXXx>iaL=Z-~p#C}Y)+89&-*#C<=9Gfvko|81~fr!C){PUATB zKqS5Yl@k*kalEw0Af*g9GUY@@IG1Z08z^OLEAHl8?uSi{&6M)Y1m-TIuf`RWQX1D$ z%2?xOO1YzPC#BrexQ|jcH6Egr#~V*l%8wgQQ_3^&%f@#42qrgnqLgWk-6&;xV;@R+ zLE`|*BO6CkE^aKLl;ax5Q_2Zjv7B>R0Vg+3qm+@x8I*EXV-2O8+gM8}7c?%UoXAC- zPvjELWnJSBDCG|ue@rPaZ~O_RTme@$UQH>bN1+U^qJ;Fi=TbPA^m@3aN3ncUk3t!| znQ{VY1NWi4rAK-z=TQE(M|ub6^3KNJQTDlsV<;0yf6p~}_g1`zb13g^ypQvndlX7Z z@9$A4x9|@fPaxew9l5|H4PPE_ZLm$2o75duXFJK1~Vf zGmZNwB4s*XUp#MVz;yxwzD(qQ&@2&2&+}lpTeW+CSBopzQ;&brb3v#3XzTw^`_G*;wZIb&P zC=K^dQX3_6ZvvHL$xHu-x{PO*_sEpucVoZVN@=)vk<{toHyQE$MEuqv@y<=@oJlF8wcY`x2p`O(volQGX8}Vrr0JJ>ZA9gG?!< zQGcKMTXPxL8u_KvhqSIorj+tWJu0P?m-R?5rydl@SM(^9!Jkq>eFb&?tVh0*Iul5* zOeW0W$up~ont zl*Zs&xDKU}ucsfVjd4mzZ|yNo8N7|MG4^))fZ7Io?R`qFu<1LMi#( zJu0OPj`hftlHSuJQ_5(gQp)K2p3C^n^a-Qy?~y*h^Nmr;i4@K!GRC=782pFlQaG1% z3)dT&Qbu8{QE%mW7;mHx@(c_@oxnK9Ta$02y~g0}JOgBH$2kl(#waB{ z_FM)zm(fQ0KKEe|N@MhK?!#E4Qp$K^@CVd~45cwnDWgyD9E|?3#~7tl7<{rvrj*e} zp_H*k`VnJ-!A7Q((Fu%u@5em~<@i>VpU@_x&Cg|!b1986%0B5S>OyIZK24u6-YEaY zJs4}0pK=a^KkHE_Wvr2YPJ56Wqm)wm{5Qvtp6M}2DdUZ?U(goRUvdowf7K&X)@OT+ zQ}#)}rX3h;j8aPd9Sr`4dNA4;qpS`7qba_Ro|Fa}qm)}S#! zJ*8}DY^0Rh$U9OWMz&%-=cTcUQZ`Rucq(&+3?q$EN?G67Kq+ItgNvZN)g}GVuK8 zk~x?4jWJ5u+(`Q}4;W|+Qc9ZHW0+EMV?Cvm#zxACY~ox7_v=w8C$fQa8T%a!zJO<7 zq_Kf=A{#lEO^x+0WGqk{gZuM5WEg1_O4-;Lrl>9)HaF5N>;R*U4U|$R zu$kjNX*OekQCJV@fF1*sG6L%x8z_GlV_cVwTTwZeO^tENiKIF71p|#?$_%58aZ1_T zNC#3M2DW05a~WwAO4-=hL@5J9Jq9Udq_Lh-N@D}1j5R8yj5jt@_Q?k^W*BXZQ%+)w2f>GGmsFa&!L65=1m`7uTQbrr=DWx>VDEm~7Wm99^^Wh%jl(M-ocsPB) z=vJ)fTuNh%av~c!m)h7&Ig!DIvY~nZ_@mxkZm$AksN*P(y zV?Cv8Xp9`mbyz=v!m*6Oz)?L0DJL?_xr{V6P)=kc=d!sma5U|}aATBGHg3fx&SmhJ z=Q7OsM8-ImO|ZE!u$Vqza00^|%g9!&=Um1bn!hpU!oTRGmGG?> zbkjpn|E!a~2!FhLH~kR|F6*TEu81nV%X2$vBRqI`H{B199obFahc(A`(?xK=%x;ThY#Li0C<*aVn8SbV2{V*wY(=-@8pEh90_s{~YSlCUMjd#+k zV7p&-c$ey?w?btepMZbH7WcrVCwJ5D!@j@j&H2)Uy6MzCyJ;utOoKfb(*XP!?LG>h z#rGAydO|m?e^V#D90osv?_nC++ZXnE4>~)Fn1P%3Mnf<%o%zCQ^nEg%gZ|dQ6(iUe z9_e<|f5IDg?WSv?JlRQ?!X5i}(}&=hx1tNUmpR@Kdos4^aE@)lGjr@@VL zyXh^EkME|%@EL5n3I1+jH+>M^d{-yk1m7Czrmw-sA&d*g_a)w7ZtbM$@HBHjnDGw7 zz1aPJxb)^u8iiM5t1IEHC*eT;BDv- zevkM+ANH7nt>FaX`$)L|)=s(;#y{3c-+^byWuHHialqIGopd{_-kEX3b@RLF?Qr>1 zo%BaAga$@n?)y4v9&F;?=iud^?4;ATr zK8DZkhJml67kDvkTmqB-oV*C>0Q3Y8X7a{-d_qj#Mm%kV(Vfsbe04G7gC87#W`2x6 z;g{!j)34xB{Pb1$N9=hAd;yAT?55|#raijp3$SuExfZ5;lzG7y z&mx9kCUe*q#_sH-_rfJZ#4Jok$IqNcefk=J%kJo;Uv;np@lny+$6)s7h&#AvE^~vq zr*_jJ@MY%yY4{*($=&d%_Izz8twsB1!X?;qm%WG`cqQ$;2EK$H9)MNE@^LU{8fz=u zyg%cFm*M*Yvu4r{Z2W!JaJbs1q;dFa5>}rLm2o9c@Gxj>lN@1jPG6WTVj2?Ggu$UF{|My{Bty%S%|aeb<(qc zjfP${Y^LyyUc^{64Q^vinFN)BlxlddorE@*!RoqJK*jU z@BzI0h;Di(JoH!018!uzZ-rMbW&MQrW24()_?PSxVCC0X%ivwCOEEtB1lh}XVJJAJP%Xt414qx0&^WnmO@1%#{OHPG38GFNe`hO|BjIpkV z8(zrz3iq9eR^jMq>IPD)=sT7>CX0VIO#s_9riAJ-CTBVDgcS1FrofV}^sU-)wj<{f$ArnSCo<&ha|9 zX)3uNK67g)y><+o6YB(9jLwxbK9uw0{Zw=N#55xB<<7c_C}XQD_jR zGsd~FdOvb-Vm*Rq(ETr9AN;uknCGs-##fUAUb~4r0;_&T+wh)~$P-}R{m$EoEm;3J zxefOFDzO9CY{xzV9%3)D8P<@iN8wE7Gz$0sg0aFiL+I^Pdu=Xj|0(c5rxi|k1x%GB<`gY>|Luea)y%pa3EdGOU zps`2bH_YSLu!y{NILtt6JHrz@bkk2@{ga*a0CT<%o}#^fhe z>VskabaaY-UqQb8Q^=phmhd?F=R)4qE`lre>ZCU^$Lpc|h`LZtKwI!N^l?A@ zXeaCgFFp;Q&FQ9pAzytKz6~!!v+Ln;?E6F5>uCCi1s5@2d^HD_eVFwYE@2(N48AZK zJHQA23LC>D_TAIq?+(P)u<9=vA6!Qsc@?a?jhKONuy#ERZ(}U?y^}Q*_L|Q=08U`- zKMt0C9KFF6jO7RP^(4H7b>eL>o7^xHZowb7!i!$mO&7xz_p`>`vGr5f^w;PMenQMX0cT`#G_2f*Jt%DVTkLu+eZazT-a}x7+;-Eu zS!W<)%MrA4GTc6c+yNh+N#F2d;{OtuHpCwEbTkDU@ZlTbb0?!$_!c|@-y6W^_~D~) z<@4Czp!XeCvtNSqnC~bUpEIGpfIS&}5v`BItkIValh_ z8~FY|^8a8j=6)%p-O%y_%n`1{w=VbquwU41W82$;mAntBl z)k&{`opvT3VKo{trVpq8x$u3o^BDXq+WQRLgg;WKE&e{6`!IMcx`S8UM~Ux#jgPLpk#}JBhBv}H(96v*`F?Wdzjo5k$X}D0;|nYuI8{Bj$bzs>&XcIocI$hzv z(9tuHI^?~R$c5PC12EGR)2~P;bW}%6|UcjwSj)0z6lNfJ!3!*)8IAO zd_HqL0lx7Y))aUM8~L8w!Tu}YaI|q8%w~SWaMy0+N@C_xv~w9;kNs|hPkxSk{z2?R zf16=s6}CB!_=A;ecz=PP9_~9R^~g`(g-HjY=^^w?Y`g-lKAxC>GrvWA!Bq5m-`Y;9 zFp8GXgSR~oJHUNQ-G|{j{JkCyJ%&6FZ{H2SKsgYN!u@x#R>QSVFdn!aKfDXhAhy@S zF67P`aM>@>4_t}fu7VHmOi!e+j&H4&S)o2N!hH>#rsLALQKu?m)vIg6r|!TjAkX;Un<-$n{WIMX zmiKhH;fv@L77*75!ky&aXD)ziSaW`j?O+@oUB6J8UFh z4zI_T@ZF{O9qwf=p8@mpOjymj_N~L&E6S`76T>W4_>bU%$V9`fT(Jf5F&Z z2Omb4cf+v@*-yjIvE{&zh)MLg8$8IIzYLSG|1@~_8rEtU*oY2Rp#xZgo{xpk{s4`^ z?&N{p;8uL`z=z58@S(ZP9cIpAorN-obpbX^<=qEf`F!*OZ#V+&!5Zv43g?j zL;S)#^m7cHqJQ+$Tr_nsvH1pk4L7`roQREQ!Zb9u8$3-;m`ZFc$KEU9)(+3Xqr3AA zxCeYOya{dJ0FzfTb~v7RJPy7Ha~R`+FlRsJ3p9|PzK!=K*2JkWh;|NupMIS01n`IG z?FtxsA2|s&Kh1SmOYEHmA0uumEF|~Mg^j1;`#(T$@aAcJqkvzLH!maZ4ri=;5TjQS z8z+1fU4H}n@a(g2FFs#(1NwpAaPLug4}QB2-T>FaFPZ-{aMiI~hu55rAK|etP#-3t zr)jYF4&)~IOYC|r>_KeKfFE$}8My!5tmR)K*R!784i}Q|R>HC;C}Hh?u&;rPedfc+ zu3_r&2?r%T%DcXULol4$=OPR|Ba2q=R47~45>VSPe1%GrR-`HT& zOtcCIGnYlMA2#!QeMP@_!q^IO86@id=IiXs;r2!5Hpco9#s#;ak6YpMU4(4I2W8gK! z&8v(Za?}_MupX@@21nuMi_k6{NgKy9r)BUG`WuBypF*=x@!h9k)xV$vxc+SRAn>!( zhzB_PBS>Uc+JL$*IG9Q>p zT+D`7pyw;#;p@n+%sSbuqSyIHlVY=gz`MziO|>>+;uV9fG5ZKUIa_=%hk7%Yv70l*dD%x z4IYCH?`JNs{s8oMB_kV!jF|Rw6 zJ^G>Db)Wjy$7fI4y!6$-`Nc{9^xxNf>Py$XefjZEyq*7l>;L!vx_@)aaVgcm*v2*+ zY}3Ft4Q$iEHVtgkz%~tR)4(5TD{EiQpU=I^ zIsSdFA4~~(71vJYcn{bO{N04a^<8`C@%NCa=ik|m-|NX-r;qrJivua=^zgSrvVHJe zwVfAoz8~zs@s6-J?8AMo`!}Gym%zWz>+hJvZ$|JpzWux2X%_duzh~^wk55AlVAj_w?8G6qbZN1PP0R@J?-Eep9gz#Je_N&at!Gl zI37*_#uUHJbI64HGq_G)S?2K!^Q}`jru5kH<(UoJg?bSsKJfQIw0WIIUGE)6c_`=G zbIh~Jd2p@DiJ$_iO=Y+rF?|5tX zl^mln|3$wN#@}+EPpOZZKKuHr_6N?n;BVu_-={NvoJ0TbWXInw_Z~XPXK@|f=I3)xoBsW6 zf43)W(BT-n*M*eCcAW*w;_r+2_todvd-P=jhn} zs&-_)_MsLWOT;!~Q_J47ZI6@Jn18g({QZ5D@Yw~FXwkmatA97XK(x&``uF^M_3@i8 zLzLL0V)Kf|w08o3gQah0e-AEvsLz_-GROYTihl#&-=~S+XJH)W;$9#AJ@!HjsC8p1 zqYd@pbMg1qu|?QJtwMSfe`6cp>$U+`VUZvHMp{KniK)YYdxgKm;-g3nf;-;V2(IPcp6 z9VhHp)Rg{j_RrX+|9b)cE~uyv|3-J-$W6O(9j)sJ=b6nt znKsor^?k-X>2GPP|M*++&42o{;D5(spLGSLx;h_^lzYfI!3^$KM<*Ou`Nx=>%qu`qUjZ^FD+ z(M;r9=TEn5Hue3D3D+FX6LT)w`dl~Oq;oMupJ+zRipLx!>G*(@E0_V*=wW2P{L6p-t--Xg==TJhzU$N%x$}v8S zn74hN_3zu;R>amSu8DRtf1-2OV*U@tVGDHGAAoa>_&{rF&b2sx&wzSqcaG7cc_Y?S zY*M)vHp6bk@e8^Nc)r*U&!~e~zdAfij?Cny_+1P1SdZt}e$*pu(Hm_h?4xEw&pfN9 zs=Dgi6dk+Yi9CZ{V-In5ue}(j>x^Lciv2SFj(mS6b-UCP>wCU4Oy&ONl=$9u9b?Ak zS^Gk)Sx*zg_6r$1Yio0_wk`8GR-?unb4=K(9z*FoXe(jg#27-eXZ7kEckz33?hD#) zuViAT%%^?YtJqoJ6!X(z9HXs-E*wi$1GBk4xk20|ejBEIr#D7_ZzO&ThTlfZ_K!{b z^Rq14*14da_sZ*XY z=b2~ov0Nk1WHqQwc4}ZhbzjsKbxPAmzpvOgqjP=W?<^XNkq^*{nn~mcV^RB*AzpwY+QBB;PoJh;xh6lL9e>Yf zH}2ufuruwu_Ju#tt!o~59BmYN@|<>^^L}iH)>iQhcBzaZ;t(HK z#@F|I=reO~DbG>Qv07Km@8R#gDD@+{h`C)%sqLMI@rd5^TkU}L)VBLOV#oE$c!=Mf zu{~{hHg%YndwYL}CJ}Gdm>Z_lH@52-7En5NwCEbD4(kj`ZKz*cnQ1R!ch`)7wu^Q{ zhnfC-E@NN!?B*HQ8^==|kFkO#w0&rZYn49pQPepa=+Ct>@`Ku^t>jpiacw#0lPLxN z$2x;u%>Ct5>S60df9l;_q+gwXTr(%?XU15J7qp>1A}47J^(n@NIf(kMNfFz}@eFN> zx~j}=i$AAu3=wa%>-#|X$P$f2pNwC7x{orx>VX_^;}2PNg)P|;~3{!uAkq#@BFhi)VA2mK3w;-b7;li&2l|q?&?SF z8P94o+MB}h4!!4XBVy?VTtmmPb~=}a8m{_!JMM|OnsF!X&sdA&S_5-9K9KuhXJEC*~Bez0$K z2IepGlzCTe8CM08?RuRy%+Ylf*N9E+ANm>LoUvr?C&b_oqG+YpKss-#v2zb4&DjImi0W`RN~h-sPJ9b8REHM%)@hhk-hoLY*CX=6RIh zyG#-EZ(N#toQJ-1Jg!-x9krrujU{zYeRUsskY^G$tJqqdnD5o3HcSxx*xzE#kD{F2 z!!n`EC8oPj!yr!1SVdf-rt81H@(WYV7)zrh@#!n@VB3{snI#qYh zCt)i!tyZ?&M;`^9#5&J-i(^7p`azpy?p1slv3wHu@Na>nO(9`#HLBfWkHWZOZE!p- z_I=hhp>MZp+^+(j)mQ#Ly1EQoF!xyJv^}v`jX(OW_I)h(@LTk6oAbGbmSP-eK61!K zl=wpQZLCG~9s41lKZEBPSJ+x#;Kzhb(j1PlMcik8=5%v`*TZhs)eg{~N7B#e%RJyW zjI8Y;??5@ZSJ(Pko9TlE93RTDaqIlhUt)}rLue~6;#~hj;fer96-8=thkcac&*XnNOUfb>l7Gdl_TtzzXiG0WkkYyF2lmwxVD6 z{h55=-rg8=-Su1>7yRSglJjGnF<$0V(0jpGuI-^g?dtbA+V@*rTE+GLJoJ&i7@(Za zy$dLrhx_o@i!&}`H1aq$)rR_@pPv(Rl&lZhn6thjb|RlPeN^YixXdr+n@r4A=YUVc zue(t?Pv^G}$Ha!VO7?B6X!9y? zKId!>7uOQ?qm9Zuz(4Uj_WN?3`9(YCxLUA zxK2m^XhqG~hx<$8p{PSNSRr>fW-NIZ>NBTUQ)xq6C))$_qdK-unMTQc+>3=S&*d66 zmAnVnh_BG@O3oqd!gxckl;O7vsXqkF)!(*{SW?s2U)`kT96NsI5jxPejJax8?SUrK zQfU5;97oJ1o{9a1&-pxUCT)q$s&+H4bh(En1LjfH8SR$6x#u(FgMj$S+N1SR^c}wM zpX*cePJF9j?ujwEUS{-UE=lTLKR7PxZQ0*oH}kanGVkSC9IKgrKiVD2c9dXFGdBD4 z_njg3PWYiRKXH9^uMzuT#uav>Z}$oX;`_FH_wzY+eKP)N*Zh<5wd=jtoMU#L*hG>( zwjccA+{%*noMUFZ`C{&2lgcxm$G;!Fkb34KzXRyo)wBuDvAl@#0?ySN+K600+sXMI z%{g|fa(Qd-Fpkk{UC>JBiJdF;9ZSRj<8!^xx8kwSYo|iLu?JwD&Nbo^9YhQh%au8q zZ!@tM{!|b2={i|XqZ|RW8ooK1dZN#X#n2g=G5^L~$eUs3b2(qb^XM+tCVU*<+{h!w zaKZNxKiE7om!iM0v+I(3iTDPgeYltLVG%S{MSXhCelYfg%)wYoI{;(NjJeF=SR0A= z9N#G%tL2?3n{D-xxiK#TeQ+H2^e^WXEtyZm{iXhOUr`HaD50 zBEQ;?d5wCBIIY+#=AwOxE1%IeRT!)9Pes(Idmdv-J7X*NR@&Ti<00O2THF2ij_8-Z z({$LAI!h_R*woKu3Xn&%uWM;K2q^0uu0wWy3n;Cxrl2x6*CY2UnK=~3T~~14fs?q# zSjveUqm!72ems}!=W*SC%Mmo-8mga)&w=}#*e{!Je3rf)i{sPBnejUZb?Nho*f2iK z!-aZ|#r47*5P4vjbN!wup&Ad2xyJxZWiiL*DEcb))1_p7VGC_? zG%$bLRySGS^StY~Iaz;ZD3AB%8g+T5e2capA(u180sKuIsMbu6=mIy`d}U{5V4HS zVy?umK2B;2pBMT}@*~E^dST9Xoef=D?hMq++8A7)-E+pby)MT?^keKWU*lR0OQ!v# zmWaRVGme`%CFbV-!?jMoJJt*djTd9wI?i3YkkkFn?YDOQ82Pbj!FLS*z1Tb(>(eYs z^`Ot8Z;#Lo@fd3%-|1o=L!5*5&<3&IVJG9ryr|8zUF`qSclkcg;p50d_Ro7k*bdv6 zNAz{Pf0$>PbJ$0FioStli3St>7Umjp%6ua~`R^dKQ*6ig5p-$1n1?eya1Q<(Q1RVL zt%=9HZ^eE{+o@Z|X8cv=(Vu@lo#(N=dQ1Mh0rc;w-_VoKnX{-{M;O}*>O!n}?Y{}q z$L@*4KF&p*p(QE!$@MqZ&3&miuie+4ocpdMSuLA`@MYPadww^?Mm2LCV(iU-wZl22 zZ&2qE#)n4AB+lt44^y8!R*s+~?-=W$xu%{Ka)RLF7&RZ98EL=ObR5X#c%?_3g`C9`h$Z#D7mgJ#|*Gmqb3G z?dWTW=k&ekGvmN_QS+YvEe7#yOzB&5pL5eT#%sowF-MP`=U|U)oF4{`>5$ehJ~7X@ zKBp;MBOjZCGk!4N#9E{lu&3*?xjppN=IvO_d9jDo*8F>4C8nhBU*kQ-&G?hwD9H(# zF@+7Cw_`z{p+$A9-rY0#J)M{cAE9gQ8a~9Ih572&!t+H9>XW`-S}yYa%J+n#2KBG& zEp7YX8ALp(RpzP>jlby2{De(IQ;gfW>8prIV$-@?G=q-KOUAi#b#IXR@rP#3^+_%0 zWBbx}%=pZu{=1raqi~$eIZ*p;IffX9q6ytUd6YOCy5*LaO76BtB#Ud+Lcm&tmfKj&|*V7Cg));7~(!!i99}!>-eyI zlW{^ece+Mvw^KNFj`-ZQAfYMAjv4Gr{O%t2S%=N*{V~M8fwp4&&I3EgI>j7gEpe>m zfDGYVa~W%+``U5_ZG&rQp)d2Jb=*hz9XR4_D%a6!VJ<-%k1k61PC z>U^#VInX@lxD$kyhA8R7d~G`gO_?*xS9#t(1pk?PeMfT-9`omU*Fa;&yxX6jWpeC` z!MK8m5$AAtkI3I@pE0@4Z+Vun7D(vc{ZyLAeTa8eV%cvK$@^ZjZG2W&LWkqiDNp4d zdW_g>xw60Ki#>oEVtkOPl*aybDuX-Tv zWB;);*V~@DV%v%iTqDJAkb%!T-(A6D_JQ?y>J0ZVzgKOLc?PYU?_wWgJ~i+0jD3av z)G#`fx@aw?iscd-_e z7ea50)BU}<(eZ^p*Kv;SVvSUf+KJdov}?ZG;&!|qc!b`9}4V+tHsj7>X1#2?y^oX=RY*ElyeJubAZ z=FG_z`^El-(zV$+Rp&*{NwNw~;htl~m$h#n$1nN{ZN!+SQj)KXAu-nml+dUb`7j+5O zv9s+I#+YrB(*2ZnuGGoRCVhWq^O!gvd{=Et?W$MWi8jz!=#050sMw<7lf*a!+APFG z_?VdRn?N>xM0*Hhh+Ja43G1Td`IO)~seO%&WLwU?Jy&<+cwvvws`jH^-^Ve|rsYIk z*OsDRs1x-VYv@RQ;cwURtmcMjQ`#OXGe+NGV$EwB>FYoGM<4zDL_e=({8iAM-`HYo z>!^c2Bmeu~1G#6!9_ER>l6xI+9Tvvt7-NlaPUt1}Wcm@z1IcUczbi7vs&VFjkLEbp z7yC}De#+4T!;@(7`iu$bw13HSmz`oo!?%g|p-{fK)#UI9| zeoPsba^2jjJ+-6t$V+7b?OICSoSO z(@f!>TE@nST%pa&GWbvC*598V%zcRcavNthuc=+0GY(y&)MDL^b8Kh4h0W(s%FeWn ze~PvTb4d6TTZT<}&NZ;V))>3);S$$uv)GS1VEm%q`udD-uh=a*N*`5K;LJsE!xz*fo-@hM;@Y`$bZbs`DqW=F!QGC zf9OJ884ujc#>5n$Z`XiI9|e1w592-Gckp!_8%O>-G`bScy&thiS?!;Awh!}ke;(lz z`f`1WeB*s|ROwgWyWXT>aBqs1>nfgIO&x5ct-NpkG8bs`u)F!geJVE8j<#LUT>o7) z_NHEQoQyqb1J@A0Sr`kB$G#`EI*wf%p47wV($3%<_37?h--G%)^$1(o)-ujT-*7KO z*ox<~Hix2*xSyDhwl-(@%~zjjn|RmMj*B^m#29?<)i>s>if#0b;GCVMa{%MTDxkuy|_;s2_iqbN7A<3&tAhu&RN?;zl^gm|Cm#oNBB-3_SeU@ z&vu^Gygg5}3%&=34wrBZAJyrUCjxoI`2^-M z@ZZVe-`S4jInHB!puWCv>y7Tod?3t>v%>RNXt)|@k9>sd#&#U`VU)(_e5>G4=jTH!*6KF z{2O~1ueW`YdN58yFU}E?dk((S>Obvadw#odZ?(nW#ECKQUQ&DeZPa~J#Wxws!_)_3 zD5D*1UcqmH6?=xAn5Q-?_$ONrt;asIX)2jpZL6JEwWII7#y$7J?yX`y(g(gXs)HT4 zHif#hY5z$Ls{#7Yv}Fv&9%@3n=0i2_UdVOP*v!no4)v}l?m54VUtLqnAz+{F+j%_C zv#}16!($zH&g351vR1n$nLq8vKGBQu;anr9GTyL-ZPSM_pC?hz_;KuN#nQ2Zv1ER# z#Ix&1f!P0{nZmQ?4Rc_ny)9#Q?6jG;>pg3}>gUY77svWl-$7=s&ezy9#}s|Z7~^@z zMZQp(D%xQ0CRP z(7yK7&gEpzA#~V$5c_}PF#Jj!=Xum|y!bS9ifx>a`^_Y-BiPNn8ost~sMtrs#@sUp zi9WBiZ(eqNDCQqyK=kFooYSYVANvR96=T$2;InF?>_(|x@PVi)*D~Knev$Vs1SRUA==@2<2&|yt}$pJ)^y|0^^x2fbEl0h-<@pJ{mx0W(}Dil zYp#TZUd6S>y>&7t^1OL7G{#;(x!+$+{Z&94@lKAN%(KRU&qkhM%vqZ4^B zJ*ehlNa|c)qoe9|^`+0SQ~2L|`oQZxkJe%@MgB5AC7sT5<3(F%v>V^Iuuo?E##ZEWG*rDuJY-N0RrKW$=dMHAmpZYZ zr!)rCT6GM9=KJxM(7XE=_p8Z0D}Ad2W5D-@(5-q=lkO9>^C0&aZze|EFIgx4y#o71 z9@b~=yS28j+MoCe$bVr+H0BtLm(cZcO7xnrkFmPtf91qPfJ5#vMk%#1PC1dZG~qP< zdy>W|rEJ)WG0tUUqf*MljmIe`@(kxPby<%Yl(JuAkaBM0I7-Qlvnl05xU6wGtF5<*uFwjkIdB9fGmh`AzyE#ef1E}FJ!nxAfphN|BX zp{T<~s-db&godhaga)C5Mj92mMI4JR8ponriiWB_pYNDs#mf4p&-J|fzlrPmT=yJf zjyVqZX^gp6?A3}C^Ahus;?~5SNYR#9gsf#TWf2mOBLA3p3MtwXFCj%`J-kVs_ypD@ zI?H!!=)(1;iOrCkC$>O}2I!U83Mu*~wnK{T69uH`pBR7?0~3wNdUmEx3`y*c6niB0 zMDCXuh5Tw_f244AjHN6NPfSMEax`V}wZzwv-%Ol}ta2LHRZizxoRK&aDZXFF4=IcD z5*`Wu!oA+NO^H0AeZELq_D?wJW|-w#4_X))Gbdui3EEJ`KK?j6a5mL>JCL(Qb?*tCDA(Y5X9@|uI|=PY5prwHuicP| z_<0F=*C&ENGR`J@0YtebL2Az{?ag>G5W^6b>KJyiMa0~!=N17 zndb!iu88{=((77#8u&y&3Z3UgJhLG~!m}R>om)gai|)aFa7{V!a}%zspK-*q=up~% z&MLy#SB1`@@hm!wGU)sl&w!jcT@68J&>D0`jORq8*EMI0dOT->2z$SWP-QgNI-jiv z$C*&*Y*mZS>>&|94;@RHGojGA&?VyM0!8W$&I!m`;u%oqz(hRLA3__jiT`it`}tbj zp^OjyupGVLiuj%M5y(k7@!yqlt$$xD;=ene%ylAuu5uLhN7r!-JiuU>~Kl))XJ;7Ue|Y=iERGqc3m?j}#%{Zs#6U68=|QC+yegw1yJbwUjA~O2Xes-(bJV zaY#|FqtM2jpj_oHuAy`{GEqTRDc?gqlosZAWG!XNA|&iy#s^o2rz{Hh`|TtpC}`R{XVCFti@3-)e$HQTax3EqEbiUG5V^bOj%SCg{8Csmk3DV{*dF5 zqMQiJxL-rzah|Wi{>Yr5l5kJZ50s#s2uM+>fgde3QBDNp`miTy2L&i40#evhIRROV z{}XFi57th5C?wp|%oReSf)s@nUsB;(xMy-oNZ}J@WJuUb`iF9&f)s^ka{^M7p3Ct_ z5fX*xX$Pf*y+D6ZN_b=ydy#wK5@n<)y_8c%ity*03R09_UKdYUR1)?I{ffWPu1bY# zsJxbAuQP6_gf?B~e&Szw04T zC+r_N1!NV+wJ3j-6Of_;g^zPeNZ}KOPpF4d9iFl%Co0IoKdDOuq^KmyYiJ80QTmj& z3HKTEf>Of%#oTLfpK~8di3&3EZzQ-c82djtB_toDuce7=;cKXHEgCxIIHYJ!v>-)m zq74}m?Z{dhI@1TVCfbprqmG7+Xa`M+5>i-~oB~q#uItiDS(NK&r`!R}-Iy!1CIV7) zB;3YaCtAAGu8ua!A|xtEVLfu1kv`Fi6zz$^Cd?UH60Jzlk+4l!bD{|;N(qk?WoS=S zkfI}DJ$XLSgcQv+l(-f?Q9+81ItrUHPiRWCAgh$Q7Hx@kq-fY8r+^eL;gKOxYGCX{ zD^i3+1u5K?>!+1^(UxdOmU`t>kfH+`w#q3XMN6U;DcTa&8+$=Rq6sP5>IjtAM}>OP zk+7}l4;m5(~K0AL?gTqP31PWf2lh{b>))i4w9FPr05p>O@Es z1~8`@nz$C_L_mu6I^00k2hE9Aq-aY7WEC5PKA<_#f?OYE>Kk^-DIi62q75lJ64pqc z(2yt~ML7|WqOkM2ILe}&=s=3*!8s+QXi2mpMH|>IIZa5>oG2lMPXwf>)X}gj^97eE zBRdjJyU|~wbqHfZdmRnC^L(NSDO{qA6wQ0&l#rq=5s(dg<`j@ki4wB%Unn%8J7`Kc zq-aifqzDPW7iDM%8=6xS(7dDs^;FuEj>uFBG8VztBc~ zErGJAK*OjUhip!?AVq7UjBHO-kfLdHjzd;y=34kfD>6WP!oG^Vp&`+P6wQe?WMTg= zY2sS=#7%>WwgBF}CbRdT;qRHf`9Wqwf0fyIaAS(LAB;OXvjQBld(p~jS3fMrW~9!3_6wl_>E?tr21XEt&3q8$o@k1g6jXh#QyTQlngTBp`K>xs--pySxgmcWefWLAa&uVj{O zU$leZ;@ep}Jkp2jD>6GBS`Nr;HoVZOXn%%BFUf3&y^6LYJhD&G&S(A?!;K@0_7fO< zM`o+u$?Q33`k48_yoHPfCHgxWPH8II@o+P`od>TCE?Na1G4u$_S?jZK?A@8YiyhWL zm!U=L3hfO=djhs*{6X-<1nQvozKjRkv}JrvTjZZu7VU*ii&i=>v#IbfYx*7Byh+h+ zhhMSYyP?Y@bOk-IYfqT^ZPpAk(c{_h^23?E4l5RA7NF9Xd5z2Xx(z@5Cpv~bPo&** znY{$v(DA!V(HC5NOJ?Ul!w1yE=%Ja7fXhzAzo2(kv@PM8QOp%8_{NLina>>jeAWIL z-%BwM*d6;0f+yJLi6>SyxyRkbI(ER|oW7neH2IpMH z+@Sew=1+V${3wHSx)kkuFcy6`!_zykF4&)V91oLV9C-L9%zG)bMR0DP%(j|Pv_3HO z$C-5>QnXI6{GrVL2%Vot2QcgW%vxdcF-1EVRyAh)+nJ&*VGei0)HBdM%s~GycI7^d zD-`YVjf*yIJL37?%(jE(Da->F{X4S&-Wz$V9{5IJs91sX#2oT`|%w74tqQR zzucb~0NcE1*KJd@8(`vAMLU4HkuZPXjDORZ+3&G)JM?-5JwYpax&+?54P6j>2ea1k z&~;MLwt?kmlarv8oT0qY)Hkz1aAi-{0GDl#j}zaD^Nacw?SJ8v8#0>)cYl&u8_Z>% zzsDaQh3y)Pwkb5xZWkE&2)2b0Kg_Hje1<;$0WZIv*{e{2)$ky(@UPv-L+~=O`YhOv zJLRF_hSbHnYY9{%vDsi-(g_VKllO0Ul<<=jiD( zC=Z}N7|b46IFP*qHby6(O~j{8Ck~+tv29SEklB2gb3|tCzr&s|vz;};#rWX`a2EdQ zVOA@3(A!}LSp6}%|NHDyuor$Y3;@n;Sko; ztaa^)9-8o>@kJ}bGITL}C+xPGTtF_n8!E)zYj7I+8OQ!qgo%U5k#O$e>=*1W6`0OC zkB7Tol)Vm4_I_S(e42wUww+tejWcQ z!OBiWdjl%i=g-j6OuWN0Ct&Lrh<|vW*!>9RevkbFis<+-829hY4uf~d;n|6-ac|ZL zA2P=dcn*F13C{WuUxRQwaS!8r<3sQ!eLM>{tjz3scun(whc81numalPBy2Da`i(5w z9CY5iGkF!dY>vJ+BZsnY4#($qhl88&A^7at%=-M4xL}RnhNfp}1A%8AqmPGS`%Tdi ztlEY+f!lw={NQZ-)x&1YvFDNa#S!=^ylLnPrm>%De|-#FKL=MY$5wDN_wI&Q>GKWv z24gH8$G!uTT+xn!Gsxp-!plc;?to6a;8U;~J+Fbm8S{ec8TZGq9ABuw*R~~(!o+`N zwm%Gbp0+Tx5B>}XGe$E!*tf{PS7u%JaK43}Bk&0*?TXFeOzeLaG(LsD!3jf(wi`Mb z3~hI2b{|}itrkOf;=B_~+?`m1S%G+gn|NmQZbcgdr(*Y)(Dmo=w<5ZNPUMN6Fm49p z!iTi~9Je=5#+{kjZ}EwTVL5xlQ!tOcU;${) zxZ}ypZiIOcQU{e$_#@1sFP*1u8_szGn(&EHaBRjt0_~?}wh|uP1RKCn=zB68$$r!f zuOCE=!Cm;q0yusQdLoVurV&R2S>pg`W1qeU=KT{rz{X!Cr@=qaT?dROW?7HP8PP96mD$CYFg&7_k(8fR)Vqap>M3JAs{zkH8t{XLc4md=cw_1dNcjNvE-%h=%o`pPCT{4nTKF+I0f63pn>ZxVFqKK3@x{^pTYUW`fTXjo&6A| z;Gff=?OgN&ACjBafc57rP{?ef-DnGQ@ttd6T2J2b{={Ande3Ns7dSg!!MtvOJ6Eum z!o&;EBOEk@cz~8)Fg|FmPeT`U_Q{3htiN$)fdNB_W6+smFf7GhtKi|wiB;^=49oG^ z3Y^i690jW;7wr{z^nT8fQ2r}6f!QYzuf#zC=8PfNK$r6TOlMs)Vb%iX2K{DbwgMlQ>{Muh)8UF+*x%Z@|1_~kpO3=;^w9)6k3m0h`{1Je2EI)WIs^Rg&>#GD zFV+o@ksFqP#|Afor;qdD+pPHvIQO;8&Vx0_ut&meTj39I3_dXl2H_Wdp$Go6WqkA!F_+m4v_tx`~X+KfllDyP4OWZcOUm)Z|u7i{|m6~NPGsy zKEN3Ox}Tfb5ZH|IdqTs5yf;HLetRTzVx0y{8D|-Mv=jCP?Vas#GvnM2pL6{gjJS@x zyDz>6cR~e-1A&kC$L(FZL(=aSgV9WB_Lfn7=bV1MSCgK7%`^Qif@N z^slGBKH0x$*Ys#;xqUh1Ip<4Hu%;? z~X80yc2scgco^7 zgC4Z&0+;mR{0Ga3vERdxq0AfRlb^~UpKkarvBnyX(mK$=Ch*BktOI6|3zQRHB{r8p z?*oZ7{NZ2t_o~y-DJ(-@kHZpT`*AoD8%%-E%J?=6y%0OXGJNk2===d|hMPLE|Dvx2 zaKhpA_Z@UJBePw}hZX9cgQeuJE79XcP%3hEgI?%pFx-WX7DF3zxea#d%{~fevCi+q zPq68rvDCxLU(y#WID*eYU>3H#09w)OkKu}2*(YEU{#}9&^!^Sket`W4E9 zV~A1hk;lU+(Dg*dU=PKx5&3KrBe$R##|IX}F z{Ms6cKlZp~u<|U<=kOtZbSts35H{nC(+{SR-#j)tAKFGTS7_Rn*nmgzg=NqMyKfE! z{I45agdTnbJs77a3^^6Mixc=94xio^W?{=8zzw|LErN>=!%ol-8*T@K$xj1d)}5K1 z$vn=0%SLhTC5D?})@pnLF2@(Hg_W#XYoEJO-Ag>fMd*6?2doe7!$wPBD0!y|x^vE1{Vr$9fy4^jO^mfc^NHj`IQ?Vv1Wyw` zFT)#?$WO2f`EM}ng>FZ{6U;&9l^fr|Z(*Ecd}tWYSp!zlM(>G@`1~Na{%OYPLVkob zKPLunWS;DOZJ@cGu@!j{j(v<6fK#sI-EYsL?FpV(I~`tsi@1atPw{>UPq0U>fVYW{ z&*1HS$?L>KD-3-J-N6H|VO#iQ7-trkJ&-YBZ`M8nE;)$UgN4)4`{kSk;T~+>2Iqbq zUBFzJ4UJ3j4H%1EkA%@aYo3R{ zaz=X>DwDYfPZJj_;VZ1S5xVpx$Kqd2PvSpNAr4o-Ye#YZf)&3ZM;}a%hK?!d8_r>! zGht-`JMF}KJ$}@EXX25ZcpJQqohtA)KGNr}L$V>V&xw2 zzsS$clbP>P(CuIB;cx?fb{*`3t_H(9~K zVyPHE3oZSVH4|&^z=D@DJAOxUIh;bQx4_@aGrr0@AKZ=|Zid%(!6yzPFTsT;qHlEcCd?t; ze*%Sn;X80JXPC+GJ978~pwD?W9l`z#j}Vv3#Sihp^Ek`!u5ksNMNT*qhHl=Lg}_!_Yf4dUOIy8rZX7 zDt0PCpC52egg&=%zCs^UV5^;22dqGsZ^OigGW&RB(Y}DoT6vd(mzjgk9p|C{??dD7 z=?6}K9-D*5U(bho4=LJxFza>dU?#fX4*d*)Cz{BUa2tAF40GG)8xH1rJT#-T3$e`{ z7%~Fr{SF;#1-6(uG?S*b9ey;ok8w_zYiT9(2z?FMjCB%YJg;SKsCTY5srsuXyEx(PrU)H?Tnm8+>4c4{Y#(4L-2J2R8V? z1|Qhq0~>r`gAZ)*fek*e!3Q?@zy=@K-~$_cV1o~A@PQ3Ju)zm5_`n7q*x&;jd|-nQ zZ18~%KCrj(83JrhjR`3Tg4`-^?hi! zE%%3UuM>3UUK4eD!WeMe+XHt0@)`a8V(T|A!ZyGh;_v(&&9jWJIp}X^`-70+wZ5IWkD(q0QIeBj&}JnxB5(&of`gIHw7`g`MAS8vMb zC;pB~BT~B1e72?yNH_8Ch_f!~RDVZ1fc}Ow|D${SeWm#Ko~wG+z3r)&j+npx=CS@Z zu|EmWwL5^i?%V?#NqIl6rH2euH#8^empc94O#F=w<`Mq}@-fK$sb@|4Jqzhu_J}sA z&hZQEz&tz{ed~9F^;@|5Th4J#{i!Q(AEfsn-7}77KE`|;Hq-i@?ADh$^y9!YrZKjs zy=)XFBaftf1lQeQW7>5^;wOf0%0KmYm;DsV4M^7Sc|QK`5OdUTjs(h1x?(PYdBu4) zBM%2X0}h?&_ek{j!2@me+aS>n{kXRS*IEZepTTeRdoNm#laKzLaX|Wr&kUk&Ctxln z9csN9j0g2A8}r-I@poHvZv<`rO?h|5W_)*I-X?5C8LS6Vc4IBlo#G{I!8N*+zT$6h z^0(|2pD{L*jx=8UjZ68*v0OLuoaRPf!mzD$=5|D~#%gTD-*h2P;%}`HlTq*3J^rQ@ z&p17oVqd@E6a7PF#`lT~Y!mIn`s451$C>L4W67eGBPF{l(w@l24**`Bbz$<0|f>9**N0+smi)H~#he zWlp-quZ+G!k@~%nO}SKTXua`odSjpXcjPA^Gf4jI8Am=WKbPO?H(uiJwDhEoJQQur zy5oGwAyEgE_4_``vnIVTKjpA+G}qD{>voz;#{B~+kL7wI@-WI({c~TrM!6!|U(YKR z6c^+oFP~B$5dC!wW#TF3y`5>N-#{Qw>33>^{2E=zHqsCO^Xb~(kBm8M59*kMZA^VP z`XjF?x5ZeN4P+Dg^qRx*Tob$c`|PrxQ!L2G#4#|Adm0}!cH|JAV||YK>F>U4-pX70 z4WF9rJbAEB?KHVkYKX{pMyTuJMBa#ype{WLpE*jqBsM zhi(!klMhHLpUJ|o}Jxj<)yxVEE_=)*z$y(7ge z$akVoux9=4QvB_Y>UvpAv;pf-pF#NsU)27l>$uOzj_Aa(#+cVSaZl^kGw4Lb-%7-` zp0)a+Ks*G+5jxO*8~2Bkc;*DI6=Nsn_~U7-bAs&Mmpah%${W&=+mdU3heY{7c|vmy z;OSGp=cN59#=7EW25qrlkgfH*B-ltfGyeWZPx?x>)P7~4IF7N5bYSFAm1TqIyX2|r z?=;v%uBCJ7N9zKIy@KpTzox#W2k8U8TB#+<^stUL7^Ba`jcO4`Rg4(YkC{W98zIU0TXu9Q0?Q<`zG%5eDquG1FT1RAnpUqL%%&CJ83_Q=S$6bU)s};Y-Ea6#S4AK z-=VJ9Lt&c!X zqAZCG6tmWww%Extr)mx~Vp!*N9R_lHt1-`kw_ z*dy9dIYv50Cobv6jiyfRX%l)N=|}OUJRfs?icPIoJ|1-_z444y_6q8|8p^r^j2zOMW6TH{oIhf2PSKJ-4J^?T+cfA)$K z>0aw#Z0RGeJN4@)@tpdkY|?oK=vwDW#javqxx*pjTDc$R&l+@|*Y95GdEZREn8-7| zk@6dSZtWRTdYwQY_`J^0%1beq%9ln_2IUdY*vbW7us+#Uc9))F%xdk7tM?D(`}lrx z2>0d7Mp?GhTKj_Do%If#bm`Dfpr7c2nrEjR5@Y`RT~)vBPd{Iw4qZ9sDgPFMcrwKl z>x^eOwZ|9Y85KPm`qnuk`WE&LtU)mleOUU+xYio`tsv(N5r!{`7!1=`3GZZJe?5?l*{8e zM(+{wWptsvIKGPv=f3j!VMyux(EJ(eitG;s?%`u`9q8A{9kNSoM}CWbLw?flVOG!O zvWIe?#}AZiz3kZui4R17);l74h`MJUjxm)(MZkx>)vhu2SlY>7>DO(= zy&+uhij?2Te~1I2oDdYJ_>I=9++}KuPbJ+YvirLxX?Ge*d^3*DEYUxCR%Oj6Lj365 zs`GA)G1^J$EUK~Nevclt7UhTNJMuTy6@=!Zbsqsd1E^;#<>Q#^(0@>S>9;SEd8tpux!3#~k-CSDqrXf+s_(6- zI}~{c<%wJ$2J&0&=h)t%hqeAn3~T(gzNy#%(PNJ-S_eHXPPhN}p1*ta5eafqW_>hlD&$7F8t32sW0PJHT<$&n(-6%7E%}wtE zicyzz68D;vm-LK7cTwlWsK>YBJF3>Jv!u>z`n^^5&#(=B2%gnBM`sG1kK#GwAlhrb z@*D1X{4d5d^U@hGqbHqfT-cujAOdCp|fci0jyU(qP<;qi8gzSdCRZRTQz=S-cp=o(3NK-Az=IX z4oZLVj3XQA-a*`B?J?i7R>fqTGoO3wH+>2*N@?7*A)eqvn;zfPnqsE*=vSW-fVy!x+-o@PJv}vR*&uD*B?$(~+ zv<{t7be`gUx)pa8w?wU(ZD|I&}Y;O zW9r-~l;b^8@eHMKK6NIsFTiFyZkOlFPbYlH|D53V#g!Vx$LGo z%{}@i{%HK3xvj!C88?ov&xVD375&F`slUCs588)4w(|Ige8kCi5Ou>CdM}9QCe6FL zKJr&Qw@LTX$=i&n-%3||^rxJuJ;EOXZ&1%VwLeP_%H?V&+siK^`Ym?!tvsMJYITk= z_J}vdob0P}h-c37H`995w~)Sfqfby9`Mc0(Ai|}2%O|x~=``v!qu=q=pl>2gZM6lFY4c;=nSf7jAvz2JB<72U*~(Tc`;5v$3kZt z*;{cDV*`E0cL(VTo#@=`iL-cKB$hQt5#tsgh&IQDI;+Mt$S=_OTA$d6YtXt(V|QcR zuCRZCT8IuCe=xk&eU*7W?KyuHqtG3M2m;t}G%o#5=FanxQh z;vo7TpO-)h|B-IGFdqGi>X>@Z)c4DplL);48NV0OcZ%rxmCyI*8ejDIs&YY4oX9SF0{Rp&4&g^l?4dngIm#=x8j0i%i zE}a;c`AU!K*Nx5b+9$}JF&?LLPrfJL!M^cxP|DG#mAgQ7234Ps9vn7NKGNrf)iagH z?qLsLoNyp*v~GM!`inVs$8@b+p}eed$(QlFcJAr3pSVVii;v27+SB6P(Yayo__+x& zAwN`~o_RUVZ2}Nq%C)km$@k;@a(vWZlMmHNN7^ zNrIQIv9Dq<<^=MB&bMw9Z52!ShMsrChx8FY_s0%SK94@67v(t5Jtw>B-Cuj4%4#p) z>&$(%pH5ky&FDQ+b^s@xsvn(4q%YZ6^^6~3E`e*sOMJhPPoOhT&W^d4_35l9|Bq(? z*$NwKf03V8$E`}OS-B_X#pLg%b`bBOzqPqSv8DPUjKMjqdcKI|vDATV8uztbX(!vG z51o7DlR>uJ8)SFwpPYYXkANNJ_kp#_Zt|m`{$&r%Pvh;*HTUD*kDut@3dy%rC;gb( zDnGGyBd&cT*NQj!&2Y-fx6_f;yxE_71z;SVKjg!Xc?FHnJcDwHVildl^MhiMImGk9 zVYJ290)51oly1Rzf2pFq&@mUC17iN^PMguR`6@6k%}ucwV^8*#z94>AM&FJ)tuek^ z@tlLI&5XGTk1uKeQBH~TU_Jq#bDAqu+s8A3Y|x4Opm7x&(xuiRpEb&k{2U8)~C5E7b^~BZ=HG9 z`mDxRUNh|JIvxi_WNl+$oel)vqZZfP7g*zwCw-#H;o+8^bjy&+80eyX91M zW<#ilsDJ6E5w@dDOd9Ruxk3B4-dBh_%vdt9-v&OK8b6^oq^)l@5*%_?#aiwAGq&WyFTBIevALgmqoN8cJ%Tw`6l;* z;*K>a9%XZrZSloOvWI-A>MKF}jAEJo)Q{1Ra&OGP$$!;0wwG>npLrVVcEnK3+nO`_ zt@=YeFObuvE9pT#?U;jdO`NyvLynC4l#kO+`6j+ENaq=4Pz*=?PvBZ;Ou-tp*6Mi5 zJBok#PIavKZYCc>?*`GH@&o1?W6-D*vgLI8W1jK6qx;My=5cfr7TKMW9-0MwP#iHk4J~`Tp?fNa}s@4 z68B{69QD2r_0kjPkLVxxeLTYrq#u!DRk>e&=oBx^Df%{j>Wm@(_Oz8xJLVB}e_$?^ zm-HD~*a+nJ@>6VE&8wbg45H5ID+uWUU27hSVF$`bUgI*pabIn8o_C59`MB1=9%tyq zNjKHKBAu@L07B-*nl>0LRlfpx^seK#F~|Eldc`W*}Sk>W$+Cis)#Kggy$7kyWA!Ix#T_^zkeMR&^ialh9b zcs`yz`qPGf73cBu740|ZFrt1y`$l9sl4mtH1NEizTdZTfvT6L>Q166_W&Flz4^=LF z5q-YE`iKt?ibc&){v#cPVU$^`<2mEG(1?`3CVlC>KH5V*HHiC~GxV5i5j21GQS~{+3Fy5*vF0EYfH_5*E05?sj=98hiryRbp2RuE^`{+F=cLd4Onxoj zW8Q&zd+L0~HF2f52+Tn~sraitw{|YfDV`UI|G0L=hx(!)lbz9#-fL_WawKi#`|NGe z=g@)Szar{_KKxMHQ7_~tK|W7Rx_y!Ip&cNtE2v-k5AqG>Cp&7+PWgcGbe=ZyiTp?U zk)DJ63%@a;JfJ;C-;a^o^)8})MLAG$YMp6I9*FN)$^|-$9the8^f@4YYtjogj^E`R z#5H~vb6J1dac#^ou338pex&(3{6zllS+|hi`rWv<6KH-~$B>-0XEgebW2AY-&pvhb zRi6SMiFpX$R}AQLO63UUQ`tlDCgQ*UP(9-*H%C8_uj#u2&hFadope)V{0w+js4m_c z$8*dje!jXf?Z`PXZt>4JCb`KSz%{WH_h|0N{X@ED-P$YUZ!wePxHl3 zq8*rvd|E!LcW>#<$p`eF$YPdz6oa8VlKBSw%VRg`O6Xlh zKBE|p-=R&S4*P4Zo^`8_>gNU8LuD(6jYNE}XB_PZ$`R2Ql|!_4`Ja4N^FViN<3_PB z(&zOWOKX*WHLs{o>3BM5Y<(7poeiA?&}TsL9`gub;5R`sj`Bs!k)7xd8(BtKbC3=C z1F;(C#Qu^HSV9kS;tZ zX7mo{G#;S3{7@Q@PEEU+qcma3siwocsuTdZAnjrnSq)xE)T`BG;c`IG!upY6xoNjvQi@!Tf=AU`Pn0=ZN6GOaDmCFTX@9lsZ>u0Ne^V?JY@ z@yw*}S~lVuG~Y-%GdcQGj+LDQNZ$so5zw2~tns2wH8y7x?XynvVGj*LebPSW5q)-o zP2+b+@)2~boTa{P0CeFw&{-kcY6902siUm9c;+J8#q%3_kA6)YXdiLpfq2H09ylAt z9Dg8n)ay(T_j1-8zh69-`Y~KXJnzds&9srP$-Ypvm#J^^Q)r}4Yf0}_f%#}&Y9IF- z?K#SU${AXl)~Z~nI8mMaO5=A!GAG4s^r`+x(Eb_sP~OdTP7U;>Js_Sf^!YG)lD=a8 zk{xIhKUW$?Um~L)h~pkb8RFTWJmchZ_)65F^r)OM8W_Wa@_^fd>$JAG=SUA)gX~R= zd3-kNB&|CrmcS+7iF4uorh2Z?UMN2>#pRgvEP9q*-9W~ay$?ZR<9J5F?(*}sde?qH z?oymcuWMrnpNi)*bm0;K8CYX{R(q0s`UvjJrt(iv{xLyL)gJHBe>^jzJK5Men7R8B>v)*5Sdw@ODcWHryp(toDLzQ7Mv6}oYmmb5anS|3)v+<byQx+59u*Bg= zaYP-HD2vH89L;q-$5B^hD%av0iD^jj-Nflg@xSZhFC;#}ew4TbSsFkGco&B{Lb|) zoIV#2@vO<7t+T$+yN1x2Qs})S z!hYuydY3TvEa9{d*ATcC+KYutcV(Q__SYo_DrF3@&AYZ)Fs>i`Ujl> z9A~OXBNBAZswJKmdDru`>`Gbe#xpuoK}f{+WX{n(p?CEvdUvTu=hRv}WuY_vI%toF zc-BgLzV>}TJV)o9c;*>F8}NyMtP@S?l(R+Ag3=%>@=QH6GPG{ysKnlIfiBL?8=b3|Z^zR#M@sveK=!_T7 zdB~vaiQKPpIM<+eHet;<0V&)OIr?{w!cG1X{r`sX|2aH{I?(5?B0xOjPoWIq1j;Ao z#J}xx64zf_7f)G)I;=z=wVX^DT*6MF3@+i3!hJo*rg9&=l_Obu|R8MLgq9 z=enNnPzN?6$03FOt*Wq76W>MF5V(%CAimLp$_{o&qL|5FR{z1gF?a~{dx%0 z3A^I|PJ#QvK}qt;9FHs~0#f+a#8pTL3A>sxz$F5*a7~U!3Y(MTkfM~ZpHL5_gk4KH z;gGf1Pq_!>L_k)+&&{bIMd`XauBQyX2KyO(K>)0dRF7KM51;wbxsyP5Wh3bK~Me4eYp-@5V{ z?3X!(1+)X72)AKps3iDdO3t&isl!ngAyGkAv0w2Fxc`E`gYls7>vgG6F5Q{qkyXlE z3;Rt@K#D@!x|Ar3a>Cuk9H0y#QMj9D)9N~J18Y8NLxf-35OKrLsQF`c00@tGOFm(z4JKEJy=34N@ zvK4Bma9vB`5$;1d;T~mNC?)Lo^Z})WM~ZSCfwHhAIRRNq`y$Cs35Bp+G&?4Jk2=Z5*4IyD{?$i*fTk0q$sV-@kmjwqe5BOvpFSXEuL~nRGy

!0$0J1< zLZb8+#)ERARG|z$VXrXr)%wu)z=P=})|%83fn-pDB+Yq2*O zFA!r@kNcQ=;1d<3 zuupP4Qj`-FWa*#lr%b&FbrjYxM<~_dDT{KV^eJs>2waQ8XJ1m{+Sl_h>Y$t`d`|ls z0@uR-o3$nE3)T%m{3oYm2bpL|v>_{rLZ^dFIA}?b4d!k_r`URJ0M~a39`cAYXMbnl! z4k?-w9x2+OJyAi5jvA~NYXO&NL5fgEJLUCJ*orX{0V%9E{Xxfiu&ucd4T&bCC?#5u zqFhHCW#P7=ZNei(NOT~D+cw7|MJu$`5hz=qoMxnGsiT#$aDBNCt%)*HbR-Jf;d6-+ zQiMbWDQx?k0#Z~G){inY*HNPE{|l|ui;$=wYw4ieutQD@QnV#(N9K`eMXrxB^=;6e z=s?zDU!e~u)Zr+LO2P`X1D9wQWW~Hi=!->>u94aN&|9QkfJbfU79J2QXL(X zMPX2mL)OwvxtwT2*3wS7mJZ6IVW*rXq-ai*k*$sNm*_y+&N&T8;SwdJ@QGHWXiEg7 zs6fMD)|{vyMPZkmW~2y-hFxh7WeAB5q$uo`%mheDv840v;~)FMvC_JP@%3C8-~uHkZ3{HQlTt55>5Ls zC-8|@WI54>6gHeTi84}@_RR@M(UB;OU~Fhgc%%r44y0(_FQ<$Yp^kRS9ndf`$03D> z);iiKi%JbPih0-Y{J5gM3NOM7uxmrn_Ju1R$n0F`(Yt63P<}tNTj7*li}o$JV_0Sj z;M=|=PsunrlH$OFm=DoS_Wkn z?#%2y7~wLT45uAXw3*QToXp-kJF{`4Xa^gk`^{nAXPK3uFd;L(VxfFaLjwg-HDSKv#RL+Qw(9S1*R?4CmzAFk(m_JOPy*8Gk6Lxr(lha<3cGt57zXg9(BcV#vj zhJK1&pz|G>^?}~6XZFc!_)jbT^$+H?I(zI6%o-Vc9= z`Fm#84j*BIM~I>2aNbI64IdTg^9KADI{ylL!TZGI2hfaO#=;-=CPv}yS?CEWuVl6Y z7Q9Fw_-KH>_~0NYl4mm5=34w3CS#kEV6$DA4-9xKv$qc`+B+~K-8=bMu3_+b#3ale zR9nR`HnJ}!ovw#Lq|5&qo^8o$6MFz+7P!OA(AErkx|p}Cat$7^AB zPx{yr-+*o(5&Q5xuFruPr)Sn59S?>deia{ptFI#;qtEYcLK`SBmu;Xgdh7$09q41n z%q|!%`(p!`yO?>vm}81I4qhh~+n~}&PJ~6{ihRV*zVQdzK_fn~Gn5Y}_id9|r?JE& z+(>-<6uSK=vj({AOx6KMGLI?Hh53a`dH#HS0(#Q66Z9C*Jy<}#`4v>iov*`6^!5te zfE}-g8TiU+us8M^0q+he+H26ZZD!99<1>yXwja-I04!qu^Wdsoi9h%e{SQWWyTVlb zqk;I?3U=F{-1R-ig63y3I~wkyei8hPvF5_Em+%|r`4`yuaBK_{Ue0VHv^~mm=upJuU+Iwfh zYI06@>{Zx{TzE6j!E5;X+pyPGMH>c&?|zD(o%BcY54vxI3$V?lu!#7W2lhYc0hTg{ zRnWp(&W6Qx1rVA9}Xp10>`cH=L}h0xdkS%j45_j0o?q#kE zIioyAoBfLR4d`+Sai!R*5@b6;%2dGR~QYmsZ{>r;6B zQTz{XXHIv(Oms6HUd2zAKw$hw;E>Km8xNg3&>xIMmj}Q_#QEiLE&f-Algalb_$y=R ze7a;f`T~0kALa}*cog{sPTqrk8g9hazkt>F#Tpp4WoD=2b1krZ2lfw`xm(e`2bVpL z|3SkpJhuWrgypP#&YtK6f4>D<_rh;rQaQ6jDIX1^4q@(~{MQ@GkvtK}AB=dp& zm~$IGbQ}0)avCfp{@S6>LB!clu|1SB?!lNNu^sF^n4AX#Zoz+G$xfM7;6U=%cxZi* za|>LLE$70->71S6sqUQ7;Wg&^Hv9lxdgx2u83dP;gRX$#Kjuu!IeiDHV23B**yC9X zwrYR_w=CLNn1e68HHEV=j2lWWgO%T9{?OKo{0&EL!?W=A(#$sb1G#zUqMeIgOEXv# zytfrLqWm%R=A5++-1i&$fe!jv0wu0bf%#7p=WsfDo(bQ44WIuUpNDay(FIIHzu$oi z#9*ar&D{&iyuR z&j5E5`3W53XK)@l02G3RxdIzF?fC(u7MkY9ShQudM$-XjOY3FyoI#+V=-?+D8$ z743dl{VYBSr@lcyu;Nzq2`|mT@8G31%pbmB{~3!8n&8@5=o?<={)i`u6X?LFr@Won zcgJuZg`XLFG%O}pKLq30f5*W2o3bWseOANwW*nDne9voO>Jvtq-HxTMYHFTx`SVjuiH z4&G;;y|>|c^1=)l;{4ȓ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

ko8PP^B_ID5{SFrDYt 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 z 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%0Dhwf|y;Ds@%1B`x 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 ZM;Vtv3i+QWyZGCvqG9@{}* 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%0D1h_7Ho}ioK%VGv;5+ zy9(?X&7T86%O%7h9PW<&=qn$(GS8kc|4ZI&-eSKE^|>B_hw$S*G;#!{?qhtgo!EF2 z&P68^VD=zlofv6A9=Zj;EQI%SStnp^4bG>cSy9aZFrG)`B&lhUi8X>`+KfD@@fCoM-C6FvG&&IUtjpEfoFa6EB?FOAOBzUj^%xg z34fj;V}pzaG8)KeAfthd1~MARXdt73j0Q3q$Y>y=fs6(+8pvoMqk)VDG8)KeAfthd z1~MARXdt73j0Q3q$Y>y=fs6+JXEl&z^nd(KR`dssNGOqJoeE(P;SUx0^2adJuf7aO# z<$)rnpOiKH&K--R9Y>By{YA-Cyn3k$|7KY=4}MnLO|xBbx7-Xw^KB@9Gpg{iGi8hYu|1IJ~e+myVq~4jM6VWZ|IE7Zi^i zGkEOaks~^eEd~1z z@EEjv#gp2Du*7M2de7$zuC?I`Nw`J z4@8QS_ViqQ|5zT#JttW|<^TWlhRaOw7zFbKTyx>{t1qTZ z?ccprg@3cGngY{{QOre_vOPtbXc6PCKfrQ>vR&_>U;<|9)6sjrJymRaIZ}|5usz{{fD= Bm0bV; literal 0 HcmV?d00001 From fcf2c929ffbc19040fd8259a395c7bb79eeeacef Mon Sep 17 00:00:00 2001 From: rettigl Date: Thu, 15 Jun 2023 22:42:52 +0200 Subject: [PATCH 34/36] add option for runs as int on runtime, and debug flash tests in guthub actions --- sed/loader/base/loader.py | 2 +- sed/loader/flash/loader.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/sed/loader/base/loader.py b/sed/loader/base/loader.py index 1f42149d..dfff9c5f 100644 --- a/sed/loader/base/loader.py +++ b/sed/loader/base/loader.py @@ -85,7 +85,7 @@ def read_dataframe( metadata = {} if runs is not None: - if isinstance(runs, str): + if isinstance(runs, (str, int)): runs = [runs] self.runs = list(runs) files = [] diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index aa1bbd15..09766559 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -659,7 +659,7 @@ def read_dataframe( if runs is not None: files = [] - if isinstance(runs, str): + if isinstance(runs, (str, int)): runs = [runs] for run in runs: run_files = self.get_files_from_run_id( @@ -703,6 +703,8 @@ def read_dataframe( # Run self.h5_to_parquet in parallel if len(missing_files) > 0: + for file in missing_files: + print(file) Parallel(n_jobs=len(missing_files), verbose=10)( delayed(self.h5_to_parquet)(h5_path, parquet_path) for h5_path, parquet_path in zip( From edef5979ada3481a9731734ce9edda170aa600c7 Mon Sep 17 00:00:00 2001 From: rettigl Date: Thu, 15 Jun 2023 22:58:53 +0200 Subject: [PATCH 35/36] debug github actions --- sed/loader/flash/loader.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index 09766559..924d37fe 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -675,12 +675,14 @@ def read_dataframe( else: # This call takes care of files and folders. As we have converted runs # into files already, they are just stored in the class by this call. + print(files) super().read_dataframe( files=files, folders=folders, ftype=ftype, metadata=metadata, ) + print(self.files) parquet_name = f"{temp_parquet_dir}/" self.parquet_names = [ From be19cbc2c9d792106e526e864f99aa107843c112 Mon Sep 17 00:00:00 2001 From: rettigl Date: Thu, 15 Jun 2023 23:12:25 +0200 Subject: [PATCH 36/36] fix bug for single provided file, and remove debug info --- sed/loader/flash/loader.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/sed/loader/flash/loader.py b/sed/loader/flash/loader.py index 924d37fe..e13a227f 100644 --- a/sed/loader/flash/loader.py +++ b/sed/loader/flash/loader.py @@ -675,14 +675,12 @@ def read_dataframe( else: # This call takes care of files and folders. As we have converted runs # into files already, they are just stored in the class by this call. - print(files) super().read_dataframe( files=files, folders=folders, ftype=ftype, metadata=metadata, ) - print(self.files) parquet_name = f"{temp_parquet_dir}/" self.parquet_names = [ @@ -694,7 +692,7 @@ def read_dataframe( # Only read and write files which were not read already for i, parquet_file in enumerate(self.parquet_names): if not parquet_file.exists(): - missing_files.append(Path(files[i])) + missing_files.append(Path(self.files[i])) missing_parquet_names.append(parquet_file) print( @@ -705,8 +703,6 @@ def read_dataframe( # Run self.h5_to_parquet in parallel if len(missing_files) > 0: - for file in missing_files: - print(file) Parallel(n_jobs=len(missing_files), verbose=10)( delayed(self.h5_to_parquet)(h5_path, parquet_path) for h5_path, parquet_path in zip(