def upgrade_settings(self, setting_values, variable_revision_number, module_name): PC_DEFAULT = "Default output folder" PC_WITH_IMAGE = "Same folder as image" if variable_revision_number == 1: # # Minor change: Default output directory -> folder # new_setting_values = [setting_values[0]] for offset in range(1, len(setting_values), 6): dir_choice = setting_values[offset + 4] custom_path = setting_values[offset + 5] if dir_choice == PC_CUSTOM: if custom_path[0] == ".": dir_choice = DEFAULT_OUTPUT_SUBFOLDER_NAME elif custom_path[0] == "&": dir_choice = DEFAULT_OUTPUT_SUBFOLDER_NAME custom_path = "." + custom_path[1:] else: dir_choice = ABSOLUTE_FOLDER_NAME directory = Directory.static_join_string(dir_choice, custom_path) new_setting_values += setting_values[offset : (offset + 4)] new_setting_values += [directory] setting_values = new_setting_values variable_revision_number = 2 # Standardize input/output directory name references setting_values = list(setting_values) for offset in range(5, len(setting_values), VARIABLE_SETTING_COUNT): setting_values[offset] = Directory.upgrade_setting(setting_values[offset]) return setting_values, variable_revision_number
def upgrade_settings(self, setting_values, variable_revision_number, module_name): """Adjust the setting values based on the version that saved them """ if variable_revision_number == 1: setting_values = (setting_values[:4] + [NO, ""] + setting_values[4:]) variable_revision_number = 2 # Standardize input/output directory name references SLOT_DIRCHOICE = 1 directory = setting_values[SLOT_DIRCHOICE] directory = Directory.upgrade_setting(directory) setting_values = (setting_values[:SLOT_DIRCHOICE] + [directory] + setting_values[SLOT_DIRCHOICE + 1:]) return setting_values, variable_revision_number
def upgrade_settings(self, setting_values, variable_revision_number, module_name): if variable_revision_number == 1: # # Added CPA rules # setting_values = ( setting_values[:11] + [MODE_MEASUREMENTS, DEFAULT_INPUT_FOLDER_NAME, ".",] + setting_values[11:] ) variable_revision_number = 2 if variable_revision_number == 2: # # Forgot file name (???!!!) # setting_values = setting_values[:14] + ["rules.txt"] + setting_values[14:] variable_revision_number = 3 if variable_revision_number == 3: # # Allowed multiple measurements # Structure changed substantially. # ( target_name, object_name, measurement, filter_choice, enclosing_objects, wants_minimum, minimum_value, wants_maximum, maximum_value, wants_outlines, outlines_name, rules_or_measurements, rules_directory_choice, rules_path_name, rules_file_name, ) = setting_values[:15] additional_object_settings = setting_values[15:] additional_object_count = len(additional_object_settings) // 4 setting_values = [ target_name, object_name, rules_or_measurements, filter_choice, enclosing_objects, wants_outlines, outlines_name, rules_directory_choice, rules_path_name, rules_file_name, "1", str(additional_object_count), measurement, wants_minimum, minimum_value, wants_maximum, maximum_value, ] + additional_object_settings variable_revision_number = 4 if variable_revision_number == 4: # # Used Directory to combine directory choice & custom path # rules_directory_choice = setting_values[7] rules_path_name = setting_values[8] if rules_directory_choice == DIR_CUSTOM: rules_directory_choice = ABSOLUTE_FOLDER_NAME if rules_path_name.startswith("."): rules_directory_choice = DEFAULT_INPUT_SUBFOLDER_NAME elif rules_path_name.startswith("&"): rules_directory_choice = DEFAULT_OUTPUT_SUBFOLDER_NAME rules_path_name = "." + rules_path_name[1:] rules_directory = Directory.static_join_string( rules_directory_choice, rules_path_name ) setting_values = setting_values[:7] + [rules_directory] + setting_values[9:] variable_revision_number = 5 if variable_revision_number == 5: # # added rules class # setting_values = setting_values[:9] + ["1"] + setting_values[9:] variable_revision_number = 6 if variable_revision_number == 6: # # Added per-object assignment # setting_values = ( setting_values[:FIXED_SETTING_COUNT_V6] + [PO_BOTH] + setting_values[FIXED_SETTING_COUNT_V6:] ) variable_revision_number = 7 if variable_revision_number == 7: x_name = setting_values[1] y_name = setting_values[0] measurement_count = int(setting_values[10]) additional_object_count = int(setting_values[11]) n_measurement_settings = measurement_count * 5 additional_object_settings = setting_values[13 + n_measurement_settings :] additional_object_names = additional_object_settings[::4] additional_target_names = additional_object_settings[1::4] new_additional_object_settings = sum( [ [object_name, target_name] for object_name, target_name in zip( additional_object_names, additional_target_names ) ], [], ) setting_values = ( [x_name, y_name] + setting_values[2:5] + setting_values[7 : 13 + n_measurement_settings] + new_additional_object_settings ) variable_revision_number = 8 slot_directory = 5 setting_values[slot_directory] = Directory.upgrade_setting( setting_values[slot_directory] ) return setting_values, variable_revision_number