Browse Source

Fix type issues in old version upgrade plug-ins

The one actual change was this: To give a KeyError when stuff can't be found in a dictionary, rather than returning None there and then getting a TypeError later.

Contributes to issue CURA-5936.
Ghostkeeper 6 years ago
parent
commit
8ec7d6dba3

+ 5 - 5
plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py

@@ -4,7 +4,7 @@
 import configparser #To read config files.
 import io #To write config files to strings as if they were files.
 import os.path #To get the path to write new user profiles to.
-from typing import List, Optional, Tuple
+from typing import Dict, List, Optional, Set, Tuple
 import urllib #To serialise the user container file name properly.
 
 import UM.VersionUpgrade #To indicate that a file is of incorrect format.
@@ -33,7 +33,7 @@ class MachineInstance:
     #   \param serialised A string with the contents of a machine instance file,
     #   without extension.
     #   \param filename The supposed file name of this machine instance.
-    def __init__(self, serialised: str, filename: str) -> str:
+    def __init__(self, serialised: str, filename: str) -> None:
         self._filename = filename
 
         config = configparser.ConfigParser(interpolation = None)
@@ -54,11 +54,11 @@ class MachineInstance:
         self._type_name = config.get("general", "type")
         self._variant_name = config.get("general", "variant", fallback = "empty_variant")
         self._name = config.get("general", "name", fallback = "")
-        self._key = config.get("general", "key", fallback = None)
+        self._key = config.get("general", "key", fallback = "")
         self._active_profile_name = config.get("general", "active_profile", fallback = "empty_quality")
         self._active_material_name = config.get("general", "material", fallback = "empty_material")
 
-        self._machine_setting_overrides = {}
+        self._machine_setting_overrides = {} # type: Dict[str, str]
         for key, value in config["machine_settings"].items():
             self._machine_setting_overrides[key] = value
 
@@ -109,7 +109,7 @@ class MachineInstance:
 
         version_upgrade_manager = UM.VersionUpgradeManager.VersionUpgradeManager.getInstance()
         user_version_to_paths_dict = version_upgrade_manager.getStoragePaths("user")
-        paths_set = set()
+        paths_set = set() # type: Set[str]
         for paths in user_version_to_paths_dict.values():
             paths_set |= paths
 

+ 4 - 4
plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py

@@ -59,11 +59,11 @@ class Preferences:
         #Translate the setting names in the visible settings.
         if self._config.has_section("machines") and self._config.has_option("machines", "setting_visibility"):
             visible_settings = self._config.get("machines", "setting_visibility")
-            visible_settings = visible_settings.split(",")
+            visible_settings_list = visible_settings.split(",")
             import VersionUpgrade21to22 #Import here to prevent a circular dependency.
-            visible_settings = [VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateSettingName(setting_name)
-                                for setting_name in visible_settings]
-            visible_settings = ",".join(visible_settings)
+            visible_settings_list = [VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateSettingName(setting_name)
+                                for setting_name in visible_settings_list]
+            visible_settings = ",".join(visible_settings_list)
             self._config.set("machines", "setting_visibility", value = visible_settings)
 
         #Translate the active_instance key.

+ 6 - 6
plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py

@@ -22,11 +22,11 @@ class VersionUpgrade22to24(VersionUpgrade):
         config.read_string(serialised) # Read the input string as config file.
         if config.get("metadata", "type") == "definition_changes":
             # This is not a container stack, don't upgrade it here
-            return
+            return None
 
         config.set("general", "version", "3")
 
-        container_list = []
+        container_list = [] # type: List[str]
         if config.has_section("containers"):
             for index, container_id in config.items("containers"):
                 container_list.append(container_id)
@@ -37,14 +37,14 @@ class VersionUpgrade22to24(VersionUpgrade):
         user_variants = self.__getUserVariants()
         name_path_dict = {}
         for variant in user_variants:
-            name_path_dict[variant.get("name")] = variant.get("path")
+            name_path_dict[variant["name"]] = variant["path"]
 
         user_variant_names = set(container_list).intersection(name_path_dict.keys())
         if len(user_variant_names):
             # One of the user defined variants appears in the list of containers in the stack.
 
             for variant_name in user_variant_names: # really there should just be one variant to convert.
-                config_name = self.__convertVariant(name_path_dict.get(variant_name))
+                config_name = self.__convertVariant(name_path_dict[variant_name])
 
                 # Change the name of variant and insert empty_variant into the stack.
                 new_container_list = []
@@ -64,8 +64,8 @@ class VersionUpgrade22to24(VersionUpgrade):
 
             config.remove_option("general", "containers")
 
-            for index in range(len(container_list)):
-                config.set("containers", str(index), container_list[index])
+            for idx in range(len(container_list)):
+                config.set("containers", str(idx), container_list[idx])
 
         output = io.StringIO()
         config.write(output)