/usr/lib/python2.7/dist-packages/pyramid/scripts/ptweens.py is in python-pyramid 1.4.5+dfsg-1ubuntu1.
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 77 78 79 80 81 82 83 84 85 86 87 88 89 | import optparse
import sys
import textwrap
from pyramid.interfaces import ITweens
from pyramid.tweens import MAIN
from pyramid.tweens import INGRESS
from pyramid.paster import bootstrap
from pyramid.scripts.common import parse_vars
def main(argv=sys.argv, quiet=False):
command = PTweensCommand(argv, quiet)
return command.run()
class PTweensCommand(object):
usage = '%prog config_uri'
description = """\
Print all implicit and explicit tween objects used by a Pyramid
application. The handler output includes whether the system is using an
explicit tweens ordering (will be true when the "pyramid.tweens"
deployment setting is used) or an implicit tweens ordering (will be true
when the "pyramid.tweens" deployment setting is *not* used).
This command accepts one positional argument named "config_uri" which
specifies the PasteDeploy config file to use for the interactive
shell. The format is "inifile#name". If the name is left off, "main"
will be assumed. Example: "ptweens myapp.ini#main".
"""
parser = optparse.OptionParser(
usage,
description=textwrap.dedent(description),
)
stdout = sys.stdout
bootstrap = (bootstrap,) # testing
def __init__(self, argv, quiet=False):
self.quiet = quiet
self.options, self.args = self.parser.parse_args(argv[1:])
def _get_tweens(self, registry):
from pyramid.config import Configurator
config = Configurator(registry = registry)
return config.registry.queryUtility(ITweens)
def out(self, msg): # pragma: no cover
if not self.quiet:
print(msg)
def show_chain(self, chain):
fmt = '%-10s %-65s'
self.out(fmt % ('Position', 'Name'))
self.out(fmt % ('-'*len('Position'), '-'*len('Name')))
self.out(fmt % ('-', INGRESS))
for pos, (name, _) in enumerate(chain):
self.out(fmt % (pos, name))
self.out(fmt % ('-', MAIN))
def run(self):
if not self.args:
self.out('Requires a config file argument')
return 2
config_uri = self.args[0]
env = self.bootstrap[0](config_uri, options=parse_vars(self.args[1:]))
registry = env['registry']
tweens = self._get_tweens(registry)
if tweens is not None:
explicit = tweens.explicit
if explicit:
self.out('"pyramid.tweens" config value set '
'(explicitly ordered tweens used)')
self.out('')
self.out('Explicit Tween Chain (used)')
self.out('')
self.show_chain(tweens.explicit)
self.out('')
self.out('Implicit Tween Chain (not used)')
self.out('')
self.show_chain(tweens.implicit())
else:
self.out('"pyramid.tweens" config value NOT set '
'(implicitly ordered tweens used)')
self.out('')
self.out('Implicit Tween Chain')
self.out('')
self.show_chain(tweens.implicit())
return 0
|