From c93e7c06fdfbd357767d8bb14b4a4d6fd9693e1e Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Sat, 26 May 2012 14:58:14 -0400 Subject: Add ProjectTestingInterface to horizon. Horizon is the last project that doesn't have support for the common Project Testing Interface. This gets horizon up to speed with the other bits, but shouldn't break any of the existing interfaces. Change-Id: I464c3b10d9708a0b7b5ffd42c88cd3cf515ef6a7 --- setup.py | 61 ++++++++++++------------------------------------------------- 1 file changed, 12 insertions(+), 49 deletions(-) (limited to 'setup.py') diff --git a/setup.py b/setup.py index f551bf905..28e053ecb 100755 --- a/setup.py +++ b/setup.py @@ -21,60 +21,22 @@ import os import re -from setuptools import setup, find_packages +import setuptools from horizon import version +from horizon.openstack.common import setup -ROOT = os.path.dirname(__file__) -PIP_REQUIRES = os.path.join(ROOT, "tools", "pip-requires") -TEST_REQUIRES = os.path.join(ROOT, "tools", "test-requires") - - -def parse_requirements(*filenames): - """ - We generate our install_requires from the pip-requires and test-requires - files so that we don't have to maintain the dependency definitions in - two places. - """ - requirements = [] - for f in filenames: - for line in open(f, 'r').read().split('\n'): - # Comment lines. Skip. - if re.match(r'(\s*#)|(\s*$)', line): - continue - # Editable matches. Put the egg name into our reqs list. - if re.match(r'\s*-e\s+', line): - pkg = re.sub(r'\s*-e\s+.*#egg=(.*)$', r'\1', line) - requirements.append("%s" % pkg) - # File-based installs not supported/needed. Skip. - elif re.match(r'\s*-f\s+', line): - pass - else: - requirements.append(line) - return requirements - - -def parse_dependency_links(*filenames): - """ - We generate our dependency_links from the pip-requires and test-requires - files for the dependencies pulled from github (prepended with -e). - """ - dependency_links = [] - for f in filenames: - for line in open(f, 'r').read().split('\n'): - if re.match(r'\s*-[ef]\s+', line): - line = re.sub(r'\s*-[ef]\s+', '', line) - line = re.sub(r'\s*git\+https', 'http', line) - line = re.sub(r'\.git#', '/tarball/master#', line) - dependency_links.append(line) - return dependency_links +requires = setup.parse_requirements() +depend_links = setup.parse_dependency_links() +tests_require = setup.parse_requirements(['tools/test-requires']) +ROOT = os.path.dirname(__file__) def read(fname): return open(os.path.join(ROOT, fname)).read() -setup(name="horizon", +setuptools.setup(name="horizon", version=version.canonical_version_string(), url='https://github.com/openstack/horizon/', license='Apache 2.0', @@ -82,12 +44,13 @@ setup(name="horizon", long_description=read('README.rst'), author='OpenStack', author_email='horizon@lists.launchpad.net', - packages=find_packages(), + packages=setuptools.find_packages(), + cmdclass=setup.get_cmdclass(), include_package_data=True, + install_requires=requires, + tests_require=tests_require, + dependency_links=depend_links, zip_safe=False, - install_requires=parse_requirements(PIP_REQUIRES), - tests_require=parse_requirements(TEST_REQUIRES), - dependency_links=parse_dependency_links(PIP_REQUIRES, TEST_REQUIRES), classifiers=['Development Status :: 4 - Beta', 'Framework :: Django', 'Intended Audience :: Developers', -- cgit v1.2.1