code: def __parse_error(self, text):
          
          m = self.__size_expr.match(text)
          if m is not None:
              self.errcode = b""
              self.errmsg = self.__read_block(int(m.group(1)) + 2)
              return
  
          m = self.__error_expr.match(text)
          if m is None:
              raise Error("Bad error message")
          if m.group(1) is not None:
              self.errcode = m.group(1).strip(b"()")
          else:
              self.errcode = b""
          self.errmsg = m.group(2).strip(b'"')
docs: Parse an error received from the server.
  
          if text corresponds to a size indication, we grab the
          remaining content from the server.
  
          Otherwise, we try to match an error of the form \(\w+\)?\s*".+"
  
          On succes, the two public members errcode and errmsg are
          filled with the parsing results.
  
          :param text: the response to parse