docs: def get_sentence_xpath_tuples(filename_url_or_filelike,
                                xpath_to_text=TEXT_FINDER_XPATH):
      """
      Given a url and xpath, this function will download, parse, then
      iterate though queried text-nodes. From the resulting text-nodes,
      extract a list of (text, exact-xpath) tuples.
      """
  
      parsed_html = get_html_tree(filename_url_or_filelike)
  
      try:
          xpath_finder = parsed_html.getroot().getroottree().getpath
      except(AttributeError):
          xpath_finder = parsed_html.getroottree().getpath
  
      nodes_with_text = parsed_html.xpath(xpath_to_text)
  
      sent_xpath_pairs = [
          # hard-code paragraph breaks (there has to be a better way)
          ('\n\n' + s, xpath_finder(n)) if e == 0
          else (s, xpath_finder(n))
          for n in nodes_with_text
          for e, s in enumerate(SENTENCE_TOKEN_PATTERN.split(
              BRACKET_PATTERN.sub('', ''.join(n.xpath('.//text()')))))
          if s.endswith(tuple(SENTENCE_ENDING))
          ]
  
      return sent_xpath_pairs