setup.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. """
  2. Package install information
  3. """
  4. import ast
  5. import os
  6. import re
  7. from setuptools import setup, find_packages
  8. # Cannot use "from cloudbridge import get_version" because that would try to
  9. # import the six package which may not be installed yet.
  10. with open(os.path.join('cloudbridge', '__init__.py')) as f:
  11. for line in f:
  12. m = re.compile(r'__version__\s*=\s*(.+)').match(line)
  13. if m:
  14. version = ast.literal_eval(m.group(1))
  15. break
  16. REQS_BASE = [
  17. 'bunch>=1.0.1',
  18. 'six>=1.10.0',
  19. 'retrying>=1.3.3'
  20. ]
  21. REQS_AWS = ['boto3']
  22. REQS_OPENSTACK = [
  23. 'python-novaclient>=2.33.0',
  24. 'python-glanceclient',
  25. 'python-cinderclient>=1.4.0',
  26. 'python-swiftclient>=2.6.0',
  27. 'python-neutronclient>=3.1.0',
  28. 'python-keystoneclient>=2.0.0'
  29. ]
  30. REQS_FULL = REQS_BASE + REQS_AWS + REQS_OPENSTACK
  31. REQS_DEV = ([
  32. 'tox>=2.1.1',
  33. 'moto>=0.4.20',
  34. 'sphinx>=1.3.1'
  35. ]) + REQS_FULL
  36. setup(
  37. name='cloudbridge',
  38. version=version,
  39. description='A simple layer of abstraction over multiple cloud providers.',
  40. author='Galaxy and GVL Projects',
  41. author_email='help@genome.edu.au',
  42. url='http://cloudbridge.readthedocs.org/',
  43. install_requires=REQS_FULL,
  44. extras_require={
  45. ':python_version=="2.7"': ['py2-ipaddress'],
  46. ':python_version=="3"': ['py2-ipaddress'],
  47. 'full': REQS_FULL,
  48. 'dev': REQS_DEV
  49. },
  50. packages=find_packages(),
  51. license='MIT',
  52. classifiers=[
  53. 'Development Status :: 3 - Alpha',
  54. 'Environment :: Console',
  55. 'Intended Audience :: Developers',
  56. 'Intended Audience :: System Administrators',
  57. 'License :: OSI Approved :: MIT License',
  58. 'Operating System :: OS Independent',
  59. 'Programming Language :: Python',
  60. 'Topic :: Software Development :: Libraries :: Python Modules',
  61. 'Programming Language :: Python :: 2.7',
  62. 'Programming Language :: Python :: 3',
  63. 'Programming Language :: Python :: 3.4',
  64. 'Programming Language :: Python :: 3.5',
  65. 'Programming Language :: Python :: Implementation :: CPython',
  66. 'Programming Language :: Python :: Implementation :: PyPy'],
  67. test_suite="test"
  68. )