diff options
Diffstat (limited to 'third_party/python/taskcluster/setup.py')
-rw-r--r-- | third_party/python/taskcluster/setup.py | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/third_party/python/taskcluster/setup.py b/third_party/python/taskcluster/setup.py new file mode 100644 index 0000000000..c9c7ff4a22 --- /dev/null +++ b/third_party/python/taskcluster/setup.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python + +from setuptools import setup +from setuptools.command.test import test as TestCommand +import sys + +# The VERSION variable is automagically changed +# by release.sh. Make sure you understand how +# that script works if you want to change this +VERSION = '6.0.0' + +tests_require = [ + 'nose==1.3.7', + 'nose-exclude==0.5.0', + 'httmock==1.2.6', + 'rednose==1.2.1', + 'mock==1.0.1', + 'setuptools-lint==0.3', + 'flake8==2.5.0', + 'psutil==2.1.3', + 'hypothesis==3.6.1', + 'tox==2.3.2', + 'coverage==4.1b2', + 'python-dateutil==2.6.0', +] + +# requests has a policy of not breaking apis between major versions +# http://docs.python-requests.org/en/latest/community/release-process/ +install_requires = [ + 'requests>=2.4.3,<3', + 'mohawk>=0.3.4,<0.4', + 'slugid>=1.0.7,<2', + 'taskcluster-urls>=10.1.0,<12', + 'six>=1.10.0,<2', +] + +# from http://testrun.org/tox/latest/example/basic.html +class Tox(TestCommand): + user_options = [('tox-args=', 'a', "Arguments to pass to tox")] + + def initialize_options(self): + TestCommand.initialize_options(self) + self.tox_args = None + + def finalize_options(self): + TestCommand.finalize_options(self) + self.test_args = [] + self.test_suite = True + + def run_tests(self): + # import here, cause outside the eggs aren't loaded + import tox + import shlex + args = self.tox_args + if args: + args = shlex.split(self.tox_args) + errno = tox.cmdline(args=args) + sys.exit(errno) + +if sys.version_info.major == 2: + tests_require.extend([ + 'subprocess32==3.2.6', + ]) +elif sys.version_info[:2] < (3, 5): + raise Exception('This library does not support Python 3 versions below 3.5') +elif sys.version_info[:2] >= (3, 5): + install_requires.extend([ + 'aiohttp>=2.0.0,<4', + 'async_timeout>=2.0.0,<4', + ]) + +if __name__ == '__main__': + setup( + name='taskcluster', + version=VERSION, + description='Python client for Taskcluster', + author='John Ford', + author_email='jhford@mozilla.com', + url='https://github.com/taskcluster/taskcluster-client.py', + packages=['taskcluster', 'taskcluster.aio'], + install_requires=install_requires, + test_suite="nose.collector", + tests_require=tests_require, + cmdclass={'test': Tox}, + zip_safe=False, + classifiers=['Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6'], + ) |