-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathsetup.py
59 lines (48 loc) · 1.71 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
'''Setup file.'''
import os
from setuptools import find_packages, setup
EXCLUDE_FROM_PACKAGES = ["build", "dist", "test"]
def get_version(fname):
'''Read version number from version.txt, otherwise alpha version.'''
if os.path.exists(fname):
with open(fname, 'r', encoding='utf-8') as f:
version = f.readline().strip()
else:
version = 'alpha'
return version
def load_long_description(fname):
'''Load README.md for long description.'''
with open(fname, 'r', encoding='utf-8') as f:
long_description = f.read()
return long_description
def load_requirements(fname):
'''Load requirements.txt.'''
try:
# pip >= 10.0
from pip._internal.req import parse_requirements
except ImportError:
# pip < 10.0
from pip.req import parse_requirements
reqs = parse_requirements(fname, session=False)
try:
requirements = [str(ir.requirement) for ir in reqs]
except AttributeError:
requirements = [str(ir.req) for ir in reqs]
return requirements
setup(
name="jsp",
version=get_version('version.txt'),
keywords=["job-shop", "job-shop-scheduling", "job-shop-scheduling-problem"],
description="A framework for solving job-shop scheduling problem.",
long_description=load_long_description('README.md'),
long_description_content_type='text/markdown',
license="Apache License 2.0",
author="dothinking",
author_email="[email protected]",
url="https://github.com/dothinking/jsp_framework",
packages=find_packages(exclude=EXCLUDE_FROM_PACKAGES),
include_package_data=True,
zip_safe=False,
install_requires=load_requirements("requirements.txt"),
python_requires=">=3.6"
)