def METHOD_NAME(self, extra=None):
    if len(self.data) <= 0:
        return ("STOP", extra)
    index = None
    if self.start_char is not None:
        try:
            index = self.data[1:].index(self.read_termination_characters)
            index = index + 1
        except ValueError:
            pass
    else:
        try:
            index = self.data.index(self.read_termination_characters)
        except ValueError:
            pass
    # Reduce to packet data and setup current_data for next packet
    if index is not None:
        if index > 0:
            packet_data = self.data[
                0 : (index + len(self.read_termination_characters))
            ]
        else:  # self.data begins with the termination characters
            packet_data = self.data[0 : (len(self.read_termination_characters))]
        self.data = self.data[(index + len(self.read_termination_characters)) :]
        return (packet_data, extra)
    else:
        return ("STOP", extra)