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.

@@ -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
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](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,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: flit 3.11.0
2
+ Generator: flit 3.12.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any