docs: def Detect(self, str_in):
      """Detects paths in a given string.
  
      Args:
        str_in: String where the paths should be detected.
  
      Returns:
        A list of paths (as strings) detected inside the given string.
      """
  
      components = SplitIntoComponents(str_in)
  
      extracted_paths = set()
      for extractor in self.extractors:
        extracted_paths.update(extractor.Extract(components))
  
      results = set(extracted_paths)
  
      for post_processor in self.post_processors:
        processed_results = set()
        for result in results:
          processed_results.update(post_processor.Process(result))
        results = processed_results
  
      return results