[Checkins] SVN: grokcore.startup/branches/jw-configurable-ireraise-adaptation/s sketch out how to make what exceptions to exempt from re-raising configurable
Jan-Wijbrand Kolman
janwijbrand at gmail.com
Tue Sep 22 12:27:07 EDT 2009
Log message for revision 104430:
sketch out how to make what exceptions to exempt from re-raising configurable
Changed:
U grokcore.startup/branches/jw-configurable-ireraise-adaptation/setup.py
U grokcore.startup/branches/jw-configurable-ireraise-adaptation/src/grokcore/startup/__init__.py
U grokcore.startup/branches/jw-configurable-ireraise-adaptation/src/grokcore/startup/startup.py
-=-
Modified: grokcore.startup/branches/jw-configurable-ireraise-adaptation/setup.py
===================================================================
--- grokcore.startup/branches/jw-configurable-ireraise-adaptation/setup.py 2009-09-22 16:25:38 UTC (rev 104429)
+++ grokcore.startup/branches/jw-configurable-ireraise-adaptation/setup.py 2009-09-22 16:27:06 UTC (rev 104430)
@@ -41,6 +41,11 @@
zip_safe=False,
install_requires=['setuptools',
'zdaemon',
+ 'zope.interface',
+ 'zope.component',
+ 'zope.security',
+ 'zope.publisher',
+ 'zope.dottedname',
'zope.app.wsgi',
'zope.app.debug',
],
Modified: grokcore.startup/branches/jw-configurable-ireraise-adaptation/src/grokcore/startup/__init__.py
===================================================================
--- grokcore.startup/branches/jw-configurable-ireraise-adaptation/src/grokcore/startup/__init__.py 2009-09-22 16:25:38 UTC (rev 104429)
+++ grokcore.startup/branches/jw-configurable-ireraise-adaptation/src/grokcore/startup/__init__.py 2009-09-22 16:27:06 UTC (rev 104430)
@@ -13,5 +13,6 @@
##############################################################################
# Make this a package.
from grokcore.startup.startup import (application_factory,
+ debug_application_factory,
interactive_debug_prompt,
zdaemon_controller)
Modified: grokcore.startup/branches/jw-configurable-ireraise-adaptation/src/grokcore/startup/startup.py
===================================================================
--- grokcore.startup/branches/jw-configurable-ireraise-adaptation/src/grokcore/startup/startup.py 2009-09-22 16:25:38 UTC (rev 104429)
+++ grokcore.startup/branches/jw-configurable-ireraise-adaptation/src/grokcore/startup/startup.py 2009-09-22 16:27:06 UTC (rev 104430)
@@ -5,11 +5,36 @@
import zope.app.wsgi
import zope.app.debug
+from zope.component import provideAdapter
+from zope.security.interfaces import IUnauthorized
+from zope.publisher.interfaces import IReRaiseException
+from zope.dottedname.resolve import resolve
+
def application_factory(global_conf, **local_conf):
zope_conf = local_conf.get('zope_conf', global_conf.get(
'zope_conf', os.path.join('parts', 'etc', 'zope.conf')))
return zope.app.wsgi.getWSGIApplication(zope_conf)
+
+def debug_application_factory(global_conf, **local_conf):
+ # First create the application itself
+ app = application_factory(global_conf, **local_conf)
+ # Then register the IReRaiseException adaptation for
+ # various types of exceptions that are exempt from being
+ # raised by the publisher.
+ def do_not_reraise_exception(context):
+ return lambda : False
+ iface_names = local_conf.get('exempt-exceptions', '').split(',')
+ for name in iface_names:
+ name = name.strip()
+ if not name:
+ continue
+ iface = resolve(name)
+ provideAdapter(do_not_reraise_exception, (iface, ), IReRaiseException)
+ # Return the created application
+ return app
+
+
def interactive_debug_prompt(zope_conf=os.path.join('parts', 'etc',
'zope.conf')):
db = zope.app.wsgi.config(zope_conf)
More information about the checkins
mailing list