def clean_error_list(self): self.logger.info('Cleaning unsent error reports') for error in self.get_my_errors(): #this try is used for thread safety try: config.get_error_reports().remove(error) except: pass
def forget_sent_data(self, kw_message): keys = kw_message.keys() if 'reset_printer_type' in keys: self.printer_type_reset_request = False self.stop_flag = True self.logger.info("Got answer on command request with printer type reset field. Shutting down printer interface") if 'selected_groups' in keys: self.printer_groups_change_request = None if 'select_name' in keys: self.printer_rename_request = False if 'camera_change' in keys: self.camera_update = False for error in kw_message.get('error', []): try: config.get_error_reports().remove(error) except Exception as e: self.logger.info("Can't remove error %s from errors list. Error:%s" % (str(error), str(e)))
def get_my_errors( self ): #TODO refactor the error system. This protection is not enough. try: # protection against mutation during iterating return list( filter(lambda error: error['usb_info'] == self.usb_info, config.get_error_reports())) except: self.logger.warning( "Multithreading gone wrong with error reports deque. Returning no errors for now..." ) return ()
def forget_sent_data(self, kw_message): keys = kw_message.keys() if 'reset_printer_type' in keys: self.printer_type_reset_request = False self.stop_flag = True self.logger.info( "Got answer on command request with printer type reset field. Shutting down printer interface" ) if 'selected_groups' in keys: self.printer_groups_change_request = None if 'select_name' in keys: self.printer_rename_request = False if 'camera_change' in keys: self.camera_update = False for error in kw_message.get('error', []): try: config.get_error_reports().remove(error) except Exception as e: self.logger.info( "Can't remove error %s from errors list. Error:%s" % (str(error), str(e)))
def get_my_errors(self): #TODO refactor the error system. This protection is not enough. try: # protection against mutation during iterating return list(filter(lambda error: error['usb_info'] == self.usb_info, config.get_error_reports())) except: self.logger.warning("Multithreading gone wrong with error reports deque. Returning no errors for now...") return ()
def get_my_errors(self): return list(filter(lambda error: error['usb_info'] == self.usb_info, config.get_error_reports()))