code: def _handle_amqp_frame(self, data_in):
          
          if not data_in:
              return data_in, None, None
          try:
              byte_count, channel_id, frame_in = pamqp_frame.unmarshal(data_in)
              return data_in[byte_count:], channel_id, frame_in
          except pamqp_exception.UnmarshalingException:
              pass
          except specification.AMQPFrameError as why:
              LOGGER.error('AMQPFrameError: %r', why, exc_info=True)
          except ValueError as why:
              LOGGER.error(why, exc_info=True)
              self.exceptions.append(AMQPConnectionError(why))
          return data_in, None, None
docs: Unmarshal a single AMQP frame and return the result.
  
          :param data_in: socket data
  
          :return: data_in, channel_id, frame