From: Daniele Varrazzo Date: Mon, 18 Jul 2022 07:23:55 +0000 (+0100) Subject: docs: add skip-list to avoid importing external module X-Git-Tag: 3.1~45^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9e961aadd0d83c80f4283a843f5b68869587b5d0;p=thirdparty%2Fpsycopg.git docs: add skip-list to avoid importing external module In sandboxed environments dnspython doesn't work because it cannot read `/etc/resolv.conf`/ See #337 for details. --- diff --git a/docs/lib/pg3_docs.py b/docs/lib/pg3_docs.py index 4352afbcf..e2609a3ab 100644 --- a/docs/lib/pg3_docs.py +++ b/docs/lib/pg3_docs.py @@ -35,7 +35,9 @@ def setup(app): import psycopg # type: ignore - recover_defined_module(psycopg) + recover_defined_module( + psycopg, skip_modules=["psycopg._dns", "psycopg.types.shapely"] + ) monkeypatch_autodoc() # Disable warnings in sphinx_autodoc_typehints because it doesn't seem that @@ -49,7 +51,7 @@ def setup(app): recovered_classes: Dict[type, str] = {} -def recover_defined_module(m): +def recover_defined_module(m, skip_modules=()): """ Find the module where classes with __module__ attribute hacked were defined. @@ -65,6 +67,8 @@ def recover_defined_module(m): assert fn.startswith(mdir) modname = os.path.splitext(fn[len(mdir) + 1 :])[0].replace("/", ".") modname = f"{m.__name__}.{modname}" + if modname in skip_modules: + continue with open(fn) as f: classnames = re.findall(r"^class\s+([^(:]+)", f.read(), re.M) for cls in classnames: diff --git a/psycopg/setup.py b/psycopg/setup.py index 34fa87b6e..435d51f77 100644 --- a/psycopg/setup.py +++ b/psycopg/setup.py @@ -59,9 +59,6 @@ extras_require = { "furo == 2021.11.23", "sphinx-autobuild >= 2021.3.14", "sphinx-autodoc-typehints >= 1.12", - # to document optional modules - "dnspython >= 2.1", - "shapely >= 1.7", ], }