summaryrefslogtreecommitdiffstatshomepage
path: root/docs/sphinx_selective_exclude/modindex_exclude.py
diff options
context:
space:
mode:
Diffstat (limited to 'docs/sphinx_selective_exclude/modindex_exclude.py')
-rw-r--r--docs/sphinx_selective_exclude/modindex_exclude.py75
1 files changed, 0 insertions, 75 deletions
diff --git a/docs/sphinx_selective_exclude/modindex_exclude.py b/docs/sphinx_selective_exclude/modindex_exclude.py
deleted file mode 100644
index bf8db795e6..0000000000
--- a/docs/sphinx_selective_exclude/modindex_exclude.py
+++ /dev/null
@@ -1,75 +0,0 @@
-#
-# This is a Sphinx documentation tool extension which allows to
-# exclude some Python modules from the generated indexes. Modules
-# are excluded both from "modindex" and "genindex" index tables
-# (in the latter case, all members of a module are excluded).
-# To control exclusion, set "modindex_exclude" variable in Sphinx
-# conf.py to the list of modules to exclude. Note: these should be
-# modules (as defined by py:module directive, not just raw filenames).
-# This extension works by monkey-patching Sphinx core, so potentially
-# may not work with untested Sphinx versions. It tested to work with
-# 1.2.2 and 1.4.2
-#
-# Copyright (c) 2016 Paul Sokolovsky
-# Licensed under the terms of BSD license, see LICENSE file.
-#
-import sphinx
-
-
-#org_PythonModuleIndex_generate = None
-org_PyObject_add_target_and_index = None
-org_PyModule_run = None
-
-EXCLUDES = {}
-
-# No longer used, PyModule_run() monkey-patch does all the job
-def PythonModuleIndex_generate(self, docnames=None):
- docnames = []
- excludes = self.domain.env.config['modindex_exclude']
- for modname, (docname, synopsis, platforms, deprecated) in self.domain.data['modules'].items():
- #print(docname)
- if modname not in excludes:
- docnames.append(docname)
-
- return org_PythonModuleIndex_generate(self, docnames)
-
-
-def PyObject_add_target_and_index(self, name_cls, sig, signode):
- if hasattr(self.env, "ref_context"):
- # Sphinx 1.4
- ref_context = self.env.ref_context
- else:
- # Sphinx 1.2
- ref_context = self.env.temp_data
- modname = self.options.get(
- 'module', ref_context.get('py:module'))
- #print("*", modname, name_cls)
- if modname in self.env.config['modindex_exclude']:
- return None
- return org_PyObject_add_target_and_index(self, name_cls, sig, signode)
-
-
-def PyModule_run(self):
- env = self.state.document.settings.env
- modname = self.arguments[0].strip()
- excl = env.config['modindex_exclude']
- if modname in excl:
- self.options['noindex'] = True
- EXCLUDES.setdefault(modname, []).append(env.docname)
- return org_PyModule_run(self)
-
-
-def setup(app):
- app.add_config_value('modindex_exclude', [], 'html')
-
-# global org_PythonModuleIndex_generate
-# org_PythonModuleIndex_generate = sphinx.domains.python.PythonModuleIndex.generate
-# sphinx.domains.python.PythonModuleIndex.generate = PythonModuleIndex_generate
-
- global org_PyObject_add_target_and_index
- org_PyObject_add_target_and_index = sphinx.domains.python.PyObject.add_target_and_index
- sphinx.domains.python.PyObject.add_target_and_index = PyObject_add_target_and_index
-
- global org_PyModule_run
- org_PyModule_run = sphinx.domains.python.PyModule.run
- sphinx.domains.python.PyModule.run = PyModule_run