'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.'

def Detect(self, str_in):

    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
