[Checkins] SVN: Sandbox/nadako/zcmlschema/ Add package infrastructure.

Dan Korostelev nadako at gmail.com
Tue Nov 18 11:01:26 EST 2008


Log message for revision 93087:
  Add package infrastructure.

Changed:
  _U  Sandbox/nadako/zcmlschema/
  A   Sandbox/nadako/zcmlschema/bootstrap.py
  A   Sandbox/nadako/zcmlschema/buildout.cfg
  D   Sandbox/nadako/zcmlschema/generate_schema.py
  A   Sandbox/nadako/zcmlschema/setup.py
  A   Sandbox/nadako/zcmlschema/src/
  A   Sandbox/nadako/zcmlschema/src/zcmlschema/
  A   Sandbox/nadako/zcmlschema/src/zcmlschema/__init__.py
  A   Sandbox/nadako/zcmlschema/src/zcmlschema/generate.py
  A   Sandbox/nadako/zcmlschema/src/zcmlschema/interfaces.py

-=-

Property changes on: Sandbox/nadako/zcmlschema
___________________________________________________________________
Modified: svn:ignore
   - .project
.pydevproject
*.xsd

   + .project
.pydevproject
*.xsd
bin
parts
.installed.cfg


Added: Sandbox/nadako/zcmlschema/bootstrap.py
===================================================================
--- Sandbox/nadako/zcmlschema/bootstrap.py	                        (rev 0)
+++ Sandbox/nadako/zcmlschema/bootstrap.py	2008-11-18 16:01:26 UTC (rev 93087)
@@ -0,0 +1,77 @@
+##############################################################################
+#
+# Copyright (c) 2006 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.
+#
+##############################################################################
+"""Bootstrap a buildout-based project
+
+Simply run this script in a directory containing a buildout.cfg.
+The script accepts buildout command-line options, so you can
+use the -c option to specify an alternate configuration file.
+
+$Id: bootstrap.py 90478 2008-08-27 22:44:46Z georgyberdyshev $
+"""
+
+import os, shutil, sys, tempfile, urllib2
+
+tmpeggs = tempfile.mkdtemp()
+
+is_jython = sys.platform.startswith('java')
+
+try:
+    import pkg_resources
+except ImportError:
+    ez = {}
+    exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py'
+                         ).read() in ez
+    ez['use_setuptools'](to_dir=tmpeggs, download_delay=0)
+
+    import pkg_resources
+
+if sys.platform == 'win32':
+    def quote(c):
+        if ' ' in c:
+            return '"%s"' % c # work around spawn lamosity on windows
+        else:
+            return c
+else:
+    def quote (c):
+        return c
+
+cmd = 'from setuptools.command.easy_install import main; main()'
+ws  = pkg_resources.working_set
+
+if is_jython:
+    import subprocess
+    
+    assert subprocess.Popen([sys.executable] + ['-c', quote(cmd), '-mqNxd', 
+           quote(tmpeggs), 'zc.buildout'], 
+           env=dict(os.environ,
+               PYTHONPATH=
+               ws.find(pkg_resources.Requirement.parse('setuptools')).location
+               ),
+           ).wait() == 0
+
+else:
+    assert os.spawnle(
+        os.P_WAIT, sys.executable, quote (sys.executable),
+        '-c', quote (cmd), '-mqNxd', quote (tmpeggs), 'zc.buildout',
+        dict(os.environ,
+            PYTHONPATH=
+            ws.find(pkg_resources.Requirement.parse('setuptools')).location
+            ),
+        ) == 0
+
+ws.add_entry(tmpeggs)
+ws.require('zc.buildout')
+import zc.buildout.buildout
+zc.buildout.buildout.main(sys.argv[1:] + ['bootstrap'])
+shutil.rmtree(tmpeggs)

Added: Sandbox/nadako/zcmlschema/buildout.cfg
===================================================================
--- Sandbox/nadako/zcmlschema/buildout.cfg	                        (rev 0)
+++ Sandbox/nadako/zcmlschema/buildout.cfg	2008-11-18 16:01:26 UTC (rev 93087)
@@ -0,0 +1,15 @@
+[buildout]
+extends = http://download.zope.org/zope3.4/versions.cfg
+versions = versions
+develop = .
+parts = python pydev
+
+[python]
+recipe = zc.recipe.egg:scripts
+eggs = zcmlschema
+scripts = generate-schema
+interpreter = python
+
+[pydev]
+recipe = pb.recipes.pydev
+eggs = ${python:eggs}

Deleted: Sandbox/nadako/zcmlschema/generate_schema.py
===================================================================
--- Sandbox/nadako/zcmlschema/generate_schema.py	2008-11-18 15:52:53 UTC (rev 93086)
+++ Sandbox/nadako/zcmlschema/generate_schema.py	2008-11-18 16:01:26 UTC (rev 93087)
@@ -1,68 +0,0 @@
-import sys
-from keyword import iskeyword
-from xml.dom.minidom import getDOMImplementation
-
-from zope.app.appsetup.appsetup import getConfigContext
-from zope.configuration.docutils import makeDocStructures
-from zope.schema import getFieldsInOrder
-
-namespaces, subdirs = makeDocStructures(getConfigContext())
-dom = getDOMImplementation()
-
-def quoteNS(ns):
-    ns = ns.replace(':', '_co_')
-    ns = ns.replace('/', '_sl_')
-    return ns
-
-seenDirectives = set()
-
-def addDoc(doc, element, text):
-    annotation = doc.createElement('annotation')
-    element.appendChild(annotation)
-    documentation = doc.createElement('documentation')
-    annotation.appendChild(documentation)
-    documentation.appendChild(doc.createTextNode(text))
-
-for ns, directives in namespaces.items():
-    if not ns:
-        ns = 'all'
-    filename = quoteNS(ns) + '.xsd'
-    file = open(filename, 'w')
-    doc = dom.createDocument('http://www.w3.org/2001/XMLSchema', 'schema', None)
-    root = doc.documentElement
-
-    root.setAttribute('xmlns', 'http://www.w3.org/2001/XMLSchema')
-    root.setAttribute('targetNamespace', ns)
-    root.setAttribute('xmlns:target', ns)
-
-    for directive in directives:
-        schema = directives[directive][0]
-        type_name = '%s.%s' % (schema.__module__, schema.__name__)
-
-        if type_name not in seenDirectives:
-            type = doc.createElement('complexType')
-            type.setAttribute('name', type_name)
-            
-            if schema.__doc__:
-                addDoc(doc, type, schema.__doc__)
-            
-            for name, field in getFieldsInOrder(schema):
-                if name.endswith('_') and iskeyword(name[:-1]):
-                    name = name[:-1]
-                attr = doc.createElement('attribute')
-                attr.setAttribute('name', name)
-                attr.setAttribute('type', 'string')
-
-                if field.__doc__:
-                    addDoc(doc, attr, field.__doc__)
-
-                type.appendChild(attr)
-            root.appendChild(type)
-            seenDirectives.add(type_name)
-
-        el = doc.createElement('element')
-        el.setAttribute('name', directive)
-        el.setAttribute('type', 'target:' + type_name)
-        root.appendChild(el)
-
-    doc.writexml(file, addindent='\t', newl='\n')

Added: Sandbox/nadako/zcmlschema/setup.py
===================================================================
--- Sandbox/nadako/zcmlschema/setup.py	                        (rev 0)
+++ Sandbox/nadako/zcmlschema/setup.py	2008-11-18 16:01:26 UTC (rev 93087)
@@ -0,0 +1,12 @@
+from setuptools import find_packages, setup
+
+setup(
+    name='zcmlschema',
+    package_dir={'': 'src'},
+    packages=find_packages('src'),
+    include_package_data=True,
+    install_requires=[
+        'zope.app.appsetup',
+    ],
+    entry_points={'console_scripts': ['generate-schema=zcmlschema.generate:main']}
+)


Property changes on: Sandbox/nadako/zcmlschema/src
___________________________________________________________________
Added: svn:ignore
   + zcmlschema.egg-info


Copied: Sandbox/nadako/zcmlschema/src/zcmlschema/generate.py (from rev 93085, Sandbox/nadako/zcmlschema/generate_schema.py)
===================================================================
--- Sandbox/nadako/zcmlschema/src/zcmlschema/generate.py	                        (rev 0)
+++ Sandbox/nadako/zcmlschema/src/zcmlschema/generate.py	2008-11-18 16:01:26 UTC (rev 93087)
@@ -0,0 +1,70 @@
+import sys
+from keyword import iskeyword
+from xml.dom.minidom import getDOMImplementation
+
+from zope.app.appsetup.appsetup import getConfigContext
+from zope.configuration.docutils import makeDocStructures
+from zope.schema import getFieldsInOrder
+
+namespaces, subdirs = makeDocStructures(getConfigContext())
+dom = getDOMImplementation()
+
+def quoteNS(ns):
+    ns = ns.replace(':', '_co_')
+    ns = ns.replace('/', '_sl_')
+    return ns
+
+seenDirectives = set()
+
+def addDoc(doc, element, text):
+    annotation = doc.createElement('annotation')
+    element.appendChild(annotation)
+    documentation = doc.createElement('documentation')
+    annotation.appendChild(documentation)
+    documentation.appendChild(doc.createTextNode(text))
+
+def main():
+
+    for ns, directives in namespaces.items():
+        if not ns:
+            ns = 'all'
+        filename = quoteNS(ns) + '.xsd'
+        file = open(filename, 'w')
+        doc = dom.createDocument('http://www.w3.org/2001/XMLSchema', 'schema', None)
+        root = doc.documentElement
+    
+        root.setAttribute('xmlns', 'http://www.w3.org/2001/XMLSchema')
+        root.setAttribute('targetNamespace', ns)
+        root.setAttribute('xmlns:target', ns)
+    
+        for directive in directives:
+            schema = directives[directive][0]
+            type_name = '%s.%s' % (schema.__module__, schema.__name__)
+    
+            if type_name not in seenDirectives:
+                type = doc.createElement('complexType')
+                type.setAttribute('name', type_name)
+                
+                if schema.__doc__:
+                    addDoc(doc, type, schema.__doc__)
+                
+                for name, field in getFieldsInOrder(schema):
+                    if name.endswith('_') and iskeyword(name[:-1]):
+                        name = name[:-1]
+                    attr = doc.createElement('attribute')
+                    attr.setAttribute('name', name)
+                    attr.setAttribute('type', 'string')
+    
+                    if field.__doc__:
+                        addDoc(doc, attr, field.__doc__)
+    
+                    type.appendChild(attr)
+                root.appendChild(type)
+                seenDirectives.add(type_name)
+    
+            el = doc.createElement('element')
+            el.setAttribute('name', directive)
+            el.setAttribute('type', 'target:' + type_name)
+            root.appendChild(el)
+    
+        doc.writexml(file, addindent='\t', newl='\n')


Property changes on: Sandbox/nadako/zcmlschema/src/zcmlschema/generate.py
___________________________________________________________________
Added: svn:mergeinfo
   + 



More information about the Checkins mailing list