View of /PEAK/setup.py
Parent Directory
| Revision Log
Revision:
997 -
(
download)
(
as text)
Sat Apr 19 18:35:30 2003 UTC (21 years ago) by
pje
File size: 3888 byte(s)
PEAK-Zope namegeddon, phase 2. Switched to 'zope.interface' and
'persistence', using Zope X3 Milestone 2 as a basis. Early-draft "setup"
support with autodetection of an existing Zope installation. This still
needs a lot of work. Since I did this on Linux, I now see the problem
Ulrich was talking about on tests failing. I have some ideas about it but
I still need to track it down. Probably this will mean revising the format
of PEAK "import strings", which is just as well because I've wanted to
clean them up anyway. (The ':' will go away, basically.)
#!/usr/bin/env python
"""Distutils setup file"""
from distutils.core import Extension
from os.path import join, walk
from os import sep
import fnmatch
include_tests = True # edit this to stop installation of test modules
include_metamodels = True # edit this to stop installation of MOF, UML, etc.
try:
import Pyrex.Distutils
EXT = '.pyx'
except ImportError:
EXT = '.c'
def findDataFiles(dir, skipDepth, *globs):
def visit(out, dirname, names):
n = []
for pat in globs:
n.extend(fnmatch.filter(names,pat))
if n:
instdir = sep.join(dirname.split(sep)[skipDepth:])
out.append( (instdir, [join(dirname,f) for f in n]) )
out = []
walk(dir,visit,out)
return out
# Metadata
PACKAGE_NAME = "PEAK"
PACKAGE_VERSION = "0.5a0"
HAPPYDOC_IGNORE = [
'-i', 'examples', '-i', 'old', '-i', 'tests',
'-i', 'Interface', '-i', 'Persistence', '-i', 'kjbuckets',
]
# Base packages for installation
packages = [
'peak', 'peak.api', 'peak.binding', 'peak.config', 'peak.model',
'peak.naming', 'peak.naming.factories', 'peak.running',
'peak.storage', 'peak.util',
'Interface', 'Interface.Common', 'Interface.Registry',
'Persistence',
]
extensions = [
Extension("kjbuckets", ["src/kjbuckets/kjbucketsmodule.c"]),
Extension(
"peak.binding._once", [
"src/peak/binding/_once" + EXT,
"src/peak/binding/getdict.c"
]
),
Extension("peak.util.buffer_gap", ["src/peak/util/buffer_gap" + EXT]),
Extension("peak.util._Code", ["src/peak/util/_Code" + EXT]),
]
# Base data files
data_files = [
('peak', ['src/peak/peak.ini']),
]
if include_tests:
packages += [
'peak.tests', 'peak.binding.tests', 'peak.config.tests',
'peak.model.tests', 'peak.naming.tests', 'peak.running.tests',
'peak.storage.tests', 'peak.util.tests',
'Interface.tests', 'Interface.Common.tests',
'Interface.Registry.tests',
]
data_files += [
('peak/running/tests', ['src/peak/running/tests/test_cluster.txt']),
]
if include_metamodels:
packages += [
'peak.metamodels',
'peak.metamodels.UML13',
'peak.metamodels.UML13.model',
'peak.metamodels.UML13.model.Foundation',
'peak.metamodels.UML13.model.Behavioral_Elements',
]
if include_tests:
packages += [
'peak.metamodels.tests',
]
data_files += [
('peak/metamodels/tests',
['src/peak/metamodels/tests/MetaMeta.xml']
),
]
try:
# Check if Zope X3 is installed; we use zope.component
# because we don't install it ourselves; if we used something we
# install, we'd get a false positive if PEAK was previously installed.
import zope.component
zope_installed = True
except ImportError:
zope_installed = False
if not zope_installed:
packages += [
'zope', 'zope.interface', 'zope.interface.common',
'persistence', 'ZConfig',
]
extensions += [
Extension("persistence._persistence", ["src/persistence/persistence.c"])
]
if include_tests:
packages += [
'zope.interface.tests', 'persistence.tests', 'ZConfig.tests',
]
data_files += findDataFiles('src/ZConfig/tests', 1, '*.xml', '*.txt', '*.conf')
execfile('src/setup/common.py')
setup(
name=PACKAGE_NAME,
version=PACKAGE_VERSION,
description="The Python Enterprise Application Kit",
author="Phillip J. Eby",
author_email="transwarp@eby-sarna.com",
url="http://peak.telecommunity.com/",
license="PSF or ZPL",
platforms=['UNIX','Windows'],
packages = packages,
package_dir = {'':'src'},
cmdclass = SETUP_COMMANDS,
data_files = data_files,
ext_modules = extensions,
)