From 0acc6c784794b8e2c0a345a989368feca22a99be Mon Sep 17 00:00:00 2001
From: Aleksey Veresov
Date: Fri, 23 Jan 2026 15:31:56 +0100
Subject: [PATCH 1/7] Automatize API building
---
docs/css/custom.css | 15 +++-----
.../python/material/class.html.jinja | 37 +++++++++++++++++++
.../python/material/function.html.jinja | 37 +++++++++++++++++++
mkdocs.yml | 14 ++++++-
requirements-docs.txt | 3 +-
5 files changed, 94 insertions(+), 12 deletions(-)
diff --git a/docs/css/custom.css b/docs/css/custom.css
index c09c2be37..806330d39 100644
--- a/docs/css/custom.css
+++ b/docs/css/custom.css
@@ -171,24 +171,21 @@
/*******************************************************/
/* Fix z-index. */
-header.md-header {
- z-index: 900 !important;
+.md-overlay {
+ z-index: 800 !important;
}
.md-sidebar {
- z-index: 1000 !important;
+ z-index: 900 !important;
}
-.md-overlay {
- z-index: 950 !important;
+header.md-header {
+ z-index: 1000 !important;
}
.md-search__overlay {
z-index: 1100 !important;
}
-.md-search__form {
+.md-search__inner {
z-index: 1200 !important;
}
-.md-search__output {
- z-index: 1100 !important;
-}
/*******************************************************/
/* Hide repo stats. */
diff --git a/docs/templates/python/material/class.html.jinja b/docs/templates/python/material/class.html.jinja
index 40687fccf..1ee1faa2b 100644
--- a/docs/templates/python/material/class.html.jinja
+++ b/docs/templates/python/material/class.html.jinja
@@ -1,6 +1,24 @@
{% extends "_base/class.html.jinja" %}
{% block heading scoped %}
+ {% block alias_anchors scoped %}
+ {% if class.hopsworks_aliases and class.hopsworks_aliases.aliases %}
+ {% for alias in class.hopsworks_aliases.aliases -%}
+ {% for path in alias.paths -%}
+ {%- set alias_id = path + "." + (alias.as_alias or alias.object_name) -%}
+ {% filter heading(
+ heading_level,
+ role="class",
+ id=alias_id,
+ class="doc doc-heading",
+ hidden=true,
+ skip_inventory=config.skip_local_inventory,
+ ) -%}{%- endfilter %}
+ {%- endfor %}
+ {%- endfor %}
+ {% endif %}
+ {% endblock alias_anchors %}
+
{% block source_link scoped %}
{% if config.extra.link_source and class.source_link %}
[source]
@@ -10,3 +28,22 @@
{{ super() }}
{% endblock heading %}
+
+{% block contents scoped %}
+ {% block aliases scoped %}
+ {% if class.hopsworks_aliases and class.hopsworks_aliases.aliases %}
+
+ Aliases: {% for alias in class.hopsworks_aliases.aliases -%}
+ {% for path in alias.paths -%}
+ {%- set fullpath = path + "." + (alias.as_alias or alias.object_name) -%}
+ {{fullpath}}
+ {%- if not loop.last %}, {% endif %}
+ {%- endfor %}
+ {%- if not loop.last %}, {% endif %}
+ {%- endfor %}
+
+ {% endif %}
+ {% endblock aliases %}
+
+ {{ super() }}
+{% endblock contents %}
diff --git a/docs/templates/python/material/function.html.jinja b/docs/templates/python/material/function.html.jinja
index 7d621a25e..2a41f81db 100644
--- a/docs/templates/python/material/function.html.jinja
+++ b/docs/templates/python/material/function.html.jinja
@@ -1,6 +1,24 @@
{% extends "_base/function.html.jinja" %}
{% block heading scoped %}
+ {% block alias_anchors scoped %}
+ {% if function.hopsworks_aliases and function.hopsworks_aliases.aliases %}
+ {% for alias in function.hopsworks_aliases.aliases -%}
+ {% for path in alias.paths -%}
+ {%- set alias_id = path + "." + (alias.as_alias or alias.object_name) -%}
+ {% filter heading(
+ heading_level,
+ role="function",
+ id=alias_id,
+ class="doc doc-heading",
+ hidden=true,
+ skip_inventory=config.skip_local_inventory,
+ ) -%}{%- endfilter %}
+ {%- endfor %}
+ {%- endfor %}
+ {% endif %}
+ {% endblock alias_anchors %}
+
{% block source_link scoped %}
{% if config.extra.link_source and function.source_link %}
[source]
@@ -10,3 +28,22 @@
{{ super() }}
{% endblock heading %}
+
+{% block contents scoped %}
+ {% block aliases scoped %}
+ {% if function.hopsworks_aliases and function.hopsworks_aliases.aliases %}
+
+ Aliases: {% for alias in function.hopsworks_aliases.aliases -%}
+ {% for path in alias.paths -%}
+ {%- set fullpath = path + "." + (alias.as_alias or alias.object_name) -%}
+ {{fullpath}}
+ {%- if not loop.last %}, {% endif %}
+ {%- endfor %}
+ {%- if not loop.last %}, {% endif %}
+ {%- endfor %}
+
+ {% endif %}
+ {% endblock aliases %}
+
+ {{ super() }}
+{% endblock contents %}
diff --git a/mkdocs.yml b/mkdocs.yml
index 474307ba1..567c52edf 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -264,7 +264,7 @@ nav:
- Access Audit Logs: setup_installation/admin/audit/audit-logs.md
- Export Audit Logs: setup_installation/admin/audit/export-audit-logs.md
- ArrowFlight Server with DuckDB: setup_installation/common/arrow_flight_duckdb.md
- - Python API: "!import https://github.com/logicalclocks/hopsworks-api?branch=main"
+ - Python API: python-api
- Java API: javadoc
- Community ↗: https://community.hopsworks.ai/
@@ -333,7 +333,15 @@ plugins:
minify_js: true
- mike:
canonical_version: latest
- - multirepo
+ - api-autonav:
+ modules:
+ - hopsworks
+ - hopsworks_common
+ - hsfs
+ - hsml
+ nav_section_title: Python API
+ api_root_uri: python-api
+ hide_empty: true
- mkdocstrings:
custom_templates: docs/templates
handlers:
@@ -351,6 +359,8 @@ plugins:
annotations_path: source
extra:
link_source: true
+ extensions:
+ - hopsworks_aliases.extension
inventories:
- https://docs.python.org/3/objects.inv
- https://pandas.pydata.org/docs/objects.inv
diff --git a/requirements-docs.txt b/requirements-docs.txt
index e3e38fea1..6ccf073dd 100644
--- a/requirements-docs.txt
+++ b/requirements-docs.txt
@@ -4,7 +4,8 @@ mike==2.1.3
markdown==3.9
pymdown-extensions==10.17.2
mkdocs-minify-plugin>=0.2.0
-mkdocs-multirepo-plugin==0.8.3
+mkdocs-api-autonav@git+https://github.com/aversey/mkdocs-api-autonav.git
+hopsworks-aliases@git+https://github.com/aversey/hopsworks-aliases.git
mkdocstrings[python]==1.0.0
mkdocstrings-python==2.0.1
linkchecker
From 82b638b6ab7a4da6bb691b17d2ca5157e5a19091 Mon Sep 17 00:00:00 2001
From: Aleksey Veresov
Date: Tue, 27 Jan 2026 14:35:11 +0100
Subject: [PATCH 2/7] Show only public entities
---
mkdocs.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/mkdocs.yml b/mkdocs.yml
index 567c52edf..50071e251 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -357,6 +357,7 @@ plugins:
show_source: false
docstring_section_style: spacy
annotations_path: source
+ filters: public
extra:
link_source: true
extensions:
From f6edd029c37e62afc09bce682fcc61b05df4213b Mon Sep 17 00:00:00 2001
From: Aleksey Veresov
Date: Wed, 4 Feb 2026 12:38:43 +0100
Subject: [PATCH 3/7] Show public aliases
---
.../python/material/class.html.jinja | 35 ++++++++-----------
.../python/material/function.html.jinja | 35 ++++++++-----------
mkdocs.yml | 8 ++---
requirements-docs.txt | 3 +-
4 files changed, 35 insertions(+), 46 deletions(-)
diff --git a/docs/templates/python/material/class.html.jinja b/docs/templates/python/material/class.html.jinja
index 1ee1faa2b..5820ed5a5 100644
--- a/docs/templates/python/material/class.html.jinja
+++ b/docs/templates/python/material/class.html.jinja
@@ -2,19 +2,17 @@
{% block heading scoped %}
{% block alias_anchors scoped %}
- {% if class.hopsworks_aliases and class.hopsworks_aliases.aliases %}
- {% for alias in class.hopsworks_aliases.aliases -%}
- {% for path in alias.paths -%}
- {%- set alias_id = path + "." + (alias.as_alias or alias.object_name) -%}
- {% filter heading(
- heading_level,
- role="class",
- id=alias_id,
- class="doc doc-heading",
- hidden=true,
- skip_inventory=config.skip_local_inventory,
- ) -%}{%- endfilter %}
- {%- endfor %}
+ {% if class.extra.hopsworks_apigen and class.extra.hopsworks_apigen.aliases %}
+ {% for alias in class.extra.hopsworks_apigen.aliases if alias.is_public -%}
+ {%- set alias_id = alias.target_module + "." + alias.alias_name -%}
+ {% filter heading(
+ heading_level+9,
+ role="class",
+ id=alias_id,
+ class="doc doc-heading",
+ hidden=true,
+ skip_inventory=config.skip_local_inventory,
+ ) -%}{%- endfilter %}
{%- endfor %}
{% endif %}
{% endblock alias_anchors %}
@@ -31,14 +29,11 @@
{% block contents scoped %}
{% block aliases scoped %}
- {% if class.hopsworks_aliases and class.hopsworks_aliases.aliases %}
+ {% if class.extra.hopsworks_apigen and class.extra.hopsworks_apigen.aliases %}
- Aliases: {% for alias in class.hopsworks_aliases.aliases -%}
- {% for path in alias.paths -%}
- {%- set fullpath = path + "." + (alias.as_alias or alias.object_name) -%}
- {{fullpath}}
- {%- if not loop.last %}, {% endif %}
- {%- endfor %}
+ Aliases: {% for alias in class.extra.hopsworks_apigen.aliases if alias.is_public -%}
+ {%- set fullpath = alias.target_module + "." + alias.alias_name -%}
+ {{fullpath}}
{%- if not loop.last %}, {% endif %}
{%- endfor %}
diff --git a/docs/templates/python/material/function.html.jinja b/docs/templates/python/material/function.html.jinja
index 2a41f81db..e940070d2 100644
--- a/docs/templates/python/material/function.html.jinja
+++ b/docs/templates/python/material/function.html.jinja
@@ -2,19 +2,17 @@
{% block heading scoped %}
{% block alias_anchors scoped %}
- {% if function.hopsworks_aliases and function.hopsworks_aliases.aliases %}
- {% for alias in function.hopsworks_aliases.aliases -%}
- {% for path in alias.paths -%}
- {%- set alias_id = path + "." + (alias.as_alias or alias.object_name) -%}
- {% filter heading(
- heading_level,
- role="function",
- id=alias_id,
- class="doc doc-heading",
- hidden=true,
- skip_inventory=config.skip_local_inventory,
- ) -%}{%- endfilter %}
- {%- endfor %}
+ {% if function.extra.hopsworks_apigen and function.extra.hopsworks_apigen.aliases %}
+ {% for alias in function.extra.hopsworks_apigen.aliases if alias.is_public -%}
+ {%- set alias_id = alias.target_module + "." + alias.alias_name -%}
+ {% filter heading(
+ heading_level+9,
+ role="function",
+ id=alias_id,
+ class="doc doc-heading",
+ hidden=true,
+ skip_inventory=config.skip_local_inventory,
+ ) -%}{%- endfilter %}
{%- endfor %}
{% endif %}
{% endblock alias_anchors %}
@@ -31,14 +29,11 @@
{% block contents scoped %}
{% block aliases scoped %}
- {% if function.hopsworks_aliases and function.hopsworks_aliases.aliases %}
+ {% if function.extra.hopsworks_apigen and function.extra.hopsworks_apigen.aliases %}
- Aliases: {% for alias in function.hopsworks_aliases.aliases -%}
- {% for path in alias.paths -%}
- {%- set fullpath = path + "." + (alias.as_alias or alias.object_name) -%}
- {{fullpath}}
- {%- if not loop.last %}, {% endif %}
- {%- endfor %}
+ Aliases: {% for alias in function.extra.hopsworks_apigen.aliases if alias.is_public -%}
+ {%- set fullpath = alias.target_module + "." + alias.alias_name -%}
+ {{fullpath}}
{%- if not loop.last %}, {% endif %}
{%- endfor %}
diff --git a/mkdocs.yml b/mkdocs.yml
index 50071e251..0758f36b6 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -333,15 +333,14 @@ plugins:
minify_js: true
- mike:
canonical_version: latest
- - api-autonav:
+ - hopsworks-apigen:
modules:
- - hopsworks
- hopsworks_common
- hsfs
- hsml
+ - hopsworks
nav_section_title: Python API
api_root_uri: python-api
- hide_empty: true
- mkdocstrings:
custom_templates: docs/templates
handlers:
@@ -354,6 +353,7 @@ plugins:
signature_crossrefs: true
show_symbol_type_heading: true
show_symbol_type_toc: true
+ members_order: source
show_source: false
docstring_section_style: spacy
annotations_path: source
@@ -361,7 +361,7 @@ plugins:
extra:
link_source: true
extensions:
- - hopsworks_aliases.extension
+ - hopsworks_apigen.mkdocs
inventories:
- https://docs.python.org/3/objects.inv
- https://pandas.pydata.org/docs/objects.inv
diff --git a/requirements-docs.txt b/requirements-docs.txt
index 6ccf073dd..426d9e472 100644
--- a/requirements-docs.txt
+++ b/requirements-docs.txt
@@ -4,8 +4,7 @@ mike==2.1.3
markdown==3.9
pymdown-extensions==10.17.2
mkdocs-minify-plugin>=0.2.0
-mkdocs-api-autonav@git+https://github.com/aversey/mkdocs-api-autonav.git
-hopsworks-aliases@git+https://github.com/aversey/hopsworks-aliases.git
+hopsworks-apigen@git+https://github.com/aversey/hopsworks-aliases.git
mkdocstrings[python]==1.0.0
mkdocstrings-python==2.0.1
linkchecker
From 9cf2c3bf0f053df716b755927c0c8b19e851d813 Mon Sep 17 00:00:00 2001
From: Aleksey Veresov
Date: Wed, 4 Feb 2026 12:40:58 +0100
Subject: [PATCH 4/7] Skip the primary alias
---
.../python/material/class.html.jinja | 28 +++++++++++--------
.../python/material/function.html.jinja | 28 +++++++++++--------
2 files changed, 32 insertions(+), 24 deletions(-)
diff --git a/docs/templates/python/material/class.html.jinja b/docs/templates/python/material/class.html.jinja
index 5820ed5a5..4b4af7d63 100644
--- a/docs/templates/python/material/class.html.jinja
+++ b/docs/templates/python/material/class.html.jinja
@@ -4,15 +4,17 @@
{% block alias_anchors scoped %}
{% if class.extra.hopsworks_apigen and class.extra.hopsworks_apigen.aliases %}
{% for alias in class.extra.hopsworks_apigen.aliases if alias.is_public -%}
- {%- set alias_id = alias.target_module + "." + alias.alias_name -%}
- {% filter heading(
- heading_level+9,
- role="class",
- id=alias_id,
- class="doc doc-heading",
- hidden=true,
- skip_inventory=config.skip_local_inventory,
- ) -%}{%- endfilter %}
+ {% if not loop.first %}
+ {%- set alias_id = alias.target_module + "." + alias.alias_name -%}
+ {% filter heading(
+ heading_level+9,
+ role="class",
+ id=alias_id,
+ class="doc doc-heading",
+ hidden=true,
+ skip_inventory=config.skip_local_inventory,
+ ) -%}{%- endfilter %}
+ {% endif %}
{%- endfor %}
{% endif %}
{% endblock alias_anchors %}
@@ -32,9 +34,11 @@
{% if class.extra.hopsworks_apigen and class.extra.hopsworks_apigen.aliases %}
Aliases: {% for alias in class.extra.hopsworks_apigen.aliases if alias.is_public -%}
- {%- set fullpath = alias.target_module + "." + alias.alias_name -%}
- {{fullpath}}
- {%- if not loop.last %}, {% endif %}
+ {% if not loop.first %}
+ {%- set fullpath = alias.target_module + "." + alias.alias_name -%}
+ {{fullpath}}
+ {%- if not loop.last %}, {% endif %}
+ {% endif %}
{%- endfor %}
{% endif %}
diff --git a/docs/templates/python/material/function.html.jinja b/docs/templates/python/material/function.html.jinja
index e940070d2..a202f0973 100644
--- a/docs/templates/python/material/function.html.jinja
+++ b/docs/templates/python/material/function.html.jinja
@@ -4,15 +4,17 @@
{% block alias_anchors scoped %}
{% if function.extra.hopsworks_apigen and function.extra.hopsworks_apigen.aliases %}
{% for alias in function.extra.hopsworks_apigen.aliases if alias.is_public -%}
- {%- set alias_id = alias.target_module + "." + alias.alias_name -%}
- {% filter heading(
- heading_level+9,
- role="function",
- id=alias_id,
- class="doc doc-heading",
- hidden=true,
- skip_inventory=config.skip_local_inventory,
- ) -%}{%- endfilter %}
+ {% if not loop.first %}
+ {%- set alias_id = alias.target_module + "." + alias.alias_name -%}
+ {% filter heading(
+ heading_level+9,
+ role="function",
+ id=alias_id,
+ class="doc doc-heading",
+ hidden=true,
+ skip_inventory=config.skip_local_inventory,
+ ) -%}{%- endfilter %}
+ {% endif %}
{%- endfor %}
{% endif %}
{% endblock alias_anchors %}
@@ -32,9 +34,11 @@
{% if function.extra.hopsworks_apigen and function.extra.hopsworks_apigen.aliases %}
Aliases: {% for alias in function.extra.hopsworks_apigen.aliases if alias.is_public -%}
- {%- set fullpath = alias.target_module + "." + alias.alias_name -%}
- {{fullpath}}
- {%- if not loop.last %}, {% endif %}
+ {% if not loop.first %}
+ {%- set fullpath = alias.target_module + "." + alias.alias_name -%}
+ {{fullpath}}
+ {%- if not loop.last %}, {% endif %}
+ {% endif %}
{%- endfor %}
{% endif %}
From b98b683a0f144c9d8a494bbe8f99020adf4a12f6 Mon Sep 17 00:00:00 2001
From: Aleksey Veresov
Date: Wed, 4 Feb 2026 12:55:18 +0100
Subject: [PATCH 5/7] Fix TOC
---
.../python/material/class.html.jinja | 36 +++++++++----------
.../python/material/function.html.jinja | 36 +++++++++----------
2 files changed, 36 insertions(+), 36 deletions(-)
diff --git a/docs/templates/python/material/class.html.jinja b/docs/templates/python/material/class.html.jinja
index 4b4af7d63..17f694734 100644
--- a/docs/templates/python/material/class.html.jinja
+++ b/docs/templates/python/material/class.html.jinja
@@ -3,18 +3,17 @@
{% block heading scoped %}
{% block alias_anchors scoped %}
{% if class.extra.hopsworks_apigen and class.extra.hopsworks_apigen.aliases %}
- {% for alias in class.extra.hopsworks_apigen.aliases if alias.is_public -%}
- {% if not loop.first %}
- {%- set alias_id = alias.target_module + "." + alias.alias_name -%}
- {% filter heading(
- heading_level+9,
- role="class",
- id=alias_id,
- class="doc doc-heading",
- hidden=true,
- skip_inventory=config.skip_local_inventory,
- ) -%}{%- endfilter %}
- {% endif %}
+ {%- set public_aliases = class.extra.hopsworks_apigen.aliases | selectattr("is_public") | list -%}
+ {% for alias in public_aliases[1:] -%}
+ {%- set alias_id = alias.target_module + "." + alias.alias_name -%}
+ {% filter heading(
+ 9,
+ role="class",
+ id=alias_id,
+ class="doc doc-heading",
+ hidden=true,
+ skip_inventory=config.skip_local_inventory,
+ ) -%}{%- endfilter %}
{%- endfor %}
{% endif %}
{% endblock alias_anchors %}
@@ -32,15 +31,16 @@
{% block contents scoped %}
{% block aliases scoped %}
{% if class.extra.hopsworks_apigen and class.extra.hopsworks_apigen.aliases %}
-
- Aliases: {% for alias in class.extra.hopsworks_apigen.aliases if alias.is_public -%}
- {% if not loop.first %}
+ {%- set public_aliases = class.extra.hopsworks_apigen.aliases | selectattr("is_public") | list -%}
+ {% if public_aliases and public_aliases[1:] %}
+
+ Aliases: {% for alias in public_aliases[1:] -%}
{%- set fullpath = alias.target_module + "." + alias.alias_name -%}
{{fullpath}}
{%- if not loop.last %}, {% endif %}
- {% endif %}
- {%- endfor %}
-
+ {%- endfor %}
+
+ {% endif %}
{% endif %}
{% endblock aliases %}
diff --git a/docs/templates/python/material/function.html.jinja b/docs/templates/python/material/function.html.jinja
index a202f0973..0462ff6fa 100644
--- a/docs/templates/python/material/function.html.jinja
+++ b/docs/templates/python/material/function.html.jinja
@@ -3,18 +3,17 @@
{% block heading scoped %}
{% block alias_anchors scoped %}
{% if function.extra.hopsworks_apigen and function.extra.hopsworks_apigen.aliases %}
- {% for alias in function.extra.hopsworks_apigen.aliases if alias.is_public -%}
- {% if not loop.first %}
- {%- set alias_id = alias.target_module + "." + alias.alias_name -%}
- {% filter heading(
- heading_level+9,
- role="function",
- id=alias_id,
- class="doc doc-heading",
- hidden=true,
- skip_inventory=config.skip_local_inventory,
- ) -%}{%- endfilter %}
- {% endif %}
+ {%- set public_aliases = function.extra.hopsworks_apigen.aliases | selectattr("is_public") | list -%}
+ {% for alias in public_aliases[1:] -%}
+ {%- set alias_id = alias.target_module + "." + alias.alias_name -%}
+ {% filter heading(
+ 9,
+ role="function",
+ id=alias_id,
+ class="doc doc-heading",
+ hidden=true,
+ skip_inventory=config.skip_local_inventory,
+ ) -%}{%- endfilter %}
{%- endfor %}
{% endif %}
{% endblock alias_anchors %}
@@ -32,15 +31,16 @@
{% block contents scoped %}
{% block aliases scoped %}
{% if function.extra.hopsworks_apigen and function.extra.hopsworks_apigen.aliases %}
-
- Aliases: {% for alias in function.extra.hopsworks_apigen.aliases if alias.is_public -%}
- {% if not loop.first %}
+ {%- set public_aliases = function.extra.hopsworks_apigen.aliases | selectattr("is_public") | list -%}
+ {% if public_aliases and public_aliases[1:] %}
+
+ Aliases: {% for alias in public_aliases[1:] -%}
{%- set fullpath = alias.target_module + "." + alias.alias_name -%}
{{fullpath}}
{%- if not loop.last %}, {% endif %}
- {% endif %}
- {%- endfor %}
-
+ {%- endfor %}
+
+ {% endif %}
{% endif %}
{% endblock aliases %}
From 55452914786b505126c6d422561c89e1fbc1befd Mon Sep 17 00:00:00 2001
From: Aleksey Veresov
Date: Wed, 4 Feb 2026 13:09:28 +0100
Subject: [PATCH 6/7] Fix anchors
---
docs/templates/python/material/class.html.jinja | 3 +--
docs/templates/python/material/function.html.jinja | 3 +--
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/docs/templates/python/material/class.html.jinja b/docs/templates/python/material/class.html.jinja
index 17f694734..025bcfc1d 100644
--- a/docs/templates/python/material/class.html.jinja
+++ b/docs/templates/python/material/class.html.jinja
@@ -3,8 +3,7 @@
{% block heading scoped %}
{% block alias_anchors scoped %}
{% if class.extra.hopsworks_apigen and class.extra.hopsworks_apigen.aliases %}
- {%- set public_aliases = class.extra.hopsworks_apigen.aliases | selectattr("is_public") | list -%}
- {% for alias in public_aliases[1:] -%}
+ {% for alias in class.extra.hopsworks_apigen.aliases -%}
{%- set alias_id = alias.target_module + "." + alias.alias_name -%}
{% filter heading(
9,
diff --git a/docs/templates/python/material/function.html.jinja b/docs/templates/python/material/function.html.jinja
index 0462ff6fa..c6c494d54 100644
--- a/docs/templates/python/material/function.html.jinja
+++ b/docs/templates/python/material/function.html.jinja
@@ -3,8 +3,7 @@
{% block heading scoped %}
{% block alias_anchors scoped %}
{% if function.extra.hopsworks_apigen and function.extra.hopsworks_apigen.aliases %}
- {%- set public_aliases = function.extra.hopsworks_apigen.aliases | selectattr("is_public") | list -%}
- {% for alias in public_aliases[1:] -%}
+ {% for alias in function.extra.hopsworks_apigen.aliases -%}
{%- set alias_id = alias.target_module + "." + alias.alias_name -%}
{% filter heading(
9,
From c282e617e47112ca56cdc1f0ba0df18a33a4dc8b Mon Sep 17 00:00:00 2001
From: Aleksey Veresov
Date: Fri, 6 Feb 2026 15:31:53 +0100
Subject: [PATCH 7/7] Add ruff and respect aliases of methods too
---
docs/templates/python/material/function.html.jinja | 13 +++++++++++++
requirements-docs.txt | 1 +
2 files changed, 14 insertions(+)
diff --git a/docs/templates/python/material/function.html.jinja b/docs/templates/python/material/function.html.jinja
index c6c494d54..494f3e379 100644
--- a/docs/templates/python/material/function.html.jinja
+++ b/docs/templates/python/material/function.html.jinja
@@ -15,6 +15,19 @@
) -%}{%- endfilter %}
{%- endfor %}
{% endif %}
+ {% if function.parent and function.parent.extra.hopsworks_apigen and function.parent.extra.hopsworks_apigen.aliases %}
+ {% for alias in function.parent.extra.hopsworks_apigen.aliases -%}
+ {%- set alias_id = alias.target_module + "." + alias.alias_name + "." + function.name -%}
+ {% filter heading(
+ 9,
+ role="function",
+ id=alias_id,
+ class="doc doc-heading",
+ hidden=true,
+ skip_inventory=config.skip_local_inventory,
+ ) -%}{%- endfilter %}
+ {%- endfor %}
+ {% endif %}
{% endblock alias_anchors %}
{% block source_link scoped %}
diff --git a/requirements-docs.txt b/requirements-docs.txt
index 426d9e472..ad8d20e1e 100644
--- a/requirements-docs.txt
+++ b/requirements-docs.txt
@@ -7,4 +7,5 @@ mkdocs-minify-plugin>=0.2.0
hopsworks-apigen@git+https://github.com/aversey/hopsworks-aliases.git
mkdocstrings[python]==1.0.0
mkdocstrings-python==2.0.1
+ruff==0.15.0
linkchecker