numpy

Форк
0
/
preprocess.py 
48 строк · 1.4 Кб
1
#!/usr/bin/env python3
2
import os
3
from string import Template
4

5
def main():
6
    doxy_gen(os.path.abspath(os.path.join('..')))
7

8
def doxy_gen(root_path):
9
    """
10
    Generate Doxygen configuration file.
11
    """
12
    confs = doxy_config(root_path)
13
    build_path = os.path.join(root_path, "doc", "build", "doxygen")
14
    gen_path = os.path.join(build_path, "Doxyfile")
15
    if not os.path.exists(build_path):
16
        os.makedirs(build_path)
17
    with open(gen_path, 'w') as fd:
18
        fd.write("#Please Don't Edit! This config file was autogenerated by ")
19
        fd.write(f"doxy_gen({root_path}) in doc/preprocess.py.\n")
20
        for c in confs:
21
            fd.write(c)
22

23
class DoxyTpl(Template):
24
    delimiter = '@'
25

26
def doxy_config(root_path):
27
    """
28
    Fetch all Doxygen sub-config files and gather it with the main config file.
29
    """
30
    confs = []
31
    dsrc_path = os.path.join(root_path, "doc", "source")
32
    sub = dict(ROOT_DIR=root_path)
33
    with open(os.path.join(dsrc_path, "doxyfile")) as fd:
34
        conf = DoxyTpl(fd.read())
35
        confs.append(conf.substitute(CUR_DIR=dsrc_path, **sub))
36

37
    for dpath, _, files in os.walk(root_path):
38
        if ".doxyfile" not in files:
39
            continue
40
        conf_path = os.path.join(dpath, ".doxyfile")
41
        with open(conf_path) as fd:
42
            conf = DoxyTpl(fd.read())
43
            confs.append(conf.substitute(CUR_DIR=dpath, **sub))
44
    return confs
45

46

47
if __name__ == "__main__":
48
    main()
49

50

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.