diff --git a/src/cal_tools/constants.py b/src/cal_tools/constants.py index e10d96b1ceebf28bf01f845d9d3b2d30d9c4f363..cd4abb00f819ef75f2da7b3315adaf4f863bd3c6 100644 --- a/src/cal_tools/constants.py +++ b/src/cal_tools/constants.py @@ -197,131 +197,3 @@ def inject_ccv(const_src, ccv_root, report_to=None): if not resp['success']: const_dest.unlink() # Delete already copied CCV file. raise RuntimeError(resp) - - -def inject_ccv_legacy(in_folder, metadata_folder, runs, calibration, cond, - pdu, const_input, begin_at): - """Inject new CCV into CalCat. - - LEGACY VERSION - DO NOT USE - (from before most details were saved in CCV file itself) - - metadata_folder - calibration -> in file, but pass anyway as there could be multiple - const_input -> doh! - - Recommended way of running this from pycalibration notebooks: - - inject_ccv( - in_folder, # Same as notebook parameter - metadata_folder, # Same as notebook parameter - [run_high, run_mid, run_low], - 'Offset', - current_pdu, # Element of calibration_client.from - # get_all_phy_det_units_from_detector - out_folder / 'my-constant-file.h5', - get_dir_creation_date(in_folder, run_high) - ) - - Args: - in_folder (str or Path): Root for input data, i.e. *not* - containing r{run:04d} folder - metadata_folder (str or Path): Metadata location - runs (Iterable of str or int): Run number(s) used for characterization. - calibration (str): Calibration name, e.g. 'Offset', must exist in CalCat. - cond (ConditionsBase): Operating conditions for injected CCV. - pdu (dict): PDU information, should be passed as given by CalCat. - const_input (str or Path): Path to local calibration constant HDF file. - begin_at (datetime): Begin of calibration constant validity. - - Returns: - None - - Raises: - RuntimeError: If CalCat POST request fails. - - """ - - cond_dict = cond.make_dict(cond.calibration_types[calibration]) - pdu_name = pdu['physical_name'] - detector_type = pdu['detector_type']['name'] - - const_root = f'xfel/cal/{detector_type.lower()}/{pdu_name.lower()}' - const_filename = f'cal.{time.time()}.h5' - report_path = Path(metadata_folder).with_suffix('.pdf') - _, proposal, _ = run_prop_seq_from_path(in_folder) - raw_data_location = 'proposal:{} runs: {}'.format( - proposal, ' '.join([str(x) for x in runs])) - - # Generate condition name. - unique_name = detector_type[:detector_type.index('-Type')] + ' Def' - cond_hash = hashlib.md5(pdu_name.encode()) - cond_hash.update(pdu['uuid'].to_bytes( - length=8, byteorder='little', signed=False)) - - for key, value in cond_dict.items(): - cond_hash.update(str(key).encode()) - cond_hash.update(str(value).encode()) - - unique_name += binascii.b2a_base64(cond_hash.digest()).decode() - unique_name = unique_name[:60] - - # Build condition dict for CalCat. - cond_params = [ - { - 'parameter_name': key, - 'value': value, - 'lower_deviation_value': 0.0, - 'upper_deviation_value': 0.0, - 'flg_available': True - } - for key, value in cond_dict.items() - ] - - # Add PDU "UUID" to parameters. - cond_params.append({ - 'parameter_name': 'Detector UUID', - 'value': unpack('d', pack('q', pdu['uuid']))[0], - 'lower_deviation_value': 0.0, - 'upper_deviation_value': 0.0, - 'flg_available': True - }) - - inject_h = { - 'report': { - 'name': report_path.stem, - 'file_path': str(report_path) - }, - 'detector_condition': { - 'name': unique_name, - 'parameters': cond_params - }, - 'calibration_constant': { - 'calibration_name': calibration, - 'detector_type_name': detector_type, - 'flg_auto_approve': True - }, - 'calibration_constant_version': { - 'raw_data_location': raw_data_location, - 'file_name': const_filename, - 'path_to_file': const_root, - 'data_set_name': f'{pdu_name}/{calibration}/0', - 'start_idx': '0', - 'end_idx': '0', - 'begin_validity_at': begin_at.isoformat(), - 'end_validity_at': '', - 'begin_at': begin_at.isoformat(), - 'pdu_physical_name': pdu_name, - 'flg_good_quality': True - } - } - - resp = CalibrationClient.inject_new_calibration_constant_version( - calibration_client(), inject_h) - - if not resp['success']: - raise RuntimeError(resp) - - const_path = _get_default_caldb_root() / const_root / const_filename - const_path.parent.mkdir(parents=True, exist_ok=True) - copyfile(const_input, const_path)