fixeria has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/42546?usp=email )
Change subject: docs/conf.py: add autodoc_mock_imports for klein and twisted ......................................................................
docs/conf.py: add autodoc_mock_imports for klein and twisted
The eSIM SM-DP+ server modules (`pySim.esim.es2p`, `pySim.esim.es9p`, `pySim.esim.http_json_api`) unconditionally import optional server-side dependencies at module level:
pySim.esim.es2p -- from klein import Klein pySim.esim.http_json_api -- from twisted.web.server import Request
Both imports fail during a docs build if the packages are absent or broken, causing three "autodoc: failed to import" warnings and three missing chapters in the generated manual.
Even when klein and twisted are installed, twisted 23.10.0 (the version pulled in transitively by smpp.twisted3's `Twisted~=23.10.0` constraint) is incompatible with Python 3.13+ because twisted.web.http unconditionally executes `import cgi`, a module that was removed from the standard library in Python 3.13.
Fix: add `autodoc_mock_imports = ['klein', 'twisted']` to conf.py. Sphinx inserts mock entries into sys.modules before each autodoc import attempt, so the modules can be imported and documented without requiring the real packages to be importable at build time.
Change-Id: I71650466f02a6a6d150650deed167c05d2cb6e64 --- M docs/conf.py 1 file changed, 4 insertions(+), 0 deletions(-)
Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved
diff --git a/docs/conf.py b/docs/conf.py index dc86817..26e8e2a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -65,6 +65,10 @@
autoclass_content = 'both'
+# Mock optional server-side deps of es2p and http_json_api/es9p, +# so that autodoc can import and document those modules. +autodoc_mock_imports = ['klein', 'twisted'] + # Workaround for duplicate label warnings: # https://github.com/sphinx-doc/sphinx-argparse/issues/14 #