11import logging
22import time
3- from typing import Any , Dict , List , Optional , Tuple
3+ from typing import Any , Dict , List , Optional , Tuple , cast
44
55from octoeverywhere .sentry import Sentry
66
@@ -149,6 +149,7 @@ def __init__(self, logger:logging.Logger) -> None:
149149 def OnUpdate (self , state :Dict [str , Any ]) -> None :
150150 machineStatus = state .get ("machine_status" , {})
151151 if isinstance (machineStatus , dict ):
152+ machineStatus = cast (Dict [str , Any ], machineStatus )
152153 self .MachineStatus = self ._GetIntOrNone (machineStatus , "status" , self .MachineStatus )
153154 self .SubStatus = self ._GetIntOrNone (machineStatus , "sub_status" , self .SubStatus )
154155 exceptionStatus = machineStatus .get ("exception_status" , None )
@@ -158,6 +159,7 @@ def OnUpdate(self, state:Dict[str, Any]) -> None:
158159
159160 printStatus = state .get ("print_status" , {})
160161 if isinstance (printStatus , dict ):
162+ printStatus = cast (Dict [str , Any ], printStatus )
161163 self .FileName = self ._GetStrOrNone (printStatus , "filename" , self .FileName )
162164 self .TaskId = self ._GetStrOrNone (printStatus , "uuid" , self .TaskId )
163165 self .CurrentLayer = self ._GetIntOrNone (printStatus , "current_layer" , self .CurrentLayer )
@@ -169,21 +171,25 @@ def OnUpdate(self, state:Dict[str, Any]) -> None:
169171
170172 extruder = state .get ("extruder" , {})
171173 if isinstance (extruder , dict ):
174+ extruder = cast (Dict [str , Any ], extruder )
172175 self .HotendActual = self ._GetFloatOrNone (extruder , "temperature" , self .HotendActual )
173176 self .HotendTarget = self ._GetFloatOrNone (extruder , "target" , self .HotendTarget )
174177
175178 heaterBed = state .get ("heater_bed" , {})
176179 if isinstance (heaterBed , dict ):
180+ heaterBed = cast (Dict [str , Any ], heaterBed )
177181 self .BedActual = self ._GetFloatOrNone (heaterBed , "temperature" , self .BedActual )
178182 self .BedTarget = self ._GetFloatOrNone (heaterBed , "target" , self .BedTarget )
179183
180184 chamber = state .get ("ztemperature_sensor" , state .get ("chamber" , {}))
181185 if isinstance (chamber , dict ):
186+ chamber = cast (Dict [str , Any ], chamber )
182187 self .ChamberActual = self ._GetFloatOrNone (chamber , "temperature" , self .ChamberActual )
183188 self .ChamberTarget = self ._GetFloatOrNone (chamber , "target" , self .ChamberTarget )
184189
185190 led = state .get ("led" , {})
186191 if isinstance (led , dict ):
192+ led = cast (Dict [str , Any ], led )
187193 ledStatus = led .get ("status" , None )
188194 if ledStatus is not None :
189195 self .ChamberLightOn = int (ledStatus ) > 0
@@ -239,7 +245,7 @@ def GetCurrentStatus(self) -> Tuple[Optional[str], Optional[str]]:
239245
240246 if self .MachineStatus == PrinterState .MACHINE_PRINTING :
241247 subState = self .SubStatus
242- subStateStr = PrinterState .SubStatusMap .get (subState , None )
248+ subStateStr = PrinterState .SubStatusMap .get (subState , None ) if subState is not None else None
243249 if subState in [
244250 PrinterState .SUB_EXTRUDER_PREHEATING ,
245251 PrinterState .SUB_EXTRUDER_PREHEATING_2 ,
@@ -370,6 +376,7 @@ def OnUpdate(self, msg:Dict[str, Any]) -> None:
370376 self .HardwareVersion = msg .get ("hardware_version" , self .HardwareVersion )
371377 softwareVersion = msg .get ("software_version" , None )
372378 if isinstance (softwareVersion , dict ):
379+ softwareVersion = cast (Dict [str , Any ], softwareVersion )
373380 self .OtaVersion = softwareVersion .get ("ota_version" , self .OtaVersion )
374381 self .McuVersion = softwareVersion .get ("mcu_version" , self .McuVersion )
375382 self .SocVersion = softwareVersion .get ("soc_version" , self .SocVersion )
0 commit comments