summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@plope.com>2010-11-05 03:09:47 -0400
committerChris McDonough <chrism@plope.com>2010-11-05 03:09:47 -0400
commitfecc12e7e7e7f9cc40faa0f819e5a17f529e310c (patch)
tree06043eb4ccd3bf2e1022c4bc1411f6fb4c52886f
parent8c8a7bdfc75b56a3d06bb52912949298b6bcc665 (diff)
downloadpyramid-fecc12e7e7e7f9cc40faa0f819e5a17f529e310c.tar.gz
pyramid-fecc12e7e7e7f9cc40faa0f819e5a17f529e310c.tar.bz2
pyramid-fecc12e7e7e7f9cc40faa0f819e5a17f529e310c.zip
- Move the functionality of pyramid.personality.pylons into the paster
templates themselves. - Remove pyramid.personality.pylons. - Remove unused cache configuration settings.
-rw-r--r--pyramid/paster_templates/pylons_basic/+package+/__init__.py_tmpl6
-rw-r--r--pyramid/paster_templates/pylons_basic/+package+/lib/subscribers.py_tmpl27
-rw-r--r--pyramid/paster_templates/pylons_basic/development.ini_tmpl6
-rw-r--r--pyramid/paster_templates/pylons_minimal/+package+/__init__.py_tmpl5
-rw-r--r--pyramid/paster_templates/pylons_minimal/+package+/subscribers.py_tmpl24
-rw-r--r--pyramid/paster_templates/pylons_minimal/development.ini_tmpl6
-rw-r--r--pyramid/paster_templates/pylons_sqla/+package+/__init__.py_tmpl5
-rw-r--r--pyramid/paster_templates/pylons_sqla/+package+/subscribers.py_tmpl26
-rw-r--r--pyramid/paster_templates/pylons_sqla/development.ini_tmpl6
-rw-r--r--pyramid/personality/__init__.py1
-rw-r--r--pyramid/personality/pylons.py25
-rw-r--r--pyramid/tests/test_pylons_personality.py54
12 files changed, 83 insertions, 108 deletions
diff --git a/pyramid/paster_templates/pylons_basic/+package+/__init__.py_tmpl b/pyramid/paster_templates/pylons_basic/+package+/__init__.py_tmpl
index b8f5219a7..5200e1206 100644
--- a/pyramid/paster_templates/pylons_basic/+package+/__init__.py_tmpl
+++ b/pyramid/paster_templates/pylons_basic/+package+/__init__.py_tmpl
@@ -1,6 +1,4 @@
from pyramid_beaker import session_factory_from_settings
-from pyramid.personality.pylons import renderer_globals_factory_config
-from {{package}}.lib import helpers
def main(global_config, **settings):
""" This function returns a Pyramid WSGI application.
@@ -10,13 +8,13 @@ def main(global_config, **settings):
config.begin()
session_factory = session_factory_from_settings(settings)
config.set_session_factory(session_factory)
- globals_factory = renderer_globals_factory_config(helpers)
- config.set_renderer_globals_factory(globals_factory)
# XXX add caching setup
config.add_static_view('static', '{{package}}:static/')
config.add_handler('action', '/{action}',
'{{package}}.handlers.hello:HelloHandler')
config.add_handler('home', '/', '{{package}}.handlers.hello:HelloHandler',
action='index')
+ config.add_subscriber('{{package}}.lib.subscribers.add_renderer_globals',
+ 'pyramid.events.BeforeRender')
config.end()
return config.make_wsgi_app()
diff --git a/pyramid/paster_templates/pylons_basic/+package+/lib/subscribers.py_tmpl b/pyramid/paster_templates/pylons_basic/+package+/lib/subscribers.py_tmpl
new file mode 100644
index 000000000..2fe053711
--- /dev/null
+++ b/pyramid/paster_templates/pylons_basic/+package+/lib/subscribers.py_tmpl
@@ -0,0 +1,27 @@
+from pyramid.threadlocal import get_current_request
+from pyramid.exceptions import ConfigurationError
+from pyramid.url import route_url
+from {{package}}.lib import helpers
+
+def add_renderer_globals(event):
+ """ A subscriber to the ``pyramid.events.BeforeRender`` events. Updates
+ the :term:`renderer globals` with values that are familiar to Pylons
+ users."""
+ request = event.get('request')
+ if request is None:
+ request = get_current_request()
+ globs = {
+ 'url': route_url,
+ 'h':helpers,
+ }
+ if request is not None:
+ tmpl_context = request.tmpl_context
+ globs['c'] = tmpl_context
+ globs['tmpl_context'] = tmpl_context
+ try:
+ globs['session'] = request.session
+ except ConfigurationError:
+ pass
+ event.update(globs)
+
+
diff --git a/pyramid/paster_templates/pylons_basic/development.ini_tmpl b/pyramid/paster_templates/pylons_basic/development.ini_tmpl
index 7e5b64fa3..e147ba76d 100644
--- a/pyramid/paster_templates/pylons_basic/development.ini_tmpl
+++ b/pyramid/paster_templates/pylons_basic/development.ini_tmpl
@@ -11,12 +11,6 @@ session.data_dir = %(here)s/data/sessions/data
session.lock_dir = %(here)s/data/sessions/lock
session.key = {{project}}
session.secret = your_app_secret_string
-cache.regions = default_term, second, short_term, long_term
-cache.type = memory
-cache.second.expire = 1
-cache.short_term.expire = 60
-cache.default_term.expire = 300
-cache.long_term.expire = 3600
[pipeline:main]
pipeline = egg:WebError#evalerror
diff --git a/pyramid/paster_templates/pylons_minimal/+package+/__init__.py_tmpl b/pyramid/paster_templates/pylons_minimal/+package+/__init__.py_tmpl
index f47060997..e2f94c6fe 100644
--- a/pyramid/paster_templates/pylons_minimal/+package+/__init__.py_tmpl
+++ b/pyramid/paster_templates/pylons_minimal/+package+/__init__.py_tmpl
@@ -1,5 +1,4 @@
from pyramid_beaker import session_factory_from_settings
-from pyramid.personality.pylons import renderer_globals_factory_config
def main(global_config, **settings):
""" This function returns a Pyramid WSGI application.
@@ -10,12 +9,12 @@ def main(global_config, **settings):
session_factory = session_factory_from_settings(settings)
config.set_session_factory(session_factory)
# XXX add caching setup
- globals_factory = renderer_globals_factory_config(None)
- config.set_renderer_globals_factory(globals_factory)
config.add_static_view('static', '{{package}}:static/')
config.add_handler('action', '/{action}', '{{package}}.handlers:MyHandler')
config.add_handler('home', '/', '{{package}}.handlers:MyHandler',
action='index')
+ config.add_subscriber('{{package}}.subscribers.add_renderer_globals',
+ 'pyramid.events.BeforeRender')
config.end()
return config.make_wsgi_app()
diff --git a/pyramid/paster_templates/pylons_minimal/+package+/subscribers.py_tmpl b/pyramid/paster_templates/pylons_minimal/+package+/subscribers.py_tmpl
new file mode 100644
index 000000000..ace5df3de
--- /dev/null
+++ b/pyramid/paster_templates/pylons_minimal/+package+/subscribers.py_tmpl
@@ -0,0 +1,24 @@
+from pyramid.threadlocal import get_current_request
+from pyramid.exceptions import ConfigurationError
+from pyramid.url import route_url
+
+def add_renderer_globals(event):
+ """ A subscriber to the ``pyramid.events.BeforeRender`` events. Updates
+ the :term:`renderer globals` with values that are familiar to Pylons
+ users."""
+ request = event.get('request')
+ if request is None:
+ request = get_current_request()
+ globs = {
+ 'url': route_url,
+ 'h':None,
+ }
+ if request is not None:
+ tmpl_context = request.tmpl_context
+ globs['c'] = tmpl_context
+ globs['tmpl_context'] = tmpl_context
+ try:
+ globs['session'] = request.session
+ except ConfigurationError:
+ pass
+ event.update(globs)
diff --git a/pyramid/paster_templates/pylons_minimal/development.ini_tmpl b/pyramid/paster_templates/pylons_minimal/development.ini_tmpl
index 7e5b64fa3..e147ba76d 100644
--- a/pyramid/paster_templates/pylons_minimal/development.ini_tmpl
+++ b/pyramid/paster_templates/pylons_minimal/development.ini_tmpl
@@ -11,12 +11,6 @@ session.data_dir = %(here)s/data/sessions/data
session.lock_dir = %(here)s/data/sessions/lock
session.key = {{project}}
session.secret = your_app_secret_string
-cache.regions = default_term, second, short_term, long_term
-cache.type = memory
-cache.second.expire = 1
-cache.short_term.expire = 60
-cache.default_term.expire = 300
-cache.long_term.expire = 3600
[pipeline:main]
pipeline = egg:WebError#evalerror
diff --git a/pyramid/paster_templates/pylons_sqla/+package+/__init__.py_tmpl b/pyramid/paster_templates/pylons_sqla/+package+/__init__.py_tmpl
index cf26cd0ea..11f7c9642 100644
--- a/pyramid/paster_templates/pylons_sqla/+package+/__init__.py_tmpl
+++ b/pyramid/paster_templates/pylons_sqla/+package+/__init__.py_tmpl
@@ -1,5 +1,4 @@
from pyramid_beaker import session_factory_from_settings
-from pyramid.personality.pylons import renderer_globals_factory_config
def main(global_config, **settings):
""" This function returns a Pylons WSGI application.
@@ -17,8 +16,6 @@ def main(global_config, **settings):
session_factory = session_factory_from_settings(settings)
config.set_session_factory(session_factory)
# XXX add caching setup
- globals_factory = renderer_globals_factory_config(None)
- config.set_renderer_globals_factory(globals_factory)
config.add_static_view(
'static',
'{{package}}:static/'
@@ -34,5 +31,7 @@ def main(global_config, **settings):
'{{package}}.handlers:MyHandler',
action='index'
)
+ config.add_subscriber('{{package}}.subscribers.add_renderer_globals',
+ 'pyramid.events.BeforeRender')
config.end()
return config.make_wsgi_app()
diff --git a/pyramid/paster_templates/pylons_sqla/+package+/subscribers.py_tmpl b/pyramid/paster_templates/pylons_sqla/+package+/subscribers.py_tmpl
new file mode 100644
index 000000000..168bf55ea
--- /dev/null
+++ b/pyramid/paster_templates/pylons_sqla/+package+/subscribers.py_tmpl
@@ -0,0 +1,26 @@
+from pyramid.threadlocal import get_current_request
+from pyramid.exceptions import ConfigurationError
+from pyramid.url import route_url
+
+def add_renderer_globals(event):
+ """ A subscriber to the ``pyramid.events.BeforeRender`` events. Updates
+ the :term:`renderer globals` with values that are familiar to Pylons
+ users."""
+ request = event.get('request')
+ if request is None:
+ request = get_current_request()
+ globs = {
+ 'url': route_url,
+ 'h':None,
+ }
+ if request is not None:
+ tmpl_context = request.tmpl_context
+ globs['c'] = tmpl_context
+ globs['tmpl_context'] = tmpl_context
+ try:
+ globs['session'] = request.session
+ except ConfigurationError:
+ pass
+ event.update(globs)
+
+
diff --git a/pyramid/paster_templates/pylons_sqla/development.ini_tmpl b/pyramid/paster_templates/pylons_sqla/development.ini_tmpl
index aeaf84e65..82d55950b 100644
--- a/pyramid/paster_templates/pylons_sqla/development.ini_tmpl
+++ b/pyramid/paster_templates/pylons_sqla/development.ini_tmpl
@@ -13,12 +13,6 @@ session.data_dir = %(here)s/data/sessions/data
session.lock_dir = %(here)s/data/sessions/lock
session.key = {{project}}
session.secret = your_app_secret_string
-cache.regions = default_term, second, short_term, long_term
-cache.type = memory
-cache.second.expire = 1
-cache.short_term.expire = 60
-cache.default_term.expire = 300
-cache.long_term.expire = 3600
[pipeline:main]
pipeline =
diff --git a/pyramid/personality/__init__.py b/pyramid/personality/__init__.py
deleted file mode 100644
index 5bb534f79..000000000
--- a/pyramid/personality/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-# package
diff --git a/pyramid/personality/pylons.py b/pyramid/personality/pylons.py
deleted file mode 100644
index 9ed265169..000000000
--- a/pyramid/personality/pylons.py
+++ /dev/null
@@ -1,25 +0,0 @@
-from pyramid.threadlocal import get_current_request
-from pyramid.url import route_url
-
-def renderer_globals_factory_config(helpers):
- """ Return a :term:`renderer globals` factory useful in applications that
- behave like :term:`Pylons` using the ``helpers`` argument passed as a the
- ``helpers`` key (should be a Python module)."""
- def renderer_globals_factory(system):
- req = system['request']
- if req is None:
- req = get_current_request()
- renderer_globals = {
- 'url': route_url,
- 'h': helpers,
- 'request':req,
- }
- if req is not None:
- tmpl_context = req.tmpl_context
- renderer_globals['c'] = tmpl_context
- renderer_globals['tmpl_context'] = tmpl_context
- if 'session' in req.__dict__:
- renderer_globals['session'] = req.session
- return renderer_globals
- return renderer_globals_factory
-
diff --git a/pyramid/tests/test_pylons_personality.py b/pyramid/tests/test_pylons_personality.py
deleted file mode 100644
index 570fcba5b..000000000
--- a/pyramid/tests/test_pylons_personality.py
+++ /dev/null
@@ -1,54 +0,0 @@
-import unittest
-
-
-class Test_pylons_renderer_globals_factory_config(unittest.TestCase):
- def setUp(self):
- from pyramid.configuration import Configurator
- self.config = Configurator()
- request = DummyRequest()
- self.config.begin(request)
-
- def tearDown(self):
- self.config.end()
-
- def _makeOne(self, helpers):
- from pyramid.personality import pylons
- return pylons.renderer_globals_factory_config(helpers)
-
- def test_with_request(self):
- request = DummyRequest()
- from pyramid.url import route_url
- system = {'request':request}
- factory = self._makeOne('helpers')
- result = factory(system)
- self.assertEqual(result['url'], route_url)
- self.assertEqual(result['h'], 'helpers')
- self.assertEqual(result['c'], request.tmpl_context)
- self.assertEqual(result['tmpl_context'], request.tmpl_context)
-
- def test_without_request(self):
- from pyramid.url import route_url
- from pyramid.threadlocal import get_current_request
- system = {'request':None}
- factory = self._makeOne('helpers')
- result = factory(system)
- self.assertEqual(result['url'], route_url)
- self.assertEqual(result['h'], 'helpers')
- request = get_current_request()
- self.assertEqual(result['c'], request.tmpl_context)
- self.assertEqual(result['tmpl_context'], request.tmpl_context)
- self.assertEqual(result['request'], request)
-
- def test_with_session(self):
- request = DummyRequest()
- request.session = 'session'
- system = {'request':request}
- factory = self._makeOne('helpers')
- result = factory(system)
- self.assertEqual(result['session'], 'session')
-
-class DummyRequest(object):
- def __init__(self):
- self.tmpl_context = object()
-
-