13200: Fix python versioning for arvados-python-client and arvados-cwl-runner
[arvados.git] / sdk / python / setup.py
1 #!/usr/bin/env python
2 # Copyright (C) The Arvados Authors. All rights reserved.
3 #
4 # SPDX-License-Identifier: Apache-2.0
5
6 import os
7 import sys
8 import re
9
10 from setuptools import setup, find_packages
11
12 SETUP_DIR = os.path.dirname(__file__) or '.'
13 README = os.path.join(SETUP_DIR, 'README.rst')
14
15 env_version = os.environ.get("ARVADOS_BUILDING_VERSION")
16
17 def save_version(module, v):
18   with open(os.path.join(SETUP_DIR, module, "_version.py"), 'w') as fp:
19       return fp.write("__version__ = '%s'\n" % v)
20
21 def read_version(module):
22   with open(os.path.join(SETUP_DIR, module, "_version.py"), 'r') as fp:
23       return re.match("__version__ = '(.*)'$", fp.read()).groups()[0]
24
25 if env_version:
26     save_version("arvados", env_version)
27 else:
28     try:
29         import arvados_version
30         vtag = arvados_version.VersionInfoFromGit()
31         save_version("arvados", vtag.git_latest_tag() + vtag.git_timestamp_tag())
32     except ImportError:
33         pass
34
35 version = read_version("arvados")
36
37 short_tests_only = False
38 if '--short-tests-only' in sys.argv:
39     short_tests_only = True
40     sys.argv.remove('--short-tests-only')
41
42 setup(name='arvados-python-client',
43       version=version,
44       description='Arvados client library',
45       long_description=open(README).read(),
46       author='Arvados',
47       author_email='info@arvados.org',
48       url="https://arvados.org",
49       download_url="https://github.com/curoverse/arvados.git",
50       license='Apache 2.0',
51       packages=find_packages(),
52       scripts=[
53           'bin/arv-copy',
54           'bin/arv-get',
55           'bin/arv-keepdocker',
56           'bin/arv-ls',
57           'bin/arv-migrate-docker19',
58           'bin/arv-normalize',
59           'bin/arv-put',
60           'bin/arv-run',
61           'bin/arv-ws'
62       ],
63       data_files=[
64           ('share/doc/arvados-python-client', ['LICENSE-2.0.txt', 'README.rst']),
65       ],
66       install_requires=[
67           'ciso8601 >=1.0.0, <=1.0.4',
68           'future',
69           'google-api-python-client >=1.6.2, <1.7',
70           'httplib2 >=0.9.2',
71           'pycurl >=7.19.5.1',
72           'ruamel.yaml >=0.13.7',
73           'setuptools',
74           'ws4py <0.4',
75       ],
76       test_suite='tests',
77       tests_require=['pbr<1.7.0', 'mock>=1.0', 'PyYAML'],
78       zip_safe=False
79       )