Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
probml
GitHub Repository: probml/pyprobml
Path: blob/master/internal/book2/chapter_mapping_from_toc.py
1192 views
1
from TexSoup import TexSoup
2
import regex as re
3
from probml_utils.url_utils import dict_to_csv
4
import pandas as pd
5
6
lof_file_path = "internal/book2.toc"
7
with open(lof_file_path) as fp:
8
LoF_File_Contents = fp.read()
9
soup = TexSoup(LoF_File_Contents)
10
11
chap_no_pattern = "numberline{(\d*)?}"
12
chap_name_pattern = "numberline{\d*?}(.*?})"
13
chap_no_to_name = {}
14
15
for each in soup.find_all("contentsline")[2:-1]:
16
if "contentsline{chapter}" in str(each):
17
# print(each)
18
chap_no = re.findall(chap_no_pattern, str(each))[0]
19
chap_name = re.findall(chap_name_pattern, str(each))[0][:-1]
20
chap_no_to_name[chap_no] = chap_name
21
print(chap_no_to_name)
22
dict_to_csv(chap_no_to_name, "internal/chapter_no_to_name_mapping_book2.csv", columns=["chap_no", "chap_name"])
23
24
df = pd.read_csv("internal/chapter_no_to_name_mapping_book2.csv")
25
df["Notebook"] = df["chap_no"].apply(lambda x: f"[{x:02d}/]({x:02d}/)")
26
27
md = "# Probabilistic Machine Learning: Advanced Topics\n\n## Chapters\n\n" + df.to_markdown(index=False)
28
with open("notebooks/book2/README.md", "w") as fp:
29
fp.write(md)
30
31