docs: 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