from app.document_validator import path_is_valid import re ''' Replaces the matched regular exp with link via html ''' def create_url(match: re.Match) -> str: path: str = match.group(1) page: str = match.group(2) lines: str = match.group(3) start: str = match.group(4) if not path_is_valid(path): return "" return f'[Source]' ''' Replaces all occurrences of citation pattern with links ''' def add_links(response: str) -> str: citation_format = r'\[Source:\s*([^,]+?)\s*,\s*Page:\s*(\d+)\s*,\s*Lines:\s*(\d+\s*-\s*\d+)\s*,\s*Start:?\s*(\d+)\]' return re.sub(pattern=citation_format, repl=create_url, string=response)