From f06bc53365e7deceb9807504474eb7e54ad06b46 Mon Sep 17 00:00:00 2001 From: Juniper Tyree Date: Mon, 20 Jul 2026 09:05:08 +0300 Subject: [PATCH] Up-to-date docs requirements --- docs/hooks/.gitignore | 1 + docs/hooks/macros.py | 11 +++++++++++ docs/requirements.txt | 3 ++- docs/try-repl.md | 18 +++++++++++++++++- properdocs.yml | 5 +++++ 5 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 docs/hooks/.gitignore create mode 100644 docs/hooks/macros.py diff --git a/docs/hooks/.gitignore b/docs/hooks/.gitignore new file mode 100644 index 000000000..eeb8a6ec4 --- /dev/null +++ b/docs/hooks/.gitignore @@ -0,0 +1 @@ +**/__pycache__ diff --git a/docs/hooks/macros.py b/docs/hooks/macros.py new file mode 100644 index 000000000..5fc4fe3ca --- /dev/null +++ b/docs/hooks/macros.py @@ -0,0 +1,11 @@ +import importlib.metadata + + +def define_env(env): + @env.macro + def requirements(): + packages = dict() + for package in sorted(set(importlib.metadata.packages_distributions().keys())): + if package.startswith("numcodecs-wasm") or package.startswith("numcodecs_wasm"): + packages[package] = importlib.metadata.version(package) + return packages diff --git a/docs/requirements.txt b/docs/requirements.txt index ec951cb63..a440873c4 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -28,10 +28,11 @@ properdocs properdocs-theme-readthedocs mkdocstrings[python] +mkdocs-exclude mkdocs-include-markdown-plugin mkdocs-gen-files mkdocs-literate-nav -mkdocs-exclude +mkdocs-macros-plugin Pygments diff --git a/docs/try-repl.md b/docs/try-repl.md index 981e26d7c..fbf9e56df 100644 --- a/docs/try-repl.md +++ b/docs/try-repl.md @@ -1,3 +1,7 @@ +--- +render_macros: true +--- + # Try the `numcodecs-wasm-*` codecs using JupyterLite /// details | **Warning:** JupyterLite may not work in every web browser @@ -34,6 +38,18 @@ plt.show()\ // example package lazy dependencies "crc32c", "msgpack", -]})); +]})) + "&pyodideKernelEnv=" + encodeURIComponent(JSON.stringify({"$override": { + "CLIMET_LAB_BOOTSTRAP_CODE": `\ +def preinstall_packages(lines): + return """ +import micropip +await micropip.install([ + f"{package}=={version}" for package, version in {{ requirements() }}.items() +]) +""".splitlines(keepends=True) + lines +preinstall_packages.has_side_effects = True +ip.input_transformers_cleanup.append(preinstall_packages) +`, +}})); }); diff --git a/properdocs.yml b/properdocs.yml index be33a0511..dba387fa7 100644 --- a/properdocs.yml +++ b/properdocs.yml @@ -47,6 +47,11 @@ plugins: - requirements.txt - search - autorefs + - macros: + module_name: docs/hooks/macros + on_error_fail: true + on_undefined: strict + render_by_default: false - mkdocstrings: enable_inventory: true handlers: