Skip to content

Commit 1fb28b1

Browse files
committed
Modernise save strategy selection
We can use match/case statements in python 3.10! RE mantidproject#38523
1 parent fe58bc6 commit 1fb28b1

File tree

1 file changed

+31
-30
lines changed

1 file changed

+31
-30
lines changed

scripts/SANS/sans/algorithm_detail/save_workspace.py

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -48,36 +48,37 @@ def get_save_strategy(file_format_bundle, file_name, save_options, additional_pr
4848
:return: a handle to a save algorithm
4949
"""
5050
file_format = file_format_bundle.file_format
51-
if file_format is SaveType.NEXUS:
52-
file_name = get_file_name(file_format_bundle, file_name, "", ".nxs")
53-
save_name = "SaveNexusProcessed"
54-
elif file_format is SaveType.CAN_SAS:
55-
file_name = get_file_name(file_format_bundle, file_name, "", ".xml")
56-
save_name = "SaveCanSAS1D"
57-
save_options.update(additional_properties)
58-
save_options.update(additional_run_numbers)
59-
elif file_format is SaveType.NX_CAN_SAS:
60-
file_name = get_file_name(file_format_bundle, file_name, "_nxcansas", ".h5")
61-
save_name = "SaveNXcanSAS"
62-
save_options.update(additional_properties)
63-
save_options.update(additional_run_numbers)
64-
elif file_format is SaveType.POL_NX_CAN_SAS:
65-
file_name = get_file_name(file_format_bundle, file_name, "_polnxcansas", ".h5")
66-
save_name = "SavePolarizedNXcanSAS"
67-
save_options.update(additional_properties)
68-
save_options.update(additional_run_numbers)
69-
elif file_format is SaveType.NIST_QXY:
70-
file_name = get_file_name(file_format_bundle, file_name, "_nistqxy", ".dat")
71-
save_name = "SaveNISTDAT"
72-
elif file_format is SaveType.RKH:
73-
file_name = get_file_name(file_format_bundle, file_name, "", ".txt")
74-
save_name = "SaveRKH"
75-
save_options.update({"Append": False})
76-
elif file_format is SaveType.CSV:
77-
file_name = get_file_name(file_format_bundle, file_name, "", ".csv")
78-
save_name = "SaveCSV"
79-
else:
80-
raise RuntimeError("SaveWorkspace: The requested data {0} format is currently not supported.".format(file_format))
51+
match file_format:
52+
case SaveType.NEXUS:
53+
file_name = get_file_name(file_format_bundle, file_name, "", ".nxs")
54+
save_name = "SaveNexusProcessed"
55+
case SaveType.CAN_SAS:
56+
file_name = get_file_name(file_format_bundle, file_name, "", ".xml")
57+
save_name = "SaveCanSAS1D"
58+
save_options.update(additional_properties)
59+
save_options.update(additional_run_numbers)
60+
case SaveType.NX_CAN_SAS:
61+
file_name = get_file_name(file_format_bundle, file_name, "_nxcansas", ".h5")
62+
save_name = "SaveNXcanSAS"
63+
save_options.update(additional_properties)
64+
save_options.update(additional_run_numbers)
65+
case SaveType.POL_NX_CAN_SAS:
66+
file_name = get_file_name(file_format_bundle, file_name, "_polnxcansas", ".h5")
67+
save_name = "SavePolarizedNXcanSAS"
68+
save_options.update(additional_properties)
69+
save_options.update(additional_run_numbers)
70+
case SaveType.NIST_QXY:
71+
file_name = get_file_name(file_format_bundle, file_name, "_nistqxy", ".dat")
72+
save_name = "SaveNISTDAT"
73+
case SaveType.RKH:
74+
file_name = get_file_name(file_format_bundle, file_name, "", ".txt")
75+
save_name = "SaveRKH"
76+
save_options.update({"Append": False})
77+
case SaveType.CSV:
78+
file_name = get_file_name(file_format_bundle, file_name, "", ".csv")
79+
save_name = "SaveCSV"
80+
case _:
81+
raise RuntimeError("SaveWorkspace: The requested data {0} format is currently not supported.".format(file_format))
8182
save_options.update({"Filename": file_name})
8283
return create_unmanaged_algorithm(save_name, **save_options)
8384

0 commit comments

Comments
 (0)