# -*- coding: utf-8 -*- import os import sys from setuptools import setup, find_packages from setuptools.command.test import test as TestCommand version = "0.0.1.dev1" # This must be kept in sync with requirements.txt install_require = [ 'charmhelpers', 'pyudev', ] tests_require = [ 'tox >= 2.3.1', ] 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 # remove the 'test' arg from argv as tox passes it to stestr which # breaks it. sys.argv.pop() if args: args = shlex.split(self.tox_args) errno = tox.cmdline(args=args) sys.exit(errno) if sys.argv[-1] == 'publish': os.system("python setup.py sdist upload") os.system("python setup.py bdist_wheel upload") sys.exit() if sys.argv[-1] == 'tag': os.system("git tag -a {0} -m 'version {0}'".format(version)) os.system("git push --tags") sys.exit() setup( name='charms.ceph', version=version, description='Provide base module for ceph charms.', classifiers=[ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "Topic :: System", "Topic :: System :: Installation/Setup", "Topic :: System :: Software Distribution", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "License :: OSI Approved :: Apache Software License", ], url='https://github.com/openstack/charms.ceph', author='OpenStack Charmers', author_email='openstack-discuss@lists.openstack.org', license='Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0', packages=find_packages(exclude=["unit_tests"]), zip_safe=False, cmdclass={'test': Tox}, install_requires=install_require, extras_require={ 'testing': tests_require, }, tests_require=tests_require, )