mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-22 06:03:57 -06:00
Added missing typing
This commit is contained in:
parent
d9135ac72f
commit
abcc621cc6
2 changed files with 23 additions and 22 deletions
|
@ -2,18 +2,19 @@
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
import re
|
import re
|
||||||
from typing import Dict
|
from typing import Dict, List, Optional, Union
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt, pyqtProperty, pyqtSignal
|
from PyQt5.QtCore import Qt, pyqtProperty, pyqtSignal
|
||||||
|
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
|
|
||||||
|
|
||||||
## Model that holds cura packages. By setting the filter property the instances held by this model can be changed.
|
## Model that holds cura packages. By setting the filter property the instances held by this model can be changed.
|
||||||
class AuthorsModel(ListModel):
|
class AuthorsModel(ListModel):
|
||||||
def __init__(self, parent = None):
|
def __init__(self, parent = None) -> None:
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
|
||||||
self._metadata = None
|
self._metadata = None # type: Optional[List[Dict[str, Union[str, List[str], int]]]]
|
||||||
|
|
||||||
self.addRoleName(Qt.UserRole + 1, "id")
|
self.addRoleName(Qt.UserRole + 1, "id")
|
||||||
self.addRoleName(Qt.UserRole + 2, "name")
|
self.addRoleName(Qt.UserRole + 2, "name")
|
||||||
|
@ -25,39 +26,39 @@ class AuthorsModel(ListModel):
|
||||||
self.addRoleName(Qt.UserRole + 8, "description")
|
self.addRoleName(Qt.UserRole + 8, "description")
|
||||||
|
|
||||||
# List of filters for queries. The result is the union of the each list of results.
|
# List of filters for queries. The result is the union of the each list of results.
|
||||||
self._filter = {} # type: Dict[str,str]
|
self._filter = {} # type: Dict[str, str]
|
||||||
|
|
||||||
def setMetadata(self, data):
|
def setMetadata(self, data: List[Dict[str, Union[str, List[str], int]]]):
|
||||||
self._metadata = data
|
self._metadata = data
|
||||||
self._update()
|
self._update()
|
||||||
|
|
||||||
def _update(self):
|
def _update(self) -> None:
|
||||||
items = []
|
items = [] # type: List[Dict[str, Union[str, List[str], int, None]]]
|
||||||
if not self._metadata:
|
if not self._metadata:
|
||||||
self.setItems([])
|
self.setItems(items)
|
||||||
return
|
return
|
||||||
|
|
||||||
for author in self._metadata:
|
for author in self._metadata:
|
||||||
items.append({
|
items.append({
|
||||||
"id": author["author_id"],
|
"id": author.get("author_id"),
|
||||||
"name": author["display_name"],
|
"name": author.get("display_name"),
|
||||||
"email": author["email"] if "email" in author else None,
|
"email": author.get("email"),
|
||||||
"website": author["website"],
|
"website": author.get("website"),
|
||||||
"package_count": author["package_count"] if "package_count" in author else 0,
|
"package_count": author.get("package_count", 0),
|
||||||
"package_types": author["package_types"] if "package_types" in author else [],
|
"package_types": author.get("package_types", []),
|
||||||
"icon_url": author["icon_url"] if "icon_url" in author else None,
|
"icon_url": author.get("icon_url"),
|
||||||
"description": "Material and quality profiles from {author_name}".format(author_name = author["display_name"])
|
"description": "Material and quality profiles from {author_name}".format(author_name = author.get("display_name", ""))
|
||||||
})
|
})
|
||||||
|
|
||||||
# Filter on all the key-word arguments.
|
# Filter on all the key-word arguments.
|
||||||
for key, value in self._filter.items():
|
for key, value in self._filter.items():
|
||||||
if key is "package_types":
|
if key is "package_types":
|
||||||
key_filter = lambda item, value = value: value in item["package_types"]
|
key_filter = lambda item, value = value: value in item["package_types"] # type: ignore
|
||||||
elif "*" in value:
|
elif "*" in value:
|
||||||
key_filter = lambda item, key = key, value = value: self._matchRegExp(item, key, value)
|
key_filter = lambda item, key = key, value = value: self._matchRegExp(item, key, value) # type: ignore
|
||||||
else:
|
else:
|
||||||
key_filter = lambda item, key = key, value = value: self._matchString(item, key, value)
|
key_filter = lambda item, key = key, value = value: self._matchString(item, key, value) # type: ignore
|
||||||
items = filter(key_filter, items)
|
items = filter(key_filter, items) # type: ignore
|
||||||
|
|
||||||
# Execute all filters.
|
# Execute all filters.
|
||||||
filtered_items = list(items)
|
filtered_items = list(items)
|
||||||
|
@ -72,7 +73,7 @@ class AuthorsModel(ListModel):
|
||||||
self._filter = filter_dict
|
self._filter = filter_dict
|
||||||
self._update()
|
self._update()
|
||||||
|
|
||||||
@pyqtProperty("QVariantMap", fset = setFilter, constant = True)
|
@pyqtProperty("QStringMap", fset = setFilter, constant = True)
|
||||||
def filter(self) -> Dict[str, str]:
|
def filter(self) -> Dict[str, str]:
|
||||||
return self._filter
|
return self._filter
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ class PackagesModel(ListModel):
|
||||||
self.addRoleName(Qt.UserRole + 12, "last_updated")
|
self.addRoleName(Qt.UserRole + 12, "last_updated")
|
||||||
self.addRoleName(Qt.UserRole + 13, "is_bundled")
|
self.addRoleName(Qt.UserRole + 13, "is_bundled")
|
||||||
self.addRoleName(Qt.UserRole + 14, "is_active")
|
self.addRoleName(Qt.UserRole + 14, "is_active")
|
||||||
self.addRoleName(Qt.UserRole + 15, "is_installed") # Scheduled pkgs are included in the model but should not be marked as actually installed
|
self.addRoleName(Qt.UserRole + 15, "is_installed") # Scheduled pkgs are included in the model but should not be marked as actually installed
|
||||||
self.addRoleName(Qt.UserRole + 16, "has_configs")
|
self.addRoleName(Qt.UserRole + 16, "has_configs")
|
||||||
self.addRoleName(Qt.UserRole + 17, "supported_configs")
|
self.addRoleName(Qt.UserRole + 17, "supported_configs")
|
||||||
self.addRoleName(Qt.UserRole + 18, "download_count")
|
self.addRoleName(Qt.UserRole + 18, "download_count")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue