-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathsetup.py
More file actions
66 lines (54 loc) · 1.86 KB
/
setup.py
File metadata and controls
66 lines (54 loc) · 1.86 KB
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
import os
from itertools import chain
import importlib.util
from setuptools import find_packages, setup
spec = importlib.util.spec_from_file_location(
"package_info", "flex_model/package_info.py"
)
package_info = importlib.util.module_from_spec(spec)
spec.loader.exec_module(package_info)
__contact_emails__ = package_info.__contact_emails__
__contact_names__ = package_info.__contact_names__
__description__ = package_info.__description__
__homepage__ = package_info.__homepage__
__license__ = package_info.__license__
__package_name__ = package_info.__package_name__
__repository_url__ = package_info.__repository_url__
__version__ = package_info.__version__
def req_file(filename, folder="requirements"):
with open(os.path.join(folder, filename), encoding="utf-8") as f:
content = f.readlines()
return [x.strip() for x in content]
install_requires = req_file("requirements.txt")
extras_require = {
"core": req_file("requirements.txt"),
"test": req_file("test_requirements.txt"),
"dev": req_file("dev_requirements.txt"),
"examples": req_file("examples_requirements.txt"),
}
extras_require["all"] = list(chain(extras_require.values()))
extras_require["test"] = list(
chain([extras_require["core"], extras_require["test"]])
)
extras_require["dev"] = list(
chain(
[extras_require["core"], extras_require["test"], extras_require["dev"]]
)
)
extras_require["examples"] = list(
chain([extras_require["core"], extras_require["examples"]])
)
setup(
name=__package_name__,
version=__version__,
description=__description__,
url=__repository_url__,
author=__contact_names__,
author_email=__contact_emails__,
maintainer=__contact_names__,
maintainer_email=__contact_emails__,
license=__license__,
packages=find_packages(),
install_requires=install_requires,
extras_require=extras_require,
)