Skip to content

Commit 0f7d629

Browse files
committed
docs: architecture page
1 parent 3a02ae8 commit 0f7d629

File tree

1 file changed

+110
-0
lines changed

1 file changed

+110
-0
lines changed

docs/get-started/architecture.qmd

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
---
2+
title: Architecture
3+
jupyter:
4+
kernelspec:
5+
display_name: Python 3 (ipykernel)
6+
language: python
7+
name: python3
8+
---
9+
10+
:::{.column-page-right}
11+
12+
```{mermaid}
13+
%%| fig-width: 10
14+
classDiagram
15+
16+
class BuilderConfig {
17+
style: str
18+
package: str
19+
version: str = None
20+
dir: str = "Reference"
21+
title: str = "Function reference"
22+
sections: list[SectionConfig]
23+
out_inventory: str = "objects.json"
24+
out_inder: str = "index.qmd"
25+
renderer: Renderer
26+
}
27+
28+
class SectionConfig {
29+
title: str
30+
desc: str
31+
//
32+
// list of api functions
33+
contents: list[str]
34+
}
35+
36+
37+
class Introspect {
38+
// functions for analyzing python objects
39+
// and docstrings
40+
get_object(module, object_name) -> griffe object
41+
42+
}
43+
44+
class Inventory {
45+
// functions to work with sphinx inventories,
46+
// which are used for cross-references
47+
convert_inventory(in_name, out_name)
48+
create_inventory(project, version, items, ...)
49+
50+
}
51+
class Renderer {
52+
style: str
53+
header_level: int = 2
54+
show_signature: bool = True
55+
hook_pre: Callable = None
56+
render(el: griffe object)
57+
}
58+
59+
class Builder {
60+
// Includes all BuilderConfig properties
61+
...BuilderConfig
62+
63+
//
64+
// via create_* methods
65+
items: dict[str, griffe object]
66+
inventory: sphobjinv.Inventory
67+
68+
69+
build()
70+
create_items()
71+
create_inventory()
72+
fetch_object_uri()
73+
fetch_object_dispname()
74+
render_index()
75+
write_doc_pages()
76+
from_config() -> Builder
77+
}
78+
79+
class BuilderPkgdown {
80+
// write R pkgdown style docs
81+
style: "pkgdown"
82+
render_index()
83+
fetch_object_uri()
84+
fetch_object_dispname()
85+
}
86+
87+
class BuilderSinglePage {
88+
// writes one big page of docs
89+
style: "single-page"
90+
render_index()
91+
fetch_object_uri()
92+
write_doc_pages()
93+
}
94+
95+
class MdRenderer {
96+
render()
97+
}
98+
99+
100+
Builder <|-- BuilderPkgdown
101+
Builder <|-- BuilderSinglePage
102+
BuilderConfig --> SectionConfig
103+
BuilderConfig <-- Builder: from_config
104+
Introspect <-- Builder: create_items
105+
Inventory <-- Builder: create_inventory(self.package, ..., self.items, self.fetch_*)
106+
Renderer <-- Builder
107+
Renderer <|-- MdRenderer
108+
```
109+
110+
:::

0 commit comments

Comments
 (0)