# -*- coding: utf-8 -*-
"""
PyLucid Show Internals - System Info
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Last commit info:
~~~~~~~~~~~~~~~~~
$LastChangedDate$
$Rev$
$Author$
:copyleft: 2005-2008 by the PyLucid team, see AUTHORS for more details.
:license: GNU GPL v3 or above, see LICENSE for more details.
"""
__version__= "$Rev$"
import os, pprint
from django.views.debug import get_safe_settings
from PyLucid.tools.utils import escape
from PyLucid.system.BasePlugin import PyLucidBasePlugin
#______________________________________________________________________________
class PyLucidInfo(PyLucidBasePlugin):
"""
information around PyLucid
"""
def display_all(self):
self.response.write("
")
from PyLucid.system import hightlighter
if hightlighter.PYGMENTS_AVAILABLE == False:
self.response.write("pygments is not available!\n")
self.response.write(
"The import error was: %s\n" % hightlighter.import_error
)
self.response.write(
'PyPi url http://pypi.python.org/pypi/Pygments\n'
)
else:
self.response.write("pygments is available!\n")
pygments = hightlighter.pygments
self.response.write(
"module: %r\n" % getattr(pygments, "__file__", "?")
)
self.response.write(
"version: %r\n" % getattr(pygments, "__version__", "?")
)
self.response.write("
")
def envion_info(self):
self.response.write("
OS-Enviroment:
")
self.response.write('
')
keys = os.environ.keys()
keys.sort()
for key in keys:
value = os.environ[key]
self.response.write("
%s
" % key)
self.response.write("
%s
" % value)
self.response.write("
")
#______________________________________________________________________________
class DjangoInfo(PyLucidBasePlugin):
"""
information around PyLucid
"""
def display_all(self):
self.response.write("")
self.response.write("
Django environ information
")
self.apps_models()
self.django_info()
self.header_info()
def apps_models(self):
"""
List of all installed apps and his models.
"""
from django.db.models import get_apps, get_models
self.response.write('")
def django_info(self):
from django.db import connection, backend
self.response.write('")
def header_info(self):
self.response.write('")
#______________________________________________________________________________
class SettingsInfo(PyLucidBasePlugin):
"""
display current used 'settings.py'
"""
def display_all(self):
self.context["settings_info"] = self.settings_info()
self._render_template(
internal_page_name="settings_info",
context=self.context,
#debug=True,
)
def settings_info(self):
"""
display current used 'settings.py'
"""
context = []
safe_settings = get_safe_settings()
for key, value in safe_settings.iteritems():
value = pprint.pformat(value)
value = escape(value)
context.append({
"attrname": key,
"value": value,
})
context.sort()
return context