sphinxext-bsb 0.2.5__py3-none-any.whl → 5.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of sphinxext-bsb might be problematic. Click here for more details.
- {bsb/sphinxext → sphinxext/bsb}/__init__.py +396 -375
- sphinxext/bsb/project.py +108 -0
- sphinxext_bsb-5.0.0.dist-info/METADATA +18 -0
- sphinxext_bsb-5.0.0.dist-info/RECORD +6 -0
- {sphinxext_bsb-0.2.5.dist-info → sphinxext_bsb-5.0.0.dist-info}/WHEEL +1 -1
- sphinxext_bsb-5.0.0.dist-info/licenses/LICENSE +674 -0
- sphinxext_bsb-0.2.5.dist-info/METADATA +0 -14
- sphinxext_bsb-0.2.5.dist-info/RECORD +0 -4
sphinxext/bsb/project.py
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import importlib.metadata
|
|
2
|
+
import json
|
|
3
|
+
import os
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Project:
|
|
8
|
+
def __init__(self, project_name: str, project_folder: Path, monorepo=False):
|
|
9
|
+
self._project_name = project_name
|
|
10
|
+
self._root_folder = project_folder
|
|
11
|
+
self._local_only = os.getenv("BSB_LOCAL_INTERSPHINX_ONLY", "false") == "true"
|
|
12
|
+
self._monorepo = monorepo
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def name(self):
|
|
16
|
+
return self._project_name
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def monorepo(self):
|
|
20
|
+
return self._monorepo
|
|
21
|
+
|
|
22
|
+
@property
|
|
23
|
+
def copyright(self):
|
|
24
|
+
return "2021-%Y, DBBS University of Pavia"
|
|
25
|
+
|
|
26
|
+
@property
|
|
27
|
+
def authors(self):
|
|
28
|
+
return "Robin De Schepper, Dimitri Rodarie, Filippo Marchetti"
|
|
29
|
+
|
|
30
|
+
@property
|
|
31
|
+
def package_name(self):
|
|
32
|
+
return self._root_folder.stem
|
|
33
|
+
|
|
34
|
+
@property
|
|
35
|
+
def version(self):
|
|
36
|
+
return importlib.metadata.version(self.package_name)
|
|
37
|
+
|
|
38
|
+
@property
|
|
39
|
+
def extensions(self):
|
|
40
|
+
return ["sphinxext.bsb"]
|
|
41
|
+
|
|
42
|
+
@property
|
|
43
|
+
def intersphinx(self):
|
|
44
|
+
if self._monorepo:
|
|
45
|
+
return {
|
|
46
|
+
_get_mapped_name(pkg): self.interbsb(pkg)
|
|
47
|
+
for pkg in self._get_monorepo_doc_dependencies()
|
|
48
|
+
}
|
|
49
|
+
return {}
|
|
50
|
+
|
|
51
|
+
@property
|
|
52
|
+
def _doc_path(self):
|
|
53
|
+
if self._monorepo:
|
|
54
|
+
return self._root_folder / "../../packages/bsb/docs"
|
|
55
|
+
else:
|
|
56
|
+
return self._root_folder / "docs"
|
|
57
|
+
|
|
58
|
+
@property
|
|
59
|
+
def html_static_path(self):
|
|
60
|
+
return [str(self._doc_path / "_static")]
|
|
61
|
+
|
|
62
|
+
@property
|
|
63
|
+
def html_favicon(self):
|
|
64
|
+
return str(self._doc_path / "_static/bsb_ico.svg")
|
|
65
|
+
|
|
66
|
+
@property
|
|
67
|
+
def html_theme_options(self):
|
|
68
|
+
return {
|
|
69
|
+
"light_logo": "bsb.svg",
|
|
70
|
+
"dark_logo": "bsb_dark.svg",
|
|
71
|
+
"sidebar_hide_name": True,
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@property
|
|
75
|
+
def html_context(self):
|
|
76
|
+
return {
|
|
77
|
+
"maintainer": self.authors,
|
|
78
|
+
"project_pretty_name": self.name,
|
|
79
|
+
"projects": {"bsb": "https://github.com/dbbs/bsb"},
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
def interbsb(self, dep_package):
|
|
83
|
+
local_folder = (
|
|
84
|
+
self._root_folder / f"../../packages/{dep_package}/docs/_build/iso-html"
|
|
85
|
+
)
|
|
86
|
+
remote = f"https://{dep_package}.readthedocs.io/en/latest"
|
|
87
|
+
|
|
88
|
+
if self._local_only:
|
|
89
|
+
return remote, str(local_folder / "objects.inv")
|
|
90
|
+
else:
|
|
91
|
+
return remote, (None, str(local_folder / "objects.inv"))
|
|
92
|
+
|
|
93
|
+
def _get_monorepo_project(self):
|
|
94
|
+
return json.loads((self._root_folder / "project.json").read_text())
|
|
95
|
+
|
|
96
|
+
def _get_monorepo_doc_dependencies(self):
|
|
97
|
+
project = self._get_monorepo_project()
|
|
98
|
+
doc_dependencies: list[str] = (
|
|
99
|
+
project.get("targets", {}).get("docs", {}).get("dependsOn", [])
|
|
100
|
+
)
|
|
101
|
+
return [k.split(":")[0] for k in doc_dependencies if k.endswith(":iso-docs")]
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def _get_mapped_name(bsb_pkg):
|
|
105
|
+
if bsb_pkg == "bsb-core":
|
|
106
|
+
return "bsb"
|
|
107
|
+
else:
|
|
108
|
+
return bsb_pkg.replace("-", "_")
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: sphinxext-bsb
|
|
3
|
+
Version: 5.0.0
|
|
4
|
+
Summary: BSB Sphinx documentation extension
|
|
5
|
+
Requires-Python: >=3.10,<4
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
Requires-Dist: bsb-core~=6.0
|
|
10
|
+
Requires-Dist: sphinx>=8.1
|
|
11
|
+
Requires-Dist: sphinx-design~=0.6
|
|
12
|
+
|
|
13
|
+
[](https://github.com/astral-sh/ruff)
|
|
14
|
+
|
|
15
|
+
# sphinxext-bsb
|
|
16
|
+
|
|
17
|
+
Sphinx extension for the BSB documentation.
|
|
18
|
+
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
sphinxext/bsb/__init__.py,sha256=ffT_qS3a1KoFpabtqX0T-L1q4tI95tKP2NAcz54ND1o,13050
|
|
2
|
+
sphinxext/bsb/project.py,sha256=-uwzHOt6mSRH7sG-jYBuUXtSzYW3qxk7aCdhOzRp8BE,2970
|
|
3
|
+
sphinxext_bsb-5.0.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
4
|
+
sphinxext_bsb-5.0.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
5
|
+
sphinxext_bsb-5.0.0.dist-info/METADATA,sha256=nNWYixTy_y34Zd_q0SdkXVCXduNaU3bHEMNzWIfgzeQ,588
|
|
6
|
+
sphinxext_bsb-5.0.0.dist-info/RECORD,,
|