From 72a77c67e236a0c96f23a2568cdcfbb572244baf Mon Sep 17 00:00:00 2001
From: Paul McCarthy <pauldmccarthy@gmail.com>
Date: Sat, 21 Oct 2017 14:47:55 +0100
Subject: [PATCH] Fix documentation build

---
 doc/mock_modules.txt |  6 ++++++
 setup.py             | 18 +++++++++---------
 2 files changed, 15 insertions(+), 9 deletions(-)
 create mode 100644 doc/mock_modules.txt

diff --git a/doc/mock_modules.txt b/doc/mock_modules.txt
new file mode 100644
index 000000000..38fdb590e
--- /dev/null
+++ b/doc/mock_modules.txt
@@ -0,0 +1,6 @@
+nibabel
+nibabel.fileslice
+numpy
+numpy.linalg
+scipy
+scipy.ndimage
diff --git a/setup.py b/setup.py
index 37848d4f0..51aa4ac72 100644
--- a/setup.py
+++ b/setup.py
@@ -69,17 +69,17 @@ class doc(Command):
         except:
             import mock
 
-        mockedModules = [
-            'nibabel',
-            'nibabel.fileslice',
-            'numpy',
-            'numpy.linalg']
-
         mockobj       = mock.MagicMock()
-        mockedModules = { m : mockobj for m in mockedModules}
+        mockobj.__version__ = '2.2.0'
+        mockedModules = open(op.join(docdir, 'mock_modules.txt')).readlines()
+        mockedModules = [l.strip()   for l in mockedModules]
+        mockedModules = {m : mockobj for m in mockedModules}
+
+        patches = [mock.patch.dict('sys.modules', **mockedModules)]
 
-        with mock.patch.dict('sys.modules', **mockedModules):
-            sphinx.main(['sphinx-build', docdir, destdir])
+        [p.start() for p in patches]
+        sphinx.main(['sphinx-build', docdir, destdir])
+        [p.stop() for p in patches]
 
 
 setup(
-- 
GitLab