/usr/share/pyshared/tw/mods/tg.py is in python-toscawidgets 0.9.7.2-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | from pkg_resources import require, VersionConflict
import os, logging
# TurboGears-1.0 uses CherryPy-2.3 while TurboGears-1.5 uses CherryPy-3.1.
# CherryPy-2.3 uses Filters while CherryPy-3.1 uses Tools. We put the CherryPy
# specific code in separate files which makes it possible for CherryPy users
# that are not using TurboGears to use them directly.
try:
require("TurboGears>=1.0, <=1.5")
import cp2 as cp
default_view = 'kid'
except VersionConflict:
require("TurboGears>=1.5a1dev, <=2.0")
import cp3 as cp
default_view = 'genshi'
import turbogears
from turbogears.i18n.tg_gettext import gettext
from turbogears.view import stdvars
import cherrypy
import tw
from tw.core import view
from tw.core.util import install_framework
from tw.mods.base import HostFramework
install_framework()
log = logging.getLogger(__name__)
class TurboGears(HostFramework):
@property
def request_local(self):
try:
rl = cherrypy.request.tw_request_local
except AttributeError:
rl = self.request_local_class(cherrypy.request.wsgi_environ)
cherrypy.request.tw_request_local = rl
return rl
def start_request(self, environ):
self.request_local.default_view = self._default_view
def url(self, url):
"""
Returns the absolute path for the given url.
"""
prefix = self.request_local.environ['toscawidgets.prefix']
return '/' + turbogears.url(prefix+url).lstrip('/')
def start_extension():
if not cherrypy.config.get('toscawidgets.on', False):
return
engines = view.EngineManager()
engines.load_all(cp._extract_config(), stdvars)
host_framework = TurboGears(
engines = engines,
default_view = cherrypy.config.get('tg.defaultview', default_view),
translator = gettext,
)
prefix = cherrypy.config.get('toscawidgets.prefix', '/toscawidgets')
host_framework.prefix = prefix
host_framework.webpath = cherrypy.config.get('server.webpath', '')
log.info("Loaded TW TurboGears HostFramework")
filter_args = dict(
prefix = prefix,
serve_files = cherrypy.config.get('toscawidgets.serve_files', 1)
)
cp.start_extension(host_framework, **filter_args)
|