Spaces:
Runtime error
Runtime error
Benjamin Bossan
commited on
Commit
•
2481b28
1
Parent(s):
2174ccd
Add table of contents
Browse files
edit.py
CHANGED
@@ -223,10 +223,23 @@ def create_form_from_section(
|
|
223 |
|
224 |
|
225 |
def display_sections(model_card: card.Card) -> None:
|
226 |
-
for
|
227 |
-
|
228 |
-
|
229 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
230 |
|
231 |
|
232 |
def display_model_card(model_card: card.Card) -> None:
|
@@ -236,6 +249,10 @@ def display_model_card(model_card: card.Card) -> None:
|
|
236 |
# strip metadata
|
237 |
with st.expander("show metadata"):
|
238 |
st.text(metadata)
|
|
|
|
|
|
|
|
|
239 |
st.markdown(rendered, unsafe_allow_html=True)
|
240 |
|
241 |
|
|
|
223 |
|
224 |
|
225 |
def display_sections(model_card: card.Card) -> None:
|
226 |
+
for section_info in iterate_key_section_content(model_card._data):
|
227 |
+
create_form_from_section(
|
228 |
+
model_card,
|
229 |
+
key=section_info.return_key,
|
230 |
+
section_name=section_info.title,
|
231 |
+
content=section_info.content,
|
232 |
+
is_fig=section_info.is_fig,
|
233 |
+
)
|
234 |
+
|
235 |
+
|
236 |
+
def display_toc(model_card: card.Card) -> None:
|
237 |
+
elements = []
|
238 |
+
for section_info in iterate_key_section_content(model_card._data):
|
239 |
+
title, level = section_info.title, section_info.level
|
240 |
+
section_name = split_subsection_names(title)[-1]
|
241 |
+
elements.append(" " * level + "- " + section_name)
|
242 |
+
st.markdown("\n".join(elements))
|
243 |
|
244 |
|
245 |
def display_model_card(model_card: card.Card) -> None:
|
|
|
249 |
# strip metadata
|
250 |
with st.expander("show metadata"):
|
251 |
st.text(metadata)
|
252 |
+
|
253 |
+
with st.expander("Table of Contents"):
|
254 |
+
display_toc(model_card)
|
255 |
+
|
256 |
st.markdown(rendered, unsafe_allow_html=True)
|
257 |
|
258 |
|
utils.py
CHANGED
@@ -4,6 +4,7 @@ from __future__ import annotations
|
|
4 |
|
5 |
import base64
|
6 |
import re
|
|
|
7 |
from pathlib import Path
|
8 |
from typing import Iterator
|
9 |
|
@@ -61,11 +62,21 @@ def process_card_for_rendering(rendered: str) -> tuple[str, str]:
|
|
61 |
return metadata, rendered_with_img
|
62 |
|
63 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
def iterate_key_section_content(
|
65 |
data: dict[str, Section],
|
66 |
parent_section: str = "",
|
67 |
parent_keys: list[str] | None = None,
|
68 |
-
|
|
|
69 |
parent_keys = parent_keys or []
|
70 |
|
71 |
for key, val in data.items():
|
@@ -79,11 +90,18 @@ def iterate_key_section_content(
|
|
79 |
|
80 |
return_key = key if not parent_keys else "/".join(parent_keys + [key])
|
81 |
is_fig = getattr(val, "is_fig", False)
|
82 |
-
yield
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
|
84 |
if val.subsections:
|
85 |
yield from iterate_key_section_content(
|
86 |
val.subsections,
|
87 |
parent_section=title,
|
88 |
parent_keys=parent_keys + [key],
|
|
|
89 |
)
|
|
|
4 |
|
5 |
import base64
|
6 |
import re
|
7 |
+
from dataclasses import dataclass
|
8 |
from pathlib import Path
|
9 |
from typing import Iterator
|
10 |
|
|
|
62 |
return metadata, rendered_with_img
|
63 |
|
64 |
|
65 |
+
@dataclass(frozen=True)
|
66 |
+
class SectionInfo:
|
67 |
+
return_key: str
|
68 |
+
title: str
|
69 |
+
content: str
|
70 |
+
is_fig: bool
|
71 |
+
level: int
|
72 |
+
|
73 |
+
|
74 |
def iterate_key_section_content(
|
75 |
data: dict[str, Section],
|
76 |
parent_section: str = "",
|
77 |
parent_keys: list[str] | None = None,
|
78 |
+
level=0,
|
79 |
+
) -> SectionInfo:
|
80 |
parent_keys = parent_keys or []
|
81 |
|
82 |
for key, val in data.items():
|
|
|
90 |
|
91 |
return_key = key if not parent_keys else "/".join(parent_keys + [key])
|
92 |
is_fig = getattr(val, "is_fig", False)
|
93 |
+
yield SectionInfo(
|
94 |
+
return_key=return_key,
|
95 |
+
title=title,
|
96 |
+
content=val.content,
|
97 |
+
is_fig=is_fig,
|
98 |
+
level=level,
|
99 |
+
)
|
100 |
|
101 |
if val.subsections:
|
102 |
yield from iterate_key_section_content(
|
103 |
val.subsections,
|
104 |
parent_section=title,
|
105 |
parent_keys=parent_keys + [key],
|
106 |
+
level=level + 1,
|
107 |
)
|