diff --git a/flask_debugtoolbar/panels/versions.py b/flask_debugtoolbar/panels/versions.py index 6ecb1ea..fda98ac 100644 --- a/flask_debugtoolbar/panels/versions.py +++ b/flask_debugtoolbar/panels/versions.py @@ -1,3 +1,6 @@ +from distutils.sysconfig import get_python_lib +import sys + from flask import __version__ as flask_version from flask_debugtoolbar.panels import DebugPanel @@ -8,7 +11,7 @@ class VersionDebugPanel(DebugPanel): Panel that displays the Flask version. """ name = 'Version' - has_content = False + has_content = True def nav_title(self): return _('Versions') @@ -23,6 +26,27 @@ class VersionDebugPanel(DebugPanel): return _('Versions') def content(self): - return None + try: + from yolk import yolklib + except ImportError: + "Requires yolk to provide package information" + context = self.context.copy() + context.update({ + 'packages': [], + 'paths': sys.path + }) + else: + dist = yolklib.Distributions() + active_packages = dist.get_packages('active') + _pkgs = dict([(p.project_name, p) for p in active_packages]) + packages = [_pkgs[key] for key in sorted(_pkgs.iterkeys())] + for package in packages: + package.develop_mode = not (package.location.lower().startswith(get_python_lib().lower())) + context = self.context.copy() + context.update({ + 'packages': packages, + 'paths': sys.path, + }) + return self.render('panels/versions.html', context) \ No newline at end of file diff --git a/flask_debugtoolbar/templates/panels/versions.html b/flask_debugtoolbar/templates/panels/versions.html new file mode 100644 index 0000000..14fb7f9 --- /dev/null +++ b/flask_debugtoolbar/templates/panels/versions.html @@ -0,0 +1,28 @@ +

Installed Packages

+ + + + + + + + + + + {% for package in packages %} + + + + + + + {% else %} + + + + + + + {% endfor %} + +
PackageVersionDevelop?Installed Path
{{ package.project_name }}{{ package.version }}{{ package.develop_mode }}{{ package.location }}
yolkNOT INSTALLED Install Yolk to display installed packages and version information