Skip to content

Instantly share code, notes, and snippets.

@Kvieta1990
Created April 1, 2022 16:16
Show Gist options
  • Save Kvieta1990/8dd5e86667b83ce2b231059cb4f1289a to your computer and use it in GitHub Desktop.
Save Kvieta1990/8dd5e86667b83ce2b231059cb4f1289a to your computer and use it in GitHub Desktop.
Auto data confirmation in autoreduction routine
# >>>>> Confirm data availability >>>>>>>>>>>>>>>>
directory = os.path.join("/SNS/PG3/", ipts, "shared/autoreduce/reduction_log/")
if os.path.isdir(directory):
all_list = []
failure_list = []
for filename_check in os.listdir(directory):
if ".err" in filename_check:
if os.stat(os.path.join(directory, filename_check)).st_size != 0:
failure_list.append(filename_check.split("_")[1].split(".")[0])
if ".log" in filename_check:
all_list.append(filename_check.split("_")[1].split(".")[0])
if len(all_list) == 0:
# Confirm data -> Unknown
print("[Confirm data info] No valid data found. Thus confirmed 'Unknown'.")
confirm_output = subprocess.run(["/SNS/software/nses/bin/confirm-data", "BL-11A", ipts.split("-")[1], "1", "Auto", "-s", "Unknown"])
print("[Confirm data info] Data confirmation output,")
print(confirm_output)
else:
if len(failure_list) == 0:
# Confirm data -> Yes
print("[Confirm data info] All data processed successfully. Thus confirmed 'Yes'.")
confirm_output = subprocess.run(["/SNS/software/nses/bin/confirm-data", "BL-11A", ipts.split("-")[1], "1", "Auto", "-s", "Partially"])
print("[Confirm data info] Data confirmation output,")
print(confirm_output)
else:
if len(failure_list) < len(all_list):
# Confirm data -> Partially
print("[Confirm data info] Failures encountered in processing certain runs. Thus confirmed 'Partially'.")
print("[Confirm data info] List of failing runs:")
print("[Confirm data info] ", failure_list)
confirm_output = subprocess.run(["/SNS/software/nses/bin/confirm-data", "BL-11A", ipts.split("-")[1], "1", "Auto", "-s", "Partially"])
print("[Confirm data info] Data confirmation output,")
print(confirm_output)
else:
# Confirm data -> No
print("[Confirm data info] All data processing failed. Thus confirmed 'No'.")
print("[Confirm data info] Data confirmation output,")
confirm_output = subprocess.run(["/SNS/software/nses/bin/confirm-data", "BL-11A", ipts.split("-")[1], "1", "Auto", "-s", "No"])
print(confirm_output)
else:
print("[Confirm data error] For some reason, the 'reduction_log' directory cannot be found for")
print("[Confirm data error] " + ipts + ". Thus skipping data confirmation.")
# <<<<< Confirm data availability <<<<<<<<<<<<<<<<
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment