docs: def extract(self, html_text: str, strategy: Strategy=Strategy.ALL_TEXT) \
              -> List[Extraction]:
          """
          Extracts text from an HTML page using a variety of strategies
  
          Args:
              html_text (str): html page in string
              strategy (enum[Strategy.ALL_TEXT, Strategy.MAIN_CONTENT_RELAXED, Strategy.MAIN_CONTENT_STRICT]): one of
              Strategy.ALL_TEXT, Strategy.MAIN_CONTENT_STRICT and Strategy.MAIN_CONTENT_RELAXED
  
          Returns:
               List[Extraction]: typically a singleton list with the extracted text
          """
  
          if html_text:
              if strategy == Strategy.ALL_TEXT:
                  soup = BeautifulSoup(html_text, 'html.parser')
                  texts = soup.findAll(text=True)
                  visible_texts = filter(self._tag_visible, texts)
                  all_text = u" ".join(t.strip() for t in visible_texts)
                  return [Extraction(all_text, self.name)]
              else:
                  relax = strategy == Strategy.MAIN_CONTENT_RELAXED
                  readable = Document(html_text, recallPriority=relax).summary(html_partial=False)
                  clean_text = BeautifulSoup(readable.encode('utf-8'), 'lxml').strings
                  readability_text = ' '.join(clean_text)
                  return [Extraction(readability_text, self.name)]
          else:
              return []