summaryrefslogtreecommitdiff
path: root/setup.py
diff options
context:
space:
mode:
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',