File size: 1,112 Bytes
d3dbf03
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import re
from pathlib import Path


def replace_link(pattern, template, content, file_path):
    MMACT_ROOT = Path(__file__).absolute().parents[2]
    GITHUB_PREFIX = 'https://github.com/open-mmlab/mmaction2/blob/main/'

    def replace_core(matchobj):
        name = matchobj.group(1)
        link = matchobj.group(2)
        if link.startswith('http') or link.startswith('#'):
            return template.format(name, link)
        # For link relative to project folder, such as '/configs/*/*.py'
        elif Path(link).is_absolute():
            link = link.lstrip('/')
            folder = MMACT_ROOT
        # For link relative to current file, such as './config/*.py'
        else:
            folder = file_path.parent
        file_link = link.split('#')[0]
        assert (folder / file_link).exists(), \
            f'Link not found:\n{file_path}: {folder / link}'
        rel_link = (folder / link).resolve().relative_to(MMACT_ROOT)
        link = GITHUB_PREFIX + str(rel_link)
        return template.format(name, link)

    return re.sub(pattern, replace_core, content)