mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-22 05:39:37 +08:00

This spelling is in Ultimaker's style guide. We use g-code, and capitalise the G if it's at the start of a sentence or header. Pretty good score, considering there are literally thousands of user- or log-visible strings mentioning g-code across Cura.
36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
# Copyright (c) 2020 Ultimaker B.V.
|
|
# Cura is released under the terms of the LGPLv3 or higher.
|
|
|
|
import gzip
|
|
|
|
from UM.Mesh.MeshReader import MeshReader #The class we're extending/implementing.
|
|
from UM.MimeTypeDatabase import MimeTypeDatabase, MimeType #To add the .gcode.gz files to the MIME type database.
|
|
from UM.PluginRegistry import PluginRegistry
|
|
|
|
|
|
class GCodeGzReader(MeshReader):
|
|
"""A file reader that reads gzipped g-code.
|
|
|
|
If you're zipping g-code, you might as well use gzip!
|
|
"""
|
|
|
|
def __init__(self) -> None:
|
|
super().__init__()
|
|
MimeTypeDatabase.addMimeType(
|
|
MimeType(
|
|
name = "application/x-cura-compressed-gcode-file",
|
|
comment = "Cura Compressed G-code File",
|
|
suffixes = ["gcode.gz"]
|
|
)
|
|
)
|
|
self._supported_extensions = [".gcode.gz"]
|
|
|
|
def _read(self, file_name):
|
|
with open(file_name, "rb") as file:
|
|
file_data = file.read()
|
|
uncompressed_gcode = gzip.decompress(file_data).decode("utf-8")
|
|
PluginRegistry.getInstance().getPluginObject("GCodeReader").preReadFromStream(uncompressed_gcode)
|
|
result = PluginRegistry.getInstance().getPluginObject("GCodeReader").readFromStream(uncompressed_gcode, file_name)
|
|
|
|
return result
|