From 2d355073641c02e7f89d11ee233a453d5fafc546 Mon Sep 17 00:00:00 2001
From: Paul Andrey <paul.andrey@inria.fr>
Date: Thu, 18 Jul 2024 14:58:59 +0200
Subject: [PATCH] Fix API docs generation.

When a '__all__' value is provided in a public module, make use of
it instead of collecting each and every member.

This fixes the collection breaking upon encountering external
packages such as 'warnings' in an '__init__.py' file.
---
 scripts/gen_docs.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/scripts/gen_docs.py b/scripts/gen_docs.py
index 645ca0ff..742e64ec 100644
--- a/scripts/gen_docs.py
+++ b/scripts/gen_docs.py
@@ -165,7 +165,11 @@ def _generate_private_submodules_content_doc(
 ) -> Dict[str, str]:
     """Create files for public contents from a module's private submodules."""
     pub_obj = {}
-    for key, obj in module.members.items():
+    if module.exports is None:
+        members = module.members
+    else:
+        members = {str(k): module.members[str(k)] for k in module.exports}
+    for key, obj in members.items():
         if obj.is_module or obj.module.name in pub_mod or key.startswith("_"):
             continue
         if not (obj.docstring or obj.is_class or obj.is_function):
-- 
GitLab