[Checkins] SVN: lovely.recipe/branches/lovely-instance/src/lovely/recipe/zope/zope.py added old ZConfigParse and ZConfigSection from http://svn.zope.org/zc.zope3recipes/trunk/zc/zope3recipes/recipes.py?rev=76910&r1=75888&r2=76910

Jodok Batlogg jodok.batlogg at lovelysystems.com
Mon Aug 27 17:54:48 EDT 2007


Log message for revision 79300:
  added old ZConfigParse and ZConfigSection from http://svn.zope.org/zc.zope3recipes/trunk/zc/zope3recipes/recipes.py?rev=76910&r1=75888&r2=76910

Changed:
  U   lovely.recipe/branches/lovely-instance/src/lovely/recipe/zope/zope.py

-=-
Modified: lovely.recipe/branches/lovely-instance/src/lovely/recipe/zope/zope.py
===================================================================
--- lovely.recipe/branches/lovely-instance/src/lovely/recipe/zope/zope.py	2007-08-27 21:32:59 UTC (rev 79299)
+++ lovely.recipe/branches/lovely-instance/src/lovely/recipe/zope/zope.py	2007-08-27 21:54:48 UTC (rev 79300)
@@ -21,14 +21,90 @@
 import os, shutil
 import zc.buildout
 import zc.recipe.egg
+import ZConfig.cfgparser
 from zc.zope3recipes.recipes import (Instance,
                                      App,
                                      server_types,
                                      event_log2,
                                      this_loc,
                                      site_zcml_template)
-from ZConfig.cfgparser import ZConfigParser
 
+# from http://svn.zope.org/zc.zope3recipes/trunk/zc/zope3recipes/recipes.py?rev=76910&r1=75888&r2=76910
+class ZConfigResource:	 
+ 	 
+     def __init__(self, file, url=''):	 
+         self.file, self.url = file, url
+
+# from http://svn.zope.org/zc.zope3recipes/trunk/zc/zope3recipes/recipes.py?rev=76910&r1=75888&r2=76910
+class ZConfigSection(dict):	 
+	 
+     def __init__(self, type='', name='', data=None, sections=None):	 
+         dict.__init__(self)	 
+         if data:	 
+             self.update(data)	 
+         self.sections = sections or []	 
+         self.type, self.name = type, name	 
+ 	 
+     def addValue(self, key, value, *args):	 
+         if key in self:	 
+             self[key].append(value)	 
+         else:	 
+             self[key] = [value]	 
+ 	 
+     def __str__(self, pre=''):	 
+         result = []	 
+         if self.type:	 
+             if self.name:	 
+                 result = ['%s<%s %s>' % (pre, self.type, self.name)]	 
+             else:	 
+                 result = ['%s<%s>' % (pre, self.type)]	 
+             pre += '  '	 
+ 	 
+         for name, values in sorted(self.items()):	 
+             for value in values:	 
+                 result.append('%s%s %s' % (pre, name, value))	 
+ 	 
+         if self.sections and self:	 
+             result.append('')	 
+ 	 
+         for section in self.sections:	 
+             result.append(section.__str__(pre))	 
+ 	 
+         if self.type:	 
+             result.append('%s</%s>' % (pre[:-2], self.type))	 
+             result.append('')	 
+ 	 
+         return '\n'.join(result).rstrip()+'\n'
+
+# from http://svn.zope.org/zc.zope3recipes/trunk/zc/zope3recipes/recipes.py?rev=76910&r1=75888&r2=76910
+class ZConfigContext:	 
+ 	 
+     def __init__(self):	 
+         self.top = ZConfigSection()	 
+         self.sections = []	 
+ 	 
+     def startSection(self, container, type, name):	 
+         newsec = ZConfigSection(type, name)	 
+         container.sections.append(newsec)	 
+         return newsec	 
+ 	 
+     def endSection(self, container, type, name, newsect):	 
+         pass	 
+ 	 
+     def importSchemaComponent(self, pkgname):	 
+         pass	 
+ 	 
+     def includeConfiguration(self, section, newurl, defines):	 
+         raise NotImplementedError('includes are not supported')	 
+ 
+
+# from http://svn.zope.org/zc.zope3recipes/trunk/zc/zope3recipes/recipes.py?rev=76910&r1=75888&r2=76910
+def ZConfigParse(file):	 
+     c = ZConfigContext()	 
+     ZConfig.cfgparser.ZConfigParser(ZConfigResource(file), c).parse(c.top)	 
+     return c.top
+
+
 class TemplatedInstance:
 
     templatedOptions = []



More information about the Checkins mailing list