@classmethod
def _one_argument(cls, data):
    """Parse a single argument from data.

        This always returns exactly two values; if there is no remaining data
        after parsing one argument, the second value will be an empty string.
        If there was no data worth parsing, both values will be empty strings.

        :param str data: The data to get an argument from
        :returns tuple<str,str>: The parsed argument and any remaining data

        """
    data = data.lstrip()
    if not data:
        return '', ''
    if data[0] in cls.delimiters[0]:
        delimiter = cls.delimiters[0].index(data[0])
        delimiter_end = cls.delimiters[1][delimiter]
        closed = False
        try:
            end = data.index(delimiter_end, 1)
            closed = True
        except ValueError:
            end = len(data)
        arg = data[1:end]
        if closed:
            end += 1
        if not arg:
            return cls._one_argument(data[end:])
    else:
        end = 1
        data_end = len(data)
        stop_on = ' \n\r\t' + cls.delimiters[0]
        while end < data_end:
            if data[end] in stop_on:
                break
            end += 1
        arg = data[:end]
    return arg, data[end:]
