1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
#!/usr/bin/env python
#
# Copyright (c) 2008-2009 by Enthought, Inc.
# All rights reserved.
"""
Extensible Application Framework
Envisage is a Python-based framework for building extensible applications,
that is, applications whose functionality can be extended by adding "plug-ins".
Envisage provides a standard mechanism for features to be added to an
application, whether by the original developer or by someone else. In fact,
when you build an application using Envisage, the entire application consists
primarily of plug-ins. In this respect, it is similar to the Eclipse and
Netbeans frameworks for Java applications.
Each plug-in is able to:
- Advertise where and how it can be extended (its "extension points").
- Contribute extensions to the extension points offered by other plug-ins.
- Create and share the objects that perform the real work of the application
("services").
The EnvisageCore project provides the basic machinery of the Envisage
framework. This project contains no plug-ins. You are free to use:
- plug-ins from the EnvisagePlugins project
- plug-ins from other ETS projects that expose their functionality as plug-ins
- plug-ins that you create yourself
Prerequisites
-------------
If you want to build EnvisageCore from source, you must first install
`setuptools <http://pypi.python.org/pypi/setuptools/0.6c8>`_.
"""
import traceback
import sys
from distutils import log
from distutils.command.build import build as distbuild
from setuptools import setup, find_packages
from setuptools.command.develop import develop
# FIXME: This works around a setuptools bug which gets setup_data.py metadata
# from incorrect packages. Ticket #1592
#from setup_data import INFO
setup_data = dict(__name__='', __file__='setup_data.py')
execfile('setup_data.py', setup_data)
INFO = setup_data['INFO']
# Pull the description values for the setup keywords from our file docstring.
DOCLINES = __doc__.split("\n")
class MyDevelop(develop):
def run(self):
develop.run(self)
try:
self.run_command('build_docs')
except:
log.warn("Couldn't build documentation:\n%s" %
traceback.format_exception(*sys.exc_info()))
class MyBuild(distbuild):
def run(self):
distbuild.run(self)
try:
self.run_command('build_docs')
except:
log.warn("Couldn't build documentation:\n%s" %
traceback.format_exception(*sys.exc_info()))
# The actual setup function call.
setup(
author = "Martin Chilvers, et. al.",
author_email = "info@enthought.com",
classifiers = [c.strip() for c in """\
Development Status :: 5 - Production/Stable
Intended Audience :: Developers
Intended Audience :: Science/Research
License :: OSI Approved :: BSD License
Operating System :: MacOS
Operating System :: Microsoft :: Windows
Operating System :: OS Independent
Operating System :: POSIX
Operating System :: Unix
Programming Language :: Python
Topic :: Scientific/Engineering
Topic :: Software Development
Topic :: Software Development :: Libraries
""".splitlines() if len(c.strip()) > 0],
cmdclass = {
'develop': MyDevelop,
'build': MyBuild
},
description = DOCLINES[1],
entry_points = """
[enthought.envisage.plugins]
enthought.envisage.core = enthought.envisage.core_plugin:CorePlugin
""",
extras_require = INFO['extras_require'],
ext_modules = [],
include_package_data = True,
install_requires = INFO['install_requires'],
license = "BSD",
long_description = '\n'.join(DOCLINES[3:]),
maintainer = 'ETS Developers',
maintainer_email = 'enthought-dev@enthought.com',
name = "EnvisageCore",
namespace_packages = [
"enthought",
"enthought.envisage"
],
packages = find_packages(),
platforms = ["Windows", "Linux", "Mac OS-X", "Unix", "Solaris"],
setup_requires = 'setupdocs>=1.0',
tests_require = [
'nose >= 0.10.3',
],
test_suite = 'nose.collector',
url = "http://code.enthought.com/projects/envisage/",
version = INFO['version'],
zip_safe = False,
)
|