NOT WORKING: starts changing the structure of function "deduplicate..."
This commit is contained in:
78
src/main.py
78
src/main.py
@@ -108,52 +108,58 @@ def deduplicate_instruments_from_layers(layers):
|
|||||||
lasers = []
|
lasers = []
|
||||||
chambers = []
|
chambers = []
|
||||||
rheeds = []
|
rheeds = []
|
||||||
|
elegant_dict = {}
|
||||||
for lyr in layers:
|
for lyr in layers:
|
||||||
instruments = lyr.get_instruments(apikey)
|
instruments = lyr.get_instruments(apikey)
|
||||||
lasers.append(instruments["laser_system"])
|
lasers.append(instruments["laser_system"])
|
||||||
chambers.append(instruments["deposition_chamber"])
|
chambers.append(instruments["deposition_chamber"])
|
||||||
rheeds.append(instruments["rheed_system"])
|
rheeds.append(instruments["rheed_system"])
|
||||||
|
elegant_dict[f"layer_{lyr.layer_number}"] = {
|
||||||
|
"Laser Systems": instruments["laser_system"],
|
||||||
|
"Deposition Chamber": instruments["deposition_chamber"],
|
||||||
|
"RHEED Systems": instruments["rheed_system"],
|
||||||
|
}
|
||||||
ded_lasers = list( set( lasers ) )
|
ded_lasers = list( set( lasers ) )
|
||||||
ded_chambers = list( set( chambers ) )
|
ded_chambers = list( set( chambers ) )
|
||||||
ded_rheeds = list( set( rheeds ) )
|
ded_rheeds = list( set( rheeds ) )
|
||||||
elegant_dict = {
|
elegant_dict["multilayer"] = {
|
||||||
# Keep key names human readable since they're used in the messages of the following errors
|
# Keep key names human readable since they're used in the messages of the following errors
|
||||||
"Laser Systems": ded_lasers,
|
"Laser Systems": ", ".join(ded_lasers),
|
||||||
"Deposition Chamber": ded_chambers,
|
"Deposition Chamber": ", ".join(ded_chambers),
|
||||||
"RHEED Systems": ded_rheeds
|
"RHEED Systems": ", ".join(ded_rheeds)
|
||||||
} # dictionary's name's a joke
|
} # dictionary's name's a joke
|
||||||
updated_dict = {} # use this for containing the final dataset
|
# updated_dict = {} # use this for containing the final dataset
|
||||||
for ded in elegant_dict:
|
# for ded in elegant_dict:
|
||||||
if len(elegant_dict[ded]) == 0:
|
# if len(elegant_dict[ded]) == 0:
|
||||||
# if len of list is 0 - empty list - raise error
|
# # if len of list is 0 - empty list - raise error
|
||||||
raise IndexError(f"Missing data: no Laser System, Chamber and/or RHEED System is specified in any of the Deposition-type experiments related to this sample. Fix this on eLabFTW before retrying. Affected list: {ded}.")
|
# raise IndexError(f"Missing data: no Laser System, Chamber and/or RHEED System is specified in any of the Deposition-type experiments related to this sample. Fix this on eLabFTW before retrying. Affected list: {ded}.")
|
||||||
elif len(elegant_dict[ded]) > 1:
|
# elif len(elegant_dict[ded]) > 1:
|
||||||
# if len of list is > 1 - too many values - allow the user to pick one
|
# # if len of list is > 1 - too many values - allow the user to pick one
|
||||||
print("Warning: different instruments have been used for different layers - which is currently not allowed.")
|
# print("Warning: different instruments have been used for different layers - which is currently not allowed.")
|
||||||
# there's a better way to do this but I can't remember now for the life of me...
|
# # there's a better way to do this but I can't remember now for the life of me...
|
||||||
i = 0
|
# i = 0
|
||||||
while i < len(elegant_dict[ded]):
|
# while i < len(elegant_dict[ded]):
|
||||||
print(f"{i} - {elegant_dict[ded][i]}")
|
# print(f"{i} - {elegant_dict[ded][i]}")
|
||||||
i += 1
|
# i += 1
|
||||||
ans = None
|
# ans = None
|
||||||
while not type(ans) == int or not ans in range(0, len(elegant_dict[ded])):
|
# while not type(ans) == int or not ans in range(0, len(elegant_dict[ded])):
|
||||||
ans = input("Please pick one of the previous (0, 1, ...) [default = 0]: ") or "0"
|
# ans = input("Please pick one of the previous (0, 1, ...) [default = 0]: ") or "0"
|
||||||
if ans.isdigit():
|
# if ans.isdigit():
|
||||||
ans = int(ans)
|
# ans = int(ans)
|
||||||
continue # unnecessary?
|
# continue # unnecessary?
|
||||||
updated_dict[ded] = elegant_dict[ded][ans]
|
# updated_dict[ded] = elegant_dict[ded][ans]
|
||||||
elif elegant_dict[ded][0] in ["", 0, None]:
|
# elif elegant_dict[ded][0] in ["", 0, None]:
|
||||||
# if len is 1 BUT value is "", 0 or None raise error
|
# # if len is 1 BUT value is "", 0 or None raise error
|
||||||
raise ValueError(f"Missing data: a Laser System, Chamber and/or RHEED System which is specified across all the Deposition-type experiments related to this sample is either empty or invalid. Fix this on eLabFTW before retrying. Affected list: {ded}.")
|
# raise ValueError(f"Missing data: a Laser System, Chamber and/or RHEED System which is specified across all the Deposition-type experiments related to this sample is either empty or invalid. Fix this on eLabFTW before retrying. Affected list: {ded}.")
|
||||||
else:
|
# else:
|
||||||
# if none of the previous (only 1 value), that single value is used
|
# # if none of the previous (only 1 value), that single value is used
|
||||||
updated_dict[ded] = elegant_dict[ded][0]
|
# updated_dict[ded] = elegant_dict[ded][0]
|
||||||
instruments_used_dict = {
|
# instruments_used_dict = {
|
||||||
"laser_system": updated_dict["Laser Systems"],
|
# "laser_system": updated_dict["Laser Systems"],
|
||||||
"deposition_chamber": updated_dict["Deposition Chamber"],
|
# "deposition_chamber": updated_dict["Deposition Chamber"],
|
||||||
"rheed_system": updated_dict["RHEED Systems"],
|
# "rheed_system": updated_dict["RHEED Systems"],
|
||||||
}
|
# }
|
||||||
return instruments_used_dict
|
return elegant_dict
|
||||||
|
|
||||||
### OLD CODE
|
### OLD CODE
|
||||||
# if 0 in [ len(i) for i in elegant_list ]:
|
# if 0 in [ len(i) for i in elegant_list ]:
|
||||||
|
|||||||
Reference in New Issue
Block a user