/
setup.py
110 lines (92 loc) · 3.04 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
import os
import sys
from setuptools import setup
from setuptools.command.test import test as TestCommand
from pathlib import Path
def get_install_requires():
with open('requirements.txt', 'r') as requirements_file:
# TODO: respect hashes in requirements.txt file
res = requirements_file.readlines()
return [req.split(' ', maxsplit=1)[0] for req in res if req]
def get_test_requires():
with open('requirements-test.txt', 'r') as requirements_file:
res = requirements_file.readlines()
return [req.split(' ', maxsplit=1)[0] for req in res if req]
def get_version():
with open(os.path.join('thoth', 'storages', '__init__.py')) as f:
content = f.readlines()
for line in content:
if line.startswith('__version__ ='):
# dirty, remove trailing and leading chars
return line.split(' = ')[1][1:-2]
raise ValueError("No version identifier found")
class Test(TestCommand):
"""Introduce test command to run testsuite using pytest."""
_IMPLICIT_PYTEST_ARGS = [
'tests/',
'--timeout=2',
'--cov=./thoth',
# '--mypy',
'thoth/',
'--capture=no',
'--verbose',
'-l',
'-s',
'-vv'
]
user_options = [
('pytest-args=', 'a', "Arguments to pass into py.test")
]
def initialize_options(self):
super().initialize_options()
self.pytest_args = None
def finalize_options(self):
super().finalize_options()
self.test_args = []
self.test_suite = True
def run_tests(self):
import pytest
passed_args = list(self._IMPLICIT_PYTEST_ARGS)
if self.pytest_args:
self.pytest_args = [arg for arg in self.pytest_args.split() if arg]
passed_args.extend(self.pytest_args)
sys.exit(pytest.main(passed_args))
VERSION = get_version()
setup(
name='thoth-storages',
version=VERSION,
description='Storage and database adapters available in project Thoth',
long_description=Path('README.rst').read_text(),
author='Fridolin Pokorny',
author_email='fridolin@redhat.com',
license='GPLv3+',
packages=[
'thoth.storages',
'thoth.storages.graph'
],
package_data={
'thoth.storages': [
"py.typed",
os.path.join('data', 'alembic.ini'),
os.path.join('data', 'alembic', 'script.py.mako'),
os.path.join('data', 'alembic', 'env.py'),
os.path.join('data', 'alembic', 'versions', '*.py'),
]
},
zip_safe=False,
install_requires=get_install_requires(),
tests_require=get_test_requires(),
cmdclass={'test': Test},
entry_points={
'console_scripts': ['thoth-storages=thoth.storages.cli:cli']
},
url='https://github.com/thoth-station/storages',
maintainer='Francesco Murdaca',
maintainer_email='fmurdaca@redhat.com',
command_options={
'build_sphinx': {
'version': ('setup.py', VERSION),
'release': ('setup.py', VERSION),
}
}
)