def METHOD_NAME(self, s):
    """
    parse and split string, respecting escape characters
    """
    ret = []
    current = []
    itr = iter(s)
    for ch in itr:
        if ch == self.path_escape:
            try:
                # skip the next character; it has been escaped and remove
                # escape character
                current.append(next(itr))
            except StopIteration:
                # escape character on end of the string is safest to ignore, as buildbot for
                # each secret identifier tries all secret providers until value is found,
                # meaning we may end up parsing identifiers for other secret providers, where
                # our escape character may be valid on end of string
                pass
        elif ch == self.path_delimiter:
            # split! (add current to the list and reset it)
            ret.append(''.join(current))
            current = []
        else:
            current.append(ch)
    ret.append(''.join(current))
    return ret