from pathlib import Path from typing import Union def gen_md_from_configs(config_root_dir: Union[Path, str], target_md_path: Union[Path, str] = 'model_zoo.md', prefix: str = '') -> None: def to_path(p: Union[Path, str]) -> Path: if isinstance(p, Path): return p if isinstance(p, str): return Path(p) raise ValueError(f'Unsupported type: {type(p)}') config_root_dir = to_path(config_root_dir) target_md_path = to_path(target_md_path) readme_path_list = [] for readme_path in config_root_dir.rglob('README.md'): if readme_path.exists(): config_name = readme_path.parent.name path = prefix / readme_path readme_path_list.append((config_name, path.as_posix())) with target_md_path.open('w', encoding='utf8') as f: f.write('# Model Zoo\n\n') f.write('## Baselines\n\n') for name, path in readme_path_list: f.write(f'### {name.upper()}\n\n') f.write( f'Please refer to [{name.upper()}]({path}) for details.\n\n') if __name__ == '__main__': gen_md_from_configs('configs', 'docs/en/model_zoo.md', '/')