Fix typing in the FirmwareUpdateChecker plugin.

This commit is contained in:
Remco Burema 2018-10-11 21:54:27 +02:00
parent 839016d2f3
commit f2b50c748c
3 changed files with 28 additions and 21 deletions

View file

@ -1,7 +1,9 @@
# Copyright (c) 2018 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
import json, os
import json
from typing import Callable, Dict, List, Optional
from UM.Logger import Logger
from UM.Version import Version
@ -22,7 +24,7 @@ def default_parse_version_response(response: str) -> Version:
class FirmwareUpdateCheckerLookup:
JSON_NAME_TO_VERSION_PARSE_FUNCTION = {"default": default_parse_version_response}
def __init__(self, json_path):
def __init__(self, json_path) -> None:
# Open the .json file with the needed lookup-lists for each machine(/model) and retrieve 'raw' json.
machines_json = None
with open(json_path, "r", encoding="utf-8") as json_file:
@ -32,11 +34,11 @@ class FirmwareUpdateCheckerLookup:
return
# Parse all the needed lookup-tables from the '.json' file(s) in the resources folder.
self._machine_ids = []
self._machine_per_name = {}
self._parse_version_url_per_machine = {}
self._check_urls_per_machine = {}
self._redirect_user_per_machine = {}
self._machine_ids = [] # type:List[int]
self._machine_per_name = {} # type:Dict[str, int]
self._parse_version_url_per_machine = {} # type:Dict[int, Callable]
self._check_urls_per_machine = {} # type:Dict[int, List[str]]
self._redirect_user_per_machine = {} # type:Dict[int, str]
try:
for machine_json in machines_json:
machine_id = machine_json.get("id")
@ -53,20 +55,20 @@ class FirmwareUpdateCheckerLookup:
for check_url in machine_json.get("check_urls"):
self._check_urls_per_machine[machine_id].append(check_url)
self._redirect_user_per_machine[machine_id] = machine_json.get("update_url")
except:
Logger.log('e', "Couldn't parse firmware-update-check loopup-lists from file.")
except Exception as ex:
Logger.log('e', "Couldn't parse firmware-update-check loopup-lists from file because {0}.".format(ex))
def getMachineIds(self) -> [int]:
def getMachineIds(self) -> List[int]:
return self._machine_ids
def getMachineByName(self, machine_name: str) -> int:
def getMachineByName(self, machine_name: str) -> Optional[int]:
return self._machine_per_name.get(machine_name)
def getParseVersionUrlFor(self, machine_id: int) -> str:
def getParseVersionUrlFor(self, machine_id: int) -> Optional[Callable]:
return self._parse_version_url_per_machine.get(machine_id)
def getCheckUrlsFor(self, machine_id: int) -> [str]:
def getCheckUrlsFor(self, machine_id: int) -> Optional[List[str]]:
return self._check_urls_per_machine.get(machine_id)
def getRedirectUserFor(self, machine_id: int) -> str:
def getRedirectUserFor(self, machine_id: int) -> Optional[str]:
return self._redirect_user_per_machine.get(machine_id)