Sylvain Hellegouarch avatar Sylvain Hellegouarch committed 6772e7c

let's see if this makes readthedocs happy

Comments (0)

Files changed (1)

sphinx/source/conf.py

 
 # If false, no module index is generated.
 #latex_use_modindex = True
+
+import os
+
+on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
+if on_rtd:
+    # so that ReadTheDocs can generate the docs properly
+    # even the PDF version. Since ReadTheDocs runs on Linux,
+    # it can't import pywin32. See:
+    # http://read-the-docs.readthedocs.org/en/latest/faq.html#i-get-import-errors-on-libraries-that-depend-on-c-modules
+    import sys
+    
+    class Mock(object):
+        def __init__(self, *args, **kwargs):
+            pass
+        
+        def __call__(self, *args, **kwargs):
+            return Mock()
+        
+        @classmethod
+        def __getattr__(cls, name):
+            if name in ('__file__', '__path__'):
+                return '/dev/null'
+            elif name[0] == name[0].upper():
+                mockType = type(name, (), {})
+                mockType.__module__ = __name__
+                return mockType
+            else:
+                return Mock()
+
+    MOCK_MODULES = ['win32api', 'win32con', 'win32event',
+                    'win32service', 'win32serviceutil']
+    for mod_name in MOCK_MODULES:
+        sys.modules[mod_name] = Mock()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.