[Zope-CVS] SVN: Sandbox/chrism/zodb/3.6.0/ Eggify.

Chris McDonough chrism at plope.com
Thu Mar 2 23:14:27 EST 2006


Log message for revision 65766:
  Eggify.
  

Changed:
  A   Sandbox/chrism/zodb/3.6.0/persistent/setup.py
  A   Sandbox/chrism/zodb/3.6.0/setup.py

-=-
Added: Sandbox/chrism/zodb/3.6.0/persistent/setup.py
===================================================================
--- Sandbox/chrism/zodb/3.6.0/persistent/setup.py	2006-03-03 04:13:32 UTC (rev 65765)
+++ Sandbox/chrism/zodb/3.6.0/persistent/setup.py	2006-03-03 04:14:26 UTC (rev 65766)
@@ -0,0 +1,90 @@
+##############################################################################
+#
+# 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.
+#
+##############################################################################
+"""Zope Object Database: object database and persistence
+
+The Zope Object Database provides an object-oriented database for
+Python that provides a high-degree of transparency. Applications can
+take advantage of object database features with few, if any, changes
+to application logic.  ZODB includes features such as a plugable storage
+interface, rich transaction support, and undo.
+
+This distribution includes the persistent module from ZODB.
+"""
+
+# The (non-obvious!) choices for the Trove Development Status line:
+# Development Status :: 5 - Production/Stable
+# Development Status :: 4 - Beta
+# Development Status :: 3 - Alpha
+
+import os
+from setuptools import setup, Extension
+
+classifiers = """\
+Development Status :: 3 - Alpha
+Intended Audience :: Developers
+License :: OSI Approved :: Zope Public License
+Programming Language :: Python
+Topic :: Database
+Topic :: Software Development :: Libraries :: Python Modules
+Operating System :: Microsoft :: Windows
+Operating System :: Unix
+"""
+
+cPersistence = Extension(name = 'persistent.cPersistence',
+                         include_dirs = ['src'],
+                         sources= ['src/cPersistence.c',
+                                   'src/ring.c'],
+                         depends = ['src/cPersistence.h',
+                                    'src/ring.h',
+                                    'src/ring.c']
+                         )
+
+cPickleCache = Extension(name = 'persistent.cPickleCache',
+                         include_dirs = ['src'],
+                         sources= ['src/cPickleCache.c',
+                                   'src/ring.c'],
+                         depends = ['src/cPersistence.h',
+                                    'src/ring.h',
+                                    'src/ring.c']
+                         )
+
+TimeStamp = Extension(name = 'persistent.TimeStamp',
+                      include_dirs = ['src'],
+                      sources= ['src/TimeStamp.c']
+                      )
+
+setup(name='persistent',
+      version='3.6.0',
+      url='http://svn.zope.org/ZODB',
+      download_url = "http://www.zope.org/Products/ZODB3.6",
+      license='ZPL 2.1',
+      description='ZODB persistence implementation',
+      author='Zope Corporation and Contributors',
+      maintainer='Zope Corporation and Contributors',
+      author_email='zodb-dev at zope.org',
+      maintainer_email='zodb-dev at zope.org',
+      headers = ['src/cPersistence.h'],
+      platforms = ['any'],
+      classifiers = filter(None, classifiers.split("\n")),
+      long_description = __doc__,
+      packages=['persistent', 'persistent.tests'],
+      package_dir = {'persistent': 'src'},
+      ext_modules=[cPersistence, cPickleCache, TimeStamp],
+      tests_require = [],
+      install_requires=[],
+      include_package_data = True,
+      zip_safe = True,
+      )
+
+


Property changes on: Sandbox/chrism/zodb/3.6.0/persistent/setup.py
___________________________________________________________________
Name: svn:eol-style
   + native

Added: Sandbox/chrism/zodb/3.6.0/setup.py
===================================================================
--- Sandbox/chrism/zodb/3.6.0/setup.py	2006-03-03 04:13:32 UTC (rev 65765)
+++ Sandbox/chrism/zodb/3.6.0/setup.py	2006-03-03 04:14:26 UTC (rev 65766)
@@ -0,0 +1,284 @@
+##############################################################################
+#
+# Copyright (c) 2002, 2003 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.
+#
+##############################################################################
+"""Zope Object Database: object database and persistence
+
+The Zope Object Database provides an object-oriented database for
+Python that provides a high-degree of transparency. Applications can
+take advantage of object database features with few, if any, changes
+to application logic.  ZODB includes features such as a plugable storage
+interface, rich transaction support, and undo.
+"""
+
+# The (non-obvious!) choices for the Trove Development Status line:
+# Development Status :: 5 - Production/Stable
+# Development Status :: 4 - Beta
+# Development Status :: 3 - Alpha
+
+classifiers = """\
+Development Status :: 3 - Alpha
+Intended Audience :: Developers
+License :: OSI Approved :: Zope Public License
+Programming Language :: Python
+Topic :: Database
+Topic :: Software Development :: Libraries :: Python Modules
+Operating System :: Microsoft :: Windows
+Operating System :: Unix
+"""
+
+import glob
+import os
+import sys
+from distutils.core import setup
+from distutils.extension import Extension
+from distutils import dir_util
+from distutils.core import setup
+from distutils.dist import Distribution
+from distutils.command.install_lib import install_lib
+from distutils.command.build_py import build_py
+from distutils.util import convert_path
+
+if sys.version_info < (2, 3, 4):
+    print "ZODB 3.3 requires Python 2.3.4 or higher"
+    sys.exit(0)
+
+# Include directories for C extensions
+include = ['src']
+
+# Set up dependencies for the BTrees package
+base_btrees_depends = [
+    "src/BTrees/BTreeItemsTemplate.c",
+    "src/BTrees/BTreeModuleTemplate.c",
+    "src/BTrees/BTreeTemplate.c",
+    "src/BTrees/BucketTemplate.c",
+    "src/BTrees/MergeTemplate.c",
+    "src/BTrees/SetOpTemplate.c",
+    "src/BTrees/SetTemplate.c",
+    "src/BTrees/TreeSetTemplate.c",
+    "src/BTrees/sorters.c",
+    "src/persistent/cPersistence.h",
+    ]
+
+_flavors = {"O": "object", "I": "int", "F": "float"}
+
+KEY_H = "src/BTrees/%skeymacros.h"
+VALUE_H = "src/BTrees/%svaluemacros.h"
+
+def BTreeExtension(flavor):
+    key = flavor[0]
+    value = flavor[1]
+    name = "BTrees._%sBTree" % flavor
+    sources = ["src/BTrees/_%sBTree.c" % flavor]
+    kwargs = {"include_dirs": include}
+    if flavor != "fs":
+        kwargs["depends"] = (base_btrees_depends + [KEY_H % _flavors[key],
+                                                    VALUE_H % _flavors[value]])
+    if key != "O":
+        kwargs["define_macros"] = [('EXCLUDE_INTSET_SUPPORT', None)]
+    return Extension(name, sources, **kwargs)
+
+exts = [BTreeExtension(flavor)
+        for flavor in ("OO", "IO", "OI", "II", "IF", "fs")]
+
+cPersistence = Extension(name = 'persistent.cPersistence',
+                         include_dirs = include,
+                         sources= ['src/persistent/cPersistence.c',
+                                   'src/persistent/ring.c'],
+                         depends = ['src/persistent/cPersistence.h',
+                                    'src/persistent/ring.h',
+                                    'src/persistent/ring.c']
+                         )
+
+cPickleCache = Extension(name = 'persistent.cPickleCache',
+                         include_dirs = include,
+                         sources= ['src/persistent/cPickleCache.c',
+                                   'src/persistent/ring.c'],
+                         depends = ['src/persistent/cPersistence.h',
+                                    'src/persistent/ring.h',
+                                    'src/persistent/ring.c']
+                         )
+
+TimeStamp = Extension(name = 'persistent.TimeStamp',
+                      include_dirs = include,
+                      sources= ['src/persistent/TimeStamp.c']
+                      )
+
+##coptimizations = Extension(name = 'ZODB.coptimizations',
+##                           include_dirs = include,
+##                           sources= ['src/ZODB/coptimizations.c']
+##                           )
+
+winlock = Extension(name = 'ZODB.winlock',
+                    include_dirs = include,
+                    sources = ['src/ZODB/winlock.c']
+                    )
+
+cZopeInterface = Extension(
+            name = 'zope.interface._zope_interface_coptimizations',
+            sources= ['src/zope/interface/_zope_interface_coptimizations.c']
+            )
+
+cZopeProxy = Extension(
+            name = 'zope.proxy._zope_proxy_proxy',
+            sources= ['src/zope/proxy/_zope_proxy_proxy.c']
+            )
+
+exts += [cPersistence,
+         cPickleCache,
+         TimeStamp,
+         winlock,
+         cZopeInterface,
+         cZopeProxy,
+        ]
+
+# The ZODB.zodb4 code is not being packaged, because it is only
+# need to convert early versions of Zope3 databases to ZODB3.
+
+packages = ["BTrees", "BTrees.tests",
+            "ZEO", "ZEO.auth", "ZEO.zrpc", "ZEO.tests",
+            "ZODB", "ZODB.FileStorage", "ZODB.tests",
+            "Persistence", "Persistence.tests",
+            "persistent", "persistent.tests",
+            "transaction", "transaction.tests",
+            "ThreadedAsync",
+            "zdaemon", "zdaemon.tests",
+
+            "zope",
+            "zope.interface", "zope.interface.tests",
+            "zope.interface.common", "zope.interface.common.tests",
+            "zope.proxy", "zope.proxy.tests",
+            "zope.testing",
+
+            "ZopeUndo", "ZopeUndo.tests",
+            "ZConfig", "ZConfig.tests",
+            "ZConfig.components",
+            "ZConfig.components.basic", "ZConfig.components.basic.tests",
+            "ZConfig.components.logger", "ZConfig.components.logger.tests",
+            "ZConfig.tests.library", "ZConfig.tests.library.widget",
+            "ZConfig.tests.library.thing",
+            ]
+
+scripts = ["src/scripts/fsdump.py",
+           "src/scripts/fsoids.py",
+           "src/scripts/fsrefs.py",
+           "src/scripts/fstail.py",
+           "src/scripts/fstest.py",
+           "src/scripts/repozo.py",
+           "src/scripts/zeopack.py",
+           "src/ZConfig/scripts/zconfig",
+           "src/ZEO/runzeo.py",
+           "src/ZEO/zeopasswd.py",
+           "src/ZEO/mkzeoinst.py",
+           "src/ZEO/zeoctl.py",
+           "src/zdaemon/zdrun.py",
+           "src/zdaemon/zdctl.py",
+           ]
+
+def copy_other_files(cmd, outputbase):
+    # A delicate dance to copy files with certain extensions
+    # into a package just like .py files.
+    extensions = ["*.conf", "*.xml", "*.txt", "*.sh"]
+    directories = [
+        "transaction",
+        "persistent/tests",
+        "ZConfig/components/basic",
+        "ZConfig/components/logger",
+        "ZConfig/tests/input",
+        "ZConfig/tests/library",
+        "ZConfig/tests/library/thing",
+        "ZConfig/tests/library/thing/extras",
+        "ZConfig/tests/library/widget",
+        "ZEO",
+        "ZODB",
+        "ZODB/tests",
+        "zdaemon",
+        "zdaemon/tests",
+        "zope/interface", "zope/interface/tests",
+        "zope/testing",
+        ]
+    # zope.testing's testrunner-ex is not a package, but contains
+    # packages, in a fairly elaborate subtree.  Major special-casing
+    # for this.  First find all the (non-SVN) directories starting
+    # there, and append them all to `directories`.
+    for root, dirs, files in os.walk("src/zope/testing/testrunner-ex"):
+        dirs[:] = [d for d in dirs if ".svn" not in d]
+        assert root.startswith("src/")
+        normpath = root[4:].replace("\\", "/")
+        directories.append(normpath)
+    for dir in directories:
+        exts = extensions
+        if dir.startswith("zope/testing/testrunner-ex"):
+            # testrunner-ex isn't a package, so not even the .py files
+            # get copied unless we force that there.
+            exts = extensions + ["*.py"]
+        dir = convert_path(dir)
+        inputdir = os.path.join("src", dir)
+        outputdir = os.path.join(outputbase, dir)
+        if not os.path.exists(outputdir):
+            dir_util.mkpath(outputdir)
+        for pattern in exts:
+            for fn in glob.glob(os.path.join(inputdir, pattern)):
+                # glob is going to give us a path including "src",
+                # which must be stripped to get the destination dir
+                dest = os.path.join(outputbase, fn[4:])
+                cmd.copy_file(fn, dest)
+
+class MyLibInstaller(install_lib):
+    """Custom library installer, used to put hosttab in the right place."""
+
+    # We use the install_lib command since we need to put hosttab
+    # inside the library directory.  This is where we already have the
+    # real information about where to install it after the library
+    # location has been set by any relevant distutils command line
+    # options.
+
+    def run(self):
+        install_lib.run(self)
+        copy_other_files(self, self.install_dir)
+
+class MyPyBuilder(build_py):
+    def build_packages(self):
+        build_py.build_packages(self)
+        copy_other_files(self, self.build_lib)
+
+class MyDistribution(Distribution):
+    # To control the selection of MyLibInstaller and MyPyBuilder, we
+    # have to set it into the cmdclass instance variable, set in
+    # Distribution.__init__().
+
+    def __init__(self, *attrs):
+        Distribution.__init__(self, *attrs)
+        self.cmdclass['build_py'] = MyPyBuilder
+        self.cmdclass['install_lib'] = MyLibInstaller
+
+doclines = __doc__.split("\n")
+
+setup(name="ZODB3",
+      version="3.5.0a6",
+      maintainer="Zope Corporation",
+      maintainer_email="zodb-dev at zope.org",
+      url = "http://www.zope.org/Wikis/ZODB",
+      download_url = "http://www.zope.org/Products/ZODB3.5",
+      packages = packages,
+      package_dir = {'': 'src'},
+      ext_modules = exts,
+      headers = ['src/persistent/cPersistence.h',
+                 'src/persistent/ring.h'],
+      license = "ZPL 2.1",
+      platforms = ["any"],
+      description = doclines[0],
+      classifiers = filter(None, classifiers.split("\n")),
+      long_description = "\n".join(doclines[2:]),
+      distclass = MyDistribution,
+      scripts = scripts,
+      )


Property changes on: Sandbox/chrism/zodb/3.6.0/setup.py
___________________________________________________________________
Name: svn:eol-style
   + native



More information about the Zope-CVS mailing list