Salome HOME
bos #23972 [CEA 19980] sphinxcontrib_napoleon is not needed with Sphinx >= 1.3
authorvsr <vsr@opencascade.com>
Fri, 19 Feb 2021 06:50:26 +0000 (09:50 +0300)
committervsr <vsr@opencascade.com>
Fri, 19 Feb 2021 06:50:26 +0000 (09:50 +0300)
doc/gui/conf.py.in
src/PythonAPI/doc/source/conf.py

index d1327b144b3a9daa3812e651536c266e333636b4..a96b6ef5b38625f82884572b415ec4528fb1ce2e 100644 (file)
@@ -16,6 +16,8 @@
 # add these directories to sys.path here. If the directory is relative to the
 # documentation root, use os.path.abspath to make it absolute, like shown here.
 #
+
+import importlib
 import os
 import sys
 import sphinx
@@ -32,17 +34,19 @@ import sphinx
 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
 # ones.
 extensions = ['sphinx.ext.autodoc','sphinx.ext.autosummary']
-try:
-  import sphinxcontrib.napoleon
-  extensions += ['sphinxcontrib.napoleon']
-except:
-  pass
-try:
-  import sphinx_rtd_theme
-  extensions += ['sphinx_rtd_theme']
-  use_rtd_theme = True
-except:
-  use_rtd_theme = False
+# Optional extensions
+extra_extensions = ['sphinx_rtd_theme']
+if sphinx.version_info[:2] < (1,3):
+    extra_extensions += ['sphinxcontrib.napoleon']
+else:
+    extra_extensions += ['sphinx.ext.napoleon']
+for ext in extra_extensions:
+    try:
+        importlib.import_module(ext)
+        extensions.append(ext)
+        globals().update({'use_{}'.format(ext):True})
+    except:
+        globals().update({'use_{}'.format(ext):False})
 
 # Add any paths that contain templates here, relative to this directory.
 #templates_path = [os.path.join('@CMAKE_CURRENT_SOURCE_DIR@','templates')]
@@ -96,7 +100,7 @@ pygments_style = 'sphinx'
 # The theme to use for HTML and HTML Help pages.  See the documentation for
 # a list of builtin themes.
 #
-if use_rtd_theme:
+if use_sphinx_rtd_theme:
   html_theme = 'sphinx_rtd_theme'
 else:
   html_theme = 'default' if sphinx.version_info[:2] < (1,3) else 'classic'
index 67be14257901c4e8df2319cf0c27390b0d3d97dd..45403e434889b1bdc92d2d6780a268b24459c6df 100644 (file)
@@ -10,6 +10,7 @@
 # All configuration values have a default; values that are commented out
 # serve to show the default.
 
+import importlib
 import sys
 import os
 import sphinx
@@ -35,15 +36,21 @@ extensions = [
     'sphinx.ext.todo',
     'sphinx.ext.coverage',
     'sphinx.ext.viewcode',
-    'sphinx.ext.napoleon',
     'sphinx.ext.autosummary',
 ]
-try:
-  import sphinx_rtd_theme
-  extensions += ['sphinx_rtd_theme']
-  use_rtd_theme = True
-except:
-  use_rtd_theme = False
+# Optional extensions
+extra_extensions = ['sphinx_rtd_theme']
+if sphinx.version_info[:2] < (1,3):
+    extra_extensions += ['sphinxcontrib.napoleon']
+else:
+    extra_extensions += ['sphinx.ext.napoleon']
+for ext in extra_extensions:
+    try:
+        importlib.import_module(ext)
+        extensions.append(ext)
+        globals().update({'use_{}'.format(ext):True})
+    except:
+        globals().update({'use_{}'.format(ext):False})
 
 # Add any paths that contain templates here, relative to this directory.
 templates_path = ['_templates']
@@ -113,7 +120,7 @@ pygments_style = 'sphinx'
 
 # The theme to use for HTML and HTML Help pages.  See the documentation for
 # a list of builtin themes.
-if use_rtd_theme:
+if use_sphinx_rtd_theme:
   html_theme = 'sphinx_rtd_theme'
 else:
   html_theme = 'default' if sphinx.version_info[:2] < (1,3) else 'classic'