-
Notifications
You must be signed in to change notification settings - Fork 265
/
setup.py
52 lines (46 loc) · 1.74 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
from collections import defaultdict
import os
import pathlib
from setuptools import setup
# Read in the requirements files.
requirements = defaultdict(list)
requirements_directory = pathlib.Path.cwd() / "requirements"
for filename in requirements_directory.glob("*.txt"):
variant = filename.stem
with filename.open() as libraries:
for library in libraries:
if len(library) > 0 and (not library.startswith("-r")):
requirements[variant].append(library.strip())
# Grab the default requirements
install_requires = requirements["requirements"]
# Delete the default from the dictionary for the extra variants.
del requirements["requirements"]
extras_require = dict(requirements)
# Read in long description
with open("README.rst", "r") as f:
long_description = f.read()
# Read in the version number
exec(open("axelrod/version.py", "r").read())
setup(
name="Axelrod",
version=__version__,
install_requires=install_requires,
author="Vince Knight, Owen Campbell, Karol Langner, Marc Harper",
author_email=("[email protected]"),
packages=["axelrod", "axelrod.strategies", "axelrod.data"],
url="http://axelrod.readthedocs.org/",
license="The MIT License (MIT)",
description="Reproduce the Axelrod iterated prisoners dilemma tournament",
long_description=long_description,
long_description_content_type="text/x-rst",
include_package_data=True,
package_data={"": ["axelrod/data/*"]},
classifiers=[
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3 :: Only",
],
python_requires=">=3.6",
extras_require=extras_require,
)