Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
yt-project
GitHub Repository: yt-project/yt
Path: blob/main/doc/helper_scripts/split_auto.py
928 views
1
import collections
2
3
templates = dict(
4
autoclass=r"""
5
%(name)s
6
%(header)s
7
8
.. autoclass:: %(name)s
9
:members:
10
:inherited-members:
11
:undoc-members:
12
13
""",
14
autofunction=r"""
15
%(name)s
16
%(header)s
17
18
.. autofunction:: %(name)s
19
20
""",
21
index_file=r"""
22
%(title)s
23
%(header)s
24
25
.. autosummary::
26
:toctree: generated/%(dn)s
27
28
""",
29
)
30
31
file_names = dict(
32
ft=("Field Types", "source/api/field_types/%s.rst"),
33
pt=("Plot Types", "source/api/plot_types/%s.rst"),
34
cl=("Callback List", "source/api/callback_list/%s.rst"),
35
ee=("Extension Types", "source/api/extension_types/%s.rst"),
36
dd=("Derived Datatypes", "source/api/derived_datatypes/%s.rst"),
37
mt=("Miscellaneous Types", "source/api/misc_types/%s.rst"),
38
fl=("Function List", "source/api/function_list/%s.rst"),
39
ds=("Data Sources", "source/api/data_sources/%s.rst"),
40
dq=("Derived Quantities", "source/api/derived_quantities/%s.rst"),
41
)
42
43
to_include = collections.defaultdict(list)
44
45
for line in open("auto_generated.txt"):
46
ftype, name, file_name = (s.strip() for s in line.split("::"))
47
cn = name.split(".")[-1]
48
if cn[0] == "_":
49
cn = cn[1:] # For leading _
50
fn = file_names[file_name][1] % cn
51
# if not os.path.exists(os.path.dirname(fn)):
52
# os.mkdir(os.path.dirname(fn))
53
header = "-" * len(name)
54
dd = dict(header=header, name=name)
55
# open(fn, "w").write(templates[ftype] % dd)
56
to_include[file_name].append(name)
57
58
for key, val in file_names.items():
59
title, file = val
60
fn = file.rsplit("/", 1)[0] + ".rst"
61
print(fn)
62
f = open(fn, "w")
63
dn = fn.split("/")[-1][:-4]
64
dd = dict(header="=" * len(title), title=title, dn=dn)
65
f.write(templates["index_file"] % dd)
66
for obj in sorted(to_include[key]):
67
f.write(f" {obj}\n")
68
69