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 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()))