mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-07 06:57:28 -06:00
Fix typing
CURA-6643
This commit is contained in:
parent
946b2b943e
commit
79f11286a6
3 changed files with 19 additions and 11 deletions
|
@ -1331,9 +1331,8 @@ class CuraApplication(QtApplication):
|
||||||
gcode_filename = None # type: Optional[str]
|
gcode_filename = None # type: Optional[str]
|
||||||
for node in DepthFirstIterator(self.getController().getScene().getRoot()):
|
for node in DepthFirstIterator(self.getController().getScene().getRoot()):
|
||||||
# Objects loaded from Gcode should also be included.
|
# Objects loaded from Gcode should also be included.
|
||||||
gcode_list_decorator = node.getDecorator(GCodeListDecorator)
|
gcode_filename = node.callDecoration("getGcodeFileName")
|
||||||
if gcode_list_decorator is not None and gcode_list_decorator.getGcodeFileName():
|
if gcode_filename is not None:
|
||||||
gcode_filename = gcode_list_decorator.getGcodeFileName()
|
|
||||||
break
|
break
|
||||||
|
|
||||||
if not isinstance(node, CuraSceneNode) or not node.getMeshData():
|
if not isinstance(node, CuraSceneNode) or not node.getMeshData():
|
||||||
|
@ -1353,7 +1352,6 @@ class CuraApplication(QtApplication):
|
||||||
|
|
||||||
for node in nodes:
|
for node in nodes:
|
||||||
mesh_data = node.getMeshData()
|
mesh_data = node.getMeshData()
|
||||||
gcode_list_decorator = node.getDecorator(GCodeListDecorator)
|
|
||||||
if mesh_data and mesh_data.getFileName():
|
if mesh_data and mesh_data.getFileName():
|
||||||
job = ReadMeshJob(mesh_data.getFileName())
|
job = ReadMeshJob(mesh_data.getFileName())
|
||||||
job._node = node # type: ignore
|
job._node = node # type: ignore
|
||||||
|
|
|
@ -292,7 +292,7 @@ class FlavorParser:
|
||||||
extruder.getProperty("machine_nozzle_offset_y", "value")]
|
extruder.getProperty("machine_nozzle_offset_y", "value")]
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def processGCodeStream(self, stream: str, filename: str) -> Optional[CuraSceneNode]:
|
def processGCodeStream(self, stream: str, filename: str) -> Optional["CuraSceneNode"]:
|
||||||
Logger.log("d", "Preparing to load GCode")
|
Logger.log("d", "Preparing to load GCode")
|
||||||
self._cancelled = False
|
self._cancelled = False
|
||||||
# We obtain the filament diameter from the selected extruder to calculate line widths
|
# We obtain the filament diameter from the selected extruder to calculate line widths
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Copyright (c) 2018 Ultimaker B.V.
|
# Copyright (c) 2018 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from typing import Optional
|
from typing import Optional, Union, List, TYPE_CHECKING
|
||||||
|
|
||||||
from UM.FileHandler.FileReader import FileReader
|
from UM.FileHandler.FileReader import FileReader
|
||||||
from UM.Mesh.MeshReader import MeshReader
|
from UM.Mesh.MeshReader import MeshReader
|
||||||
|
@ -10,11 +10,15 @@ from UM.i18n import i18nCatalog
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.MimeTypeDatabase import MimeTypeDatabase, MimeType
|
from UM.MimeTypeDatabase import MimeTypeDatabase, MimeType
|
||||||
|
|
||||||
from cura.Scene.CuraSceneNode import CuraSceneNode
|
|
||||||
|
|
||||||
catalog = i18nCatalog("cura")
|
catalog = i18nCatalog("cura")
|
||||||
|
|
||||||
|
from .FlavorParser import FlavorParser
|
||||||
from . import MarlinFlavorParser, RepRapFlavorParser
|
from . import MarlinFlavorParser, RepRapFlavorParser
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from UM.Scene.SceneNode import SceneNode
|
||||||
|
from cura.Scene.CuraSceneNode import CuraSceneNode
|
||||||
|
|
||||||
|
|
||||||
# Class for loading and parsing G-code files
|
# Class for loading and parsing G-code files
|
||||||
class GCodeReader(MeshReader):
|
class GCodeReader(MeshReader):
|
||||||
|
@ -34,7 +38,7 @@ class GCodeReader(MeshReader):
|
||||||
)
|
)
|
||||||
self._supported_extensions = [".gcode", ".g"]
|
self._supported_extensions = [".gcode", ".g"]
|
||||||
|
|
||||||
self._flavor_reader = None
|
self._flavor_reader = None # type: Optional[FlavorParser]
|
||||||
|
|
||||||
Application.getInstance().getPreferences().addPreference("gcodereader/show_caution", True)
|
Application.getInstance().getPreferences().addPreference("gcodereader/show_caution", True)
|
||||||
|
|
||||||
|
@ -59,9 +63,15 @@ class GCodeReader(MeshReader):
|
||||||
return self.preReadFromStream(file_data, args, kwargs)
|
return self.preReadFromStream(file_data, args, kwargs)
|
||||||
|
|
||||||
def readFromStream(self, stream: str, filename: str) -> Optional["CuraSceneNode"]:
|
def readFromStream(self, stream: str, filename: str) -> Optional["CuraSceneNode"]:
|
||||||
|
if self._flavor_reader is None:
|
||||||
|
return None
|
||||||
return self._flavor_reader.processGCodeStream(stream, filename)
|
return self._flavor_reader.processGCodeStream(stream, filename)
|
||||||
|
|
||||||
def _read(self, file_name: str) -> Optional["CuraSceneNode"]:
|
def _read(self, file_name: str) -> Union["SceneNode", List["SceneNode"]]:
|
||||||
with open(file_name, "r", encoding = "utf-8") as file:
|
with open(file_name, "r", encoding = "utf-8") as file:
|
||||||
file_data = file.read()
|
file_data = file.read()
|
||||||
return self.readFromStream(file_data, file_name)
|
result = [] # type: List[SceneNode]
|
||||||
|
node = self.readFromStream(file_data, file_name)
|
||||||
|
if node is not None:
|
||||||
|
result.append(node)
|
||||||
|
return result
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue