| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- #!/usr/bin/python
- # Copyright (c) 2001-2008 Twisted Matrix Laboratories.
- # See LICENSE for details.
- """
- Distutils installer for Twisted.
- """
- try:
- # Load setuptools, to build a specific source package
- import setuptools
- except ImportError:
- pass
- import sys, os
- def getExtensions():
- """
- Get all extensions from core and all subprojects.
- """
- extensions = []
- if not sys.platform.startswith('java'):
- for dir in os.listdir("twisted") + [""]:
- topfiles = os.path.join("twisted", dir, "topfiles")
- if os.path.isdir(topfiles):
- ns = {}
- setup_py = os.path.join(topfiles, "setup.py")
- execfile(setup_py, ns, ns)
- if "extensions" in ns:
- extensions.extend(ns["extensions"])
-
- return extensions
- def main(args):
- """
- Invoke twisted.python.dist with the appropriate metadata about the
- Twisted package.
- """
- if os.path.exists('twisted'):
- sys.path.insert(0, '.')
- from twisted import copyright
- from twisted.python.dist import getDataFiles, getScripts, getPackages, setup
- # "" is included because core scripts are directly in bin/
- projects = [''] + [x for x in os.listdir('bin')
- if os.path.isdir(os.path.join("bin", x))
- and not x.startswith(".")]
- scripts = []
- for i in projects:
- scripts.extend(getScripts(i))
- setup_args = dict(
- # metadata
- name="Twisted",
- version=copyright.version,
- description="An asynchronous networking framework written in "
- "Python",
- author="Twisted Matrix Laboratories",
- author_email="twisted-python@twistedmatrix.com",
- maintainer="Glyph Lefkowitz",
- maintainer_email="glyph@twistedmatrix.com",
- url="http://twistedmatrix.com/",
- license="MIT",
- long_description="""\
- An extensible framework for Python programming, with special focus
- on event-based network programming and multiprotocol integration.
- """,
- packages = getPackages('twisted'),
- conditionalExtensions = getExtensions(),
- scripts = scripts,
- data_files=getDataFiles('twisted'),
- )
- if 'setuptools' in sys.modules:
- from pkg_resources import parse_requirements
- requirements = ["zope.interface"]
- try:
- list(parse_requirements(requirements))
- except:
- print """You seem to be running a very old version of setuptools.
- This version of setuptools has a bug parsing dependencies, so automatic
- dependency resolution is disabled.
- """
- else:
- setup_args['install_requires'] = requirements
- setup_args['include_package_data'] = True
- setup_args['zip_safe'] = False
- setup(**setup_args)
- if __name__ == "__main__":
- try:
- main(sys.argv[1:])
- except KeyboardInterrupt:
- sys.exit(1)
|