forked from sosy-lab/benchexec
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
executable file
·88 lines (77 loc) · 3.38 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
#!/usr/bin/env python3
'''
BenchExec is a framework for reliable benchmarking.
This file is part of BenchExec.
Copyright (C) 2007-2015 Dirk Beyer
All rights reserved.
Licensed under the Apache License, Version 2.0 (the 'License');
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an 'AS IS' BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
'''
import os
import re
import setuptools
import sys
import warnings
warnings.filterwarnings('default', module="^benchexec\..*")
# Links for documentation on how to build and use Python packages:
# http://python-packaging-user-guide.readthedocs.org/en/latest/
# http://gehrcke.de/2014/02/distributing-a-python-command-line-application/
# http://www.jeffknupp.com/blog/2013/08/16/open-sourcing-a-python-project-the-right-way/
# https://pythonhosted.org/setuptools/setuptools.html
# https://docs.python.org/3/distutils/index.html
# determine version (more robust than importing benchexec)
# c.f. http://gehrcke.de/2014/02/distributing-a-python-command-line-application/
with open('benchexec/__init__.py') as f:
version = re.search('^__version__\s*=\s*\'(.*)\'', f.read(), re.M).group(1)
# Get the long description from the relevant file
readme = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'README.md')
try:
import pypandoc
long_description = pypandoc.convert(readme, 'rst', format='markdown_github-hard_line_breaks')
except (IOError, ImportError):
with open(readme, 'rb') as f:
long_description = f.read().decode('utf-8')
PY2 = sys.version_info[0] == 2
setuptools.setup(
name = 'BenchExec',
version = version,
author = 'Dirk Beyer',
description = ('A Framework for Reliable Benchmarking and Resource Measurement.'),
long_description = long_description,
url = 'https://github.com/sosy-lab/benchexec/',
license = 'Apache 2.0 License',
keywords = 'benchmarking resource measurement',
classifiers = [
'Development Status :: 5 - Production/Stable',
'Environment :: Console',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: Apache Software License',
'Operating System :: POSIX :: Linux',
'Programming Language :: Python :: 3 :: Only',
'Topic :: System :: Benchmark',
],
platforms = ['Linux'],
packages = ['benchexec'] +
(['benchexec.tablegenerator', 'benchexec.tools'] if not PY2 else []),
package_data = {'benchexec.tablegenerator': ['template.*']} if not PY2 else {},
entry_points = {
"console_scripts": [
'runexec = benchexec.runexecutor:main',
'containerexec = benchexec.containerexecutor:main',
] + ([
'benchexec = benchexec.benchexec:main',
'table-generator = benchexec.tablegenerator:main',
] if not PY2 else []),
},
install_requires = ['tempita==0.5.2', 'PyYAML>=3.12'] if not PY2 else [],
setup_requires=['nose>=1.0'] + ['lxml', 'PyYAML>=3.12'] if not PY2 else [],
test_suite = 'nose.collector' if not PY2 else 'benchexec.test_python2.Python2Tests',
zip_safe = True,
)