From 370bdddc7c9cc20383d6211a27ef6868773bd82e Mon Sep 17 00:00:00 2001 From: Takeshi KOMIYA Date: Sat, 29 Apr 2017 15:22:34 +0900 Subject: [PATCH] make websupport-dependency optional --- CHANGES | 1 + setup.py | 4 +++- sphinx/websupport/__init__.py | 19 ++++++++++++------- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/CHANGES b/CHANGES index 0ed869b50..c333a95f3 100644 --- a/CHANGES +++ b/CHANGES @@ -20,6 +20,7 @@ Bugs fixed * #3661: sphinx-build crashes on parallel build * #3669: gettext builder fails with "ValueError: substring not found" +* #3660: Sphinx always depends on sphinxcontrib-websupport and its dependencies Testing -------- diff --git a/setup.py b/setup.py index 1fd2d34d0..4354b0baa 100644 --- a/setup.py +++ b/setup.py @@ -51,7 +51,6 @@ requires = [ 'alabaster>=0.7,<0.8', 'imagesize', 'requests>=2.0.0', - 'sphinxcontrib-websupport', 'typing', 'setuptools', ] @@ -60,6 +59,9 @@ extras_require = { ':sys_platform=="win32"': [ 'colorama>=0.3.5', ], + 'websupport': [ + 'sphinxcontrib-websupport', + ], 'test': [ 'pytest', 'mock', # it would be better for 'test:python_version in 2.7' diff --git a/sphinx/websupport/__init__.py b/sphinx/websupport/__init__.py index f06d98433..f71034708 100644 --- a/sphinx/websupport/__init__.py +++ b/sphinx/websupport/__init__.py @@ -12,11 +12,16 @@ import warnings from sphinx.deprecation import RemovedInSphinx20Warning -from sphinxcontrib.websupport import WebSupport # NOQA -from sphinxcontrib.websupport import errors # NOQA -from sphinxcontrib.websupport.search import BaseSearch, SEARCH_ADAPTERS # NOQA -from sphinxcontrib.websupport.storage import StorageBackend # NOQA -warnings.warn('sphinx.websupport module is now provided as sphinxcontrib.webuspport. ' - 'sphinx.websupport will be removed in Sphinx-2.0. Please use it instaed', - RemovedInSphinx20Warning) +try: + from sphinxcontrib.websupport import WebSupport # NOQA + from sphinxcontrib.websupport import errors # NOQA + from sphinxcontrib.websupport.search import BaseSearch, SEARCH_ADAPTERS # NOQA + from sphinxcontrib.websupport.storage import StorageBackend # NOQA + + warnings.warn('sphinx.websupport module is now provided as sphinxcontrib-webuspport. ' + 'sphinx.websupport will be removed in Sphinx-2.0. Please use it instaed', + RemovedInSphinx20Warning) +except ImportError: + warnings.warn('Since Sphinx-1.6, sphinx.websupport module is now separated to ' + 'sphinxcontrib-webuspport package. Please add it into your dependency list.')