Georg Brandl avatar Georg Brandl committed fc69d22

Extend extension info to the module filename for each loaded ext.

Comments (0)

Files changed (1)

sphinx/util/__init__.py

 # Python version: %s
 # Docutils version: %s %s
 # Jinja2 version: %s
-# Loaded extensions: %s
+# Loaded extensions:
 '''
 
 def save_traceback(app):
     import platform
     exc = traceback.format_exc()
     fd, path = tempfile.mkstemp('.log', 'sphinx-err-')
-    if app is not None:
-        extension_list = ', '.join(app._extensions)
-    else:
-        extension_list = '(app not created)'
     os.write(fd, (_DEBUG_HEADER %
                   (sphinx.__version__,
                    platform.python_version(),
                    docutils.__version__, docutils.__version_details__,
-                   jinja2.__version__,
-                   extension_list)).encode('utf-8'))
+                   jinja2.__version__)).encode('utf-8'))
+    if app is not None:
+        for extname, extmod in app._extensions.iteritems():
+            os.write(fd, ('#   %s from %s\n' % (
+                extname, getattr(extmod, '__file__', 'unknown'))
+                ).encode('utf-8'))
     os.write(fd, exc.encode('utf-8'))
     os.close(fd)
     return path
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.