def __read(usr_path, file_type):
    """
    Determine what path needs to be taken to read in file(s)

    :param str usr_path: Path  (optional)
    :param str file_type: File type to read
    :return none:
    """
    # is there a file path specified ?
    if usr_path:
        # Is this a URL? Download the file and return the local path
        is_url = re.match(re_url, usr_path)
        if is_url:
            # The usr_path will now be a local path to a single file. It will trigger the "elif" statement below
            usr_path = download_from_url(usr_path, get_download_path())

        # Directory path
        if os.path.isdir(usr_path):
            __read_directory(usr_path, file_type)
        # File path
        elif os.path.isfile(usr_path):
            __read_file(usr_path, file_type)
        # Invalid path given
        else:
            print("Error: Path given is invalid")

    # no path specified. ask if they want to load dir or file
    else:
        choice = ""
        count = 3
        while not choice:
            try:
                print("Choose a read option:\n1. One file\n2. Multi-file select\n3. Directory")
                choice = input("Option: ")
                print("\n")
                # now use the given file type and prompt answer to call _read_file or _read_dir
                if choice in ["1", "2", "3"]:
                    # open directory picker
                    if choice == "3":
                        __read_directory(usr_path, file_type)
                    else:
                        # open a file picker
                        __read_file(usr_path, file_type)
                    break
                else:
                    count -= 1
                if count == 0:
                    print("Error: Too many failed attempts")
                    break
            except Exception as e:
                print("Error: Invalid input: {}".format(e))
    return