79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
| import sys
 | |
| 
 | |
| from setuptools import find_packages, setup
 | |
| from setuptools.command.test import test as TestCommand
 | |
| 
 | |
| from pathlib import Path
 | |
| 
 | |
| 
 | |
| def read_version(package):
 | |
|     with (Path(package) / '__init__.py').open() as fd:
 | |
|         for line in fd:
 | |
|             if line.startswith('__version__ = '):
 | |
|                 return line.split()[-1].strip().strip("'")
 | |
| 
 | |
| 
 | |
| version = read_version('operator_ui')
 | |
| 
 | |
| 
 | |
| class PyTest(TestCommand):
 | |
| 
 | |
|     user_options = [('cov-html=', None, 'Generate junit html report')]
 | |
| 
 | |
|     def initialize_options(self):
 | |
|         TestCommand.initialize_options(self)
 | |
|         self.cov = None
 | |
|         self.pytest_args = ['--cov', 'operator_ui', '--cov-report', 'term-missing', '-v']
 | |
|         self.cov_html = False
 | |
| 
 | |
|     def finalize_options(self):
 | |
|         TestCommand.finalize_options(self)
 | |
|         if self.cov_html:
 | |
|             self.pytest_args.extend(['--cov-report', 'html'])
 | |
|         self.pytest_args.extend(['tests'])
 | |
| 
 | |
|     def run_tests(self):
 | |
|         import pytest
 | |
| 
 | |
|         errno = pytest.main(self.pytest_args)
 | |
|         sys.exit(errno)
 | |
| 
 | |
| 
 | |
| def readme():
 | |
|     return open('README.rst', encoding='utf-8').read()
 | |
| 
 | |
| 
 | |
| tests_require = [
 | |
|     'pytest',
 | |
|     'pytest-cov'
 | |
| ]
 | |
| 
 | |
| setup(
 | |
|     name='operator-ui',
 | |
|     packages=find_packages(),
 | |
|     version=version,
 | |
|     description='PostgreSQL Kubernetes Operator UI',
 | |
|     long_description=readme(),
 | |
|     author='team-acid@zalando.de',
 | |
|     url='https://github.com/postgres-operator',
 | |
|     keywords='PostgreSQL Kubernetes Operator UI',
 | |
|     license='MIT',
 | |
|     tests_require=tests_require,
 | |
|     extras_require={'tests': tests_require},
 | |
|     cmdclass={'test': PyTest},
 | |
|     test_suite='tests',
 | |
|     classifiers=[
 | |
|         'Development Status :: 3',
 | |
|         'Intended Audience :: Developers',
 | |
|         'Intended Audience :: System Administrators',
 | |
|         'License :: OSI Approved :: MIT',
 | |
|         'Operating System :: OS Independent',
 | |
|         'Programming Language :: Python',
 | |
|         'Programming Language :: Python :: 3.11',
 | |
|         'Topic :: System :: Clustering',
 | |
|         'Topic :: System :: Monitoring',
 | |
|     ],
 | |
|     include_package_data=True,  # needed to include JavaScript (see MANIFEST.in)
 | |
|     entry_points={'console_scripts': ['operator-ui = operator_ui.main:main']}
 | |
| )
 |