summaryrefslogtreecommitdiff
path: root/setup.py
diff options
context:
space:
mode:
authorMonty Taylor <mordred@inaugust.com>2012-05-26 14:58:14 -0400
committerGabriel Hurley <gabriel@strikeawe.com>2012-05-26 14:36:19 -0700
commitc93e7c06fdfbd357767d8bb14b4a4d6fd9693e1e (patch)
tree188bb19696462c9f925a62841f7f04b96981851f /setup.py
parent4f7ee81b5850b43a2c1eaba85d6bac8099600e19 (diff)
downloadhorizon-c93e7c06fdfbd357767d8bb14b4a4d6fd9693e1e.tar.gz
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
Diffstat (limited to 'setup.py')
-rwxr-xr-xsetup.py61
1 files changed, 12 insertions, 49 deletions
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',