|
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)
|
|
|
|
elif Path(link).is_absolute():
|
|
link = link.lstrip('/')
|
|
folder = MMACT_ROOT
|
|
|
|
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)
|
|
|