[Checkins] SVN: zope.app.appsetup/trunk/ - Feature: Developed an entry point that allows you to quickly bring up an

Stephan Richter srichter at cosmos.phy.tufts.edu
Mon Aug 25 17:43:59 EDT 2008


Log message for revision 90244:
  - Feature: Developed an entry point that allows you to quickly bring up an
    application instance for debugging purposes. (Implemented by Marius 
    Gedminas and Stephan Richter.)
  
  

Changed:
  U   zope.app.appsetup/trunk/CHANGES.txt
  U   zope.app.appsetup/trunk/setup.py
  A   zope.app.appsetup/trunk/src/zope/app/appsetup/debug.py

-=-
Modified: zope.app.appsetup/trunk/CHANGES.txt
===================================================================
--- zope.app.appsetup/trunk/CHANGES.txt	2008-08-25 19:49:07 UTC (rev 90243)
+++ zope.app.appsetup/trunk/CHANGES.txt	2008-08-25 21:43:58 UTC (rev 90244)
@@ -2,6 +2,13 @@
 CHANGES
 =======
 
+Version 3.8.0 (2008-??-??)
+--------------------------
+
+- Feature: Developed an entry point that allows you to quickly bring up an
+  application instance for debugging purposes. (Implemented by Marius Gedminas
+  and Stephan Richter.)
+
 Version 3.7.0 (2008-08-19)
 --------------------------
 
@@ -10,7 +17,6 @@
   setup) to make use of the same configuration schema support used by normal
   startup.
 
-
 Version 3.6.0 (2008-07-23)
 --------------------------
 

Modified: zope.app.appsetup/trunk/setup.py
===================================================================
--- zope.app.appsetup/trunk/setup.py	2008-08-25 19:49:07 UTC (rev 90243)
+++ zope.app.appsetup/trunk/setup.py	2008-08-25 21:43:58 UTC (rev 90244)
@@ -46,7 +46,7 @@
         'Operating System :: OS Independent',
         'Topic :: Internet :: WWW/HTTP',
         'Framework :: Zope3'],
-    url='http://cheeseshop.python.org/pypi/zope.app.appsetup',
+    url='http://pypi.python.org/pypi/zope.app.appsetup',
     packages=find_packages('src'),
     package_dir={'': 'src'},
     extras_require=dict(test=['zope.app.testing']),
@@ -67,4 +67,8 @@
                       ],
     include_package_data=True,
     zip_safe=False,
+    entry_points = """
+        [console_scripts]
+        debug = zope.app.appsetup.debug:main
+        """,
     )

Added: zope.app.appsetup/trunk/src/zope/app/appsetup/debug.py
===================================================================
--- zope.app.appsetup/trunk/src/zope/app/appsetup/debug.py	                        (rev 0)
+++ zope.app.appsetup/trunk/src/zope/app/appsetup/debug.py	2008-08-25 21:43:58 UTC (rev 90244)
@@ -0,0 +1,62 @@
+##############################################################################
+#
+# Copyright (c) 2008 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Debug a Zope Application
+
+$Id$
+"""
+__docformat__ = 'restructuredtext'
+import os
+import sys
+import zdaemon.zdoptions
+import zope.app.appsetup.appsetup
+import zope.app.appsetup.interfaces
+import zope.app.appsetup.product
+import zope.event
+from zope.app.publication.zopepublication import ZopePublication
+
+os.environ["PYTHONINSPECT"] = "true"
+
+def load_options(args=None):
+    if args is None:
+        args = sys.argv[1:]
+    options = zdaemon.zdoptions.ZDOptions()
+    options.schemadir = os.path.join(
+        os.path.dirname(os.path.abspath(__file__)), 'schema')
+    options.realize(args)
+    options = options.configroot
+
+    if options.path:
+        sys.path[:0] = [os.path.abspath(p) for p in options.path]
+    return options
+
+
+def loadApplication(args=None):
+    options = load_options(args)
+
+    zope.app.appsetup.product.setProductConfigurations(
+        options.product_config)
+
+    zope.app.appsetup.config(options.site_definition)
+
+    db = zope.app.appsetup.appsetup.multi_database(options.databases)[0][0]
+    zope.event.notify(zope.app.appsetup.interfaces.DatabaseOpened(db))
+    return db
+
+
+def main(args=None):
+    db = loadApplication(args)
+    if "PYTHONSTARTUP" in os.environ:
+        execfile(os.environ["PYTHONSTARTUP"])
+    sys.modules['__main__'].root = db.open().root()[ZopePublication.root_name]
+    print 'The application root is known as `root`.'


Property changes on: zope.app.appsetup/trunk/src/zope/app/appsetup/debug.py
___________________________________________________________________
Name: svn:keywords
   + Id



More information about the Checkins mailing list