[Checkins] SVN: GenericSetup/branches/wichert-zcml-steps/ New branch for zcml-based step registration

Wichert Akkerman wichert at wiggy.net
Sun Sep 23 17:05:34 EDT 2007


Log message for revision 79867:
  New branch for zcml-based step registration
  

Changed:
  A   GenericSetup/branches/wichert-zcml-steps/
  U   GenericSetup/branches/wichert-zcml-steps/meta.zcml
  U   GenericSetup/branches/wichert-zcml-steps/registry.py
  U   GenericSetup/branches/wichert-zcml-steps/zcml.py

-=-
Copied: GenericSetup/branches/wichert-zcml-steps (from rev 79866, GenericSetup/trunk)

Modified: GenericSetup/branches/wichert-zcml-steps/meta.zcml
===================================================================
--- GenericSetup/trunk/meta.zcml	2007-09-23 18:03:59 UTC (rev 79866)
+++ GenericSetup/branches/wichert-zcml-steps/meta.zcml	2007-09-23 21:05:33 UTC (rev 79867)
@@ -11,6 +11,12 @@
         />
 
     <meta:directive
+        name="importStep"
+        schema=".zcml.IImportStepDirective"
+        handler=".zcml.importStep"
+        />
+
+    <meta:directive
         name="upgradeStep"
         schema=".zcml.IUpgradeStepDirective"
         handler=".zcml.upgradeStep"

Modified: GenericSetup/branches/wichert-zcml-steps/registry.py
===================================================================
--- GenericSetup/trunk/registry.py	2007-09-23 18:03:59 UTC (rev 79866)
+++ GenericSetup/branches/wichert-zcml-steps/registry.py	2007-09-23 21:05:33 UTC (rev 79867)
@@ -293,6 +293,7 @@
 
 InitializeClass( ImportStepRegistry )
 
+_import_step_registry = ImportStepRegistry()
 
 class ExportStepRegistry( BaseStepRegistry ):
 
@@ -379,6 +380,9 @@
 
 InitializeClass( ExportStepRegistry )
 
+_export_step_registry = ExportStepRegistry()
+
+
 class ToolsetRegistry( Implicit ):
 
     """ Track required / forbidden tools.

Modified: GenericSetup/branches/wichert-zcml-steps/zcml.py
===================================================================
--- GenericSetup/trunk/zcml.py	2007-09-23 18:03:59 UTC (rev 79866)
+++ GenericSetup/branches/wichert-zcml-steps/zcml.py	2007-09-23 21:05:33 UTC (rev 79867)
@@ -22,6 +22,8 @@
 from zope.interface import Interface
 
 from interfaces import BASE
+from registry import _import_step_registry
+from registry import _export_step_registry
 from registry import _profile_registry
 from upgrade import _upgrade_registry
 
@@ -83,6 +85,52 @@
         )
 
 
+#### genericsetup:importStep
+
+class IImportStepDirective(Interface):
+
+    """Register import steps with the global registry.
+    """
+
+    name = PythonIdentifier(
+        title=u'Name',
+        description=u'',
+        required=True)
+
+    title = MessageID(
+        title=u'Title',
+        description=u'',
+        required=True)
+
+    description = MessageID(
+        title=u'Description',
+        description=u'',
+        required=True)
+
+    handler = GlobalObject(
+        title=u'Handler',
+        description=u'',
+        required=True)
+
+    version = MessageID(
+        title=u'Version',
+        description=u'',
+        required=True)
+
+_import_step_regs = []
+
+def importStep(_context, name, version, title, description, handler):
+    """ Add a new import step to the registry.
+    """
+    _import_steps_regs.append(name)
+
+    _context.action(
+        discriminator = ('importStep', name),
+        callable = _import_step_registry.registerStep,
+        args = (name, version, handler, (), title, description)
+        )
+
+
 #### genericsetup:upgradeStep
 
 import zope.schema
@@ -176,7 +224,7 @@
 
 #### cleanup
 
-def cleanUp():
+def cleanUpProfiles():
     global _profile_regs
     for profile_id in _profile_regs:
         del _profile_registry._profile_info[profile_id]
@@ -185,7 +233,12 @@
 
     _upgrade_registry.clear()
 
+def cleanUpImportSteps():
+    global _import_step_regs
+    for name in  _import_step_regs:
 
+
 from zope.testing.cleanup import addCleanUp
-addCleanUp(cleanUp)
+addCleanUp(cleanUpProfiles)
+addCleanUp(cleanUpImportSteps)
 del addCleanUp



More information about the Checkins mailing list