job_status and base_panel: supress is twice as slow than directly checking if the key exist
This commit is contained in:
parent
5b7da9a9b8
commit
6f6f0d3f13
@ -8,7 +8,6 @@ from gi.repository import GLib, Gtk, Pango
|
||||
from jinja2 import Environment
|
||||
from datetime import datetime
|
||||
from math import log
|
||||
from contextlib import suppress
|
||||
from ks_includes.screen_panel import ScreenPanel
|
||||
|
||||
|
||||
@ -198,12 +197,11 @@ class BasePanel(ScreenPanel):
|
||||
if action == "notify_update_response":
|
||||
if self.update_dialog is None:
|
||||
self.show_update_dialog()
|
||||
with suppress(KeyError):
|
||||
if 'message' in data:
|
||||
self.labels['update_progress'].set_text(
|
||||
f"{self.labels['update_progress'].get_text().strip()}\n"
|
||||
f"{data['message']}\n")
|
||||
with suppress(KeyError):
|
||||
if data['complete']:
|
||||
if 'complete' in data and data['complete']:
|
||||
logging.info("Update complete")
|
||||
if self.update_dialog is not None:
|
||||
try:
|
||||
@ -230,8 +228,8 @@ class BasePanel(ScreenPanel):
|
||||
name = f"{name[:1].upper()}: "
|
||||
self.labels[device].set_label(f"{name}{int(temp)}°")
|
||||
|
||||
with suppress(Exception):
|
||||
if self.current_extruder is not False and data["toolhead"]["extruder"] != self.current_extruder:
|
||||
if (self.current_extruder is not False and 'toolhead' in data and 'extruder' in data['toolhead']
|
||||
and data["toolhead"]["extruder"] != self.current_extruder):
|
||||
self.control['temp_box'].remove(self.labels[f"{self.current_extruder}_box"])
|
||||
self.current_extruder = data["toolhead"]["extruder"]
|
||||
self.control['temp_box'].pack_start(self.labels[f"{self.current_extruder}_box"], True, True, 3)
|
||||
|
@ -5,7 +5,6 @@ import gi
|
||||
|
||||
gi.require_version("Gtk", "3.0")
|
||||
from gi.repository import GLib, Gtk, Pango
|
||||
from contextlib import suppress
|
||||
from math import pi, sqrt, trunc
|
||||
from statistics import median
|
||||
from time import time
|
||||
@ -487,41 +486,41 @@ class Panel(ScreenPanel):
|
||||
f"{data['display_status']['message'] if data['display_status']['message'] is not None else ''}"
|
||||
)
|
||||
|
||||
with suppress(KeyError):
|
||||
if data["toolhead"]["extruder"] != self.current_extruder:
|
||||
if 'toolhead' in data:
|
||||
if 'extruder' in data['toolhead'] and data['toolhead']['extruder'] != self.current_extruder:
|
||||
self.labels['temp_grid'].remove_column(0)
|
||||
self.labels['temp_grid'].insert_column(0)
|
||||
self.current_extruder = data["toolhead"]["extruder"]
|
||||
self.labels['temp_grid'].attach(self.buttons['extruder'][self.current_extruder], 0, 0, 1, 1)
|
||||
self._screen.show_all()
|
||||
with suppress(KeyError):
|
||||
if "max_accel" in data["toolhead"]:
|
||||
self.labels['max_accel'].set_label(f"{data['toolhead']['max_accel']:.0f} {self.mms2}")
|
||||
with suppress(KeyError):
|
||||
if 'extruder' in data and 'pressure_advance' in data['extruder']:
|
||||
self.labels['advance'].set_label(f"{data['extruder']['pressure_advance']:.2f}")
|
||||
|
||||
if "gcode_move" in data:
|
||||
with suppress(KeyError):
|
||||
if 'gcode_move' in data:
|
||||
if 'gcode_position' in data['gcode_move']:
|
||||
self.pos_z = round(float(data['gcode_move']['gcode_position'][2]), 2)
|
||||
self.buttons['z'].set_label(f"Z: {self.pos_z:6.2f}{f'/{self.oheight}' if self.oheight > 0 else ''}")
|
||||
with suppress(KeyError):
|
||||
self.extrusion = round(float(data["gcode_move"]["extrude_factor"]) * 100)
|
||||
if 'extrude_factor' in data['gcode_move']:
|
||||
self.extrusion = round(float(data['gcode_move']['extrude_factor']) * 100)
|
||||
self.labels['extrude_factor'].set_label(f"{self.extrusion:3}%")
|
||||
with suppress(KeyError):
|
||||
self.speed = round(float(data["gcode_move"]["speed_factor"]) * 100)
|
||||
self.speed_factor = float(data["gcode_move"]["speed_factor"])
|
||||
if 'speed_factor' in data['gcode_move']:
|
||||
self.speed = round(float(data['gcode_move']['speed_factor']) * 100)
|
||||
self.speed_factor = float(data['gcode_move']['speed_factor'])
|
||||
self.labels['speed_factor'].set_label(f"{self.speed:3}%")
|
||||
with suppress(KeyError):
|
||||
if 'speed' in data['gcode_move']:
|
||||
self.req_speed = round(float(data["gcode_move"]["speed"]) / 60 * self.speed_factor)
|
||||
self.labels['req_speed'].set_label(
|
||||
f"{self.speed}% {self.vel:3.0f}/{self.req_speed:3.0f} "
|
||||
f"{f'{self.mms}' if self.vel < 1000 and self.req_speed < 1000 and self._screen.width > 500 else ''}"
|
||||
)
|
||||
self.buttons['speed'].set_label(self.labels['req_speed'].get_label())
|
||||
with suppress(KeyError):
|
||||
self.zoffset = float(data["gcode_move"]["homing_origin"][2])
|
||||
if 'homing_origin' in data['gcode_move']:
|
||||
self.zoffset = float(data['gcode_move']['homing_origin'][2])
|
||||
self.labels['zoffset'].set_label(f"{self.zoffset:.3f} {self.mm}")
|
||||
if "motion_report" in data:
|
||||
with suppress(KeyError):
|
||||
if 'motion_report' in data:
|
||||
if 'live_position' in data['motion_report']:
|
||||
self.labels['pos_x'].set_label(f"X: {data['motion_report']['live_position'][0]:6.2f}")
|
||||
self.labels['pos_y'].set_label(f"Y: {data['motion_report']['live_position'][1]:6.2f}")
|
||||
self.labels['pos_z'].set_label(f"Z: {data['motion_report']['live_position'][2]:6.2f}")
|
||||
@ -533,14 +532,14 @@ class Panel(ScreenPanel):
|
||||
evelocity = (pos[3] - self.prev_pos[0][3]) / interval
|
||||
self.flowstore.append(self.fila_section * evelocity)
|
||||
self.prev_pos = [pos, now]
|
||||
with suppress(KeyError):
|
||||
if 'live_velocity' in data['motion_report']:
|
||||
self.vel = float(data["motion_report"]["live_velocity"])
|
||||
self.labels['req_speed'].set_label(
|
||||
f"{self.speed}% {self.vel:3.0f}/{self.req_speed:3.0f} "
|
||||
f"{f'{self.mms}' if self.vel < 1000 and self.req_speed < 1000 and self._screen.width > 500 else ''}"
|
||||
)
|
||||
self.buttons['speed'].set_label(self.labels['req_speed'].get_label())
|
||||
with suppress(KeyError):
|
||||
if 'live_extruder_velocity' in data['motion_report']:
|
||||
self.flowstore.append(self.fila_section * float(data["motion_report"]["live_extruder_velocity"]))
|
||||
fan_label = ""
|
||||
for fan in self.fans:
|
||||
@ -549,24 +548,23 @@ class Panel(ScreenPanel):
|
||||
if fan_label:
|
||||
self.buttons['fan'].set_label(fan_label[:12])
|
||||
if "print_stats" in data:
|
||||
with suppress(KeyError):
|
||||
if 'state' in data['print_stats']:
|
||||
self.set_state(
|
||||
data["print_stats"]["state"],
|
||||
msg=f'{data["print_stats"]["message"] if "message" in data["print_stats"] else ""}'
|
||||
)
|
||||
with suppress(KeyError):
|
||||
if 'filename' in data['print_stats']:
|
||||
self.update_filename(data['print_stats']["filename"])
|
||||
with suppress(KeyError):
|
||||
if 'filament_used' in data["print_stats"]:
|
||||
if 'filament_used' in data['print_stats']:
|
||||
self.labels['filament_used'].set_label(
|
||||
f"{float(data['print_stats']['filament_used']) / 1000:.1f} m"
|
||||
)
|
||||
if 'info' in data["print_stats"]:
|
||||
with suppress(KeyError):
|
||||
if data["print_stats"]['info']['total_layer'] is not None:
|
||||
if ('total_layer' in data['print_stats']['info']
|
||||
and data["print_stats"]['info']['total_layer'] is not None):
|
||||
self.labels['total_layers'].set_label(f"{data['print_stats']['info']['total_layer']}")
|
||||
with suppress(KeyError):
|
||||
if data["print_stats"]['info']['current_layer'] is not None:
|
||||
if ('current_layer' in data['print_stats']['info']
|
||||
and data['print_stats']['info']['current_layer'] is not None):
|
||||
self.labels['layer'].set_label(
|
||||
f"{data['print_stats']['info']['current_layer']} / "
|
||||
f"{self.labels['total_layers'].get_text()}"
|
||||
@ -601,18 +599,15 @@ class Panel(ScreenPanel):
|
||||
estimated = slicer_time = filament_time = file_time = 0
|
||||
timeleft_type = self._config.get_config()['main'].get('print_estimate_method', 'auto')
|
||||
|
||||
with suppress(KeyError):
|
||||
if self.file_metadata['estimated_time'] > 1:
|
||||
# speed_factor compensation based on empirical testing
|
||||
if 'estimated_time' in self.file_metadata and self.file_metadata['estimated_time'] > 1:
|
||||
spdcomp = sqrt(self.speed_factor)
|
||||
slicer_time = ((self.file_metadata['estimated_time']) / spdcomp)
|
||||
self.labels["slicer_time"].set_label(self.format_time(slicer_time))
|
||||
|
||||
with suppress(Exception):
|
||||
if self.file_metadata['filament_total'] >= fila_used:
|
||||
if 'filament_total' in self.file_metadata and self.file_metadata['filament_total'] >= fila_used > 0:
|
||||
filament_time = (print_duration / (fila_used / self.file_metadata['filament_total']))
|
||||
self.labels["filament_time"].set_label(self.format_time(filament_time))
|
||||
with suppress(ZeroDivisionError):
|
||||
if progress > 0:
|
||||
file_time = (print_duration / progress)
|
||||
self.labels["file_time"].set_label(self.format_time(file_time))
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user