<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def parse_text_data(lines_or_path, delimiter=os.linesep):
 """ Interpret input argument as lines of data. This is intended to support multiple input argument types to core model constructors. :param str | collections.Iterable lines_or_path: :param str delimiter: line separator used when parsing a raw string that's not a file :return collections.Iterable: lines of text data :raises ValueError: if primary data argument is neither a string nor another iterable """


    if os.path.isfile(lines_or_path):
        with open(lines_or_path, 'r') as f:
            return f.readlines()
    else:
        _LOGGER.debug("Not a file: '{}'".format(lines_or_path))

    if isinstance(lines_or_path, str):
        return lines_or_path.split(delimiter)
    elif isinstance(lines_or_path, Iterable):
        return lines_or_path
    else:
        raise ValueError("Unable to parse as data lines {} ({})".
                         format(lines_or_path, type(lines_or_path)))