103 lines
3.3 KiB
Python
103 lines
3.3 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import os
|
|
import sys
|
|
|
|
from setuptools import find_packages, setup
|
|
|
|
|
|
def get_version() -> str:
|
|
# https://packaging.python.org/guides/single-sourcing-package-version/
|
|
init = open(os.path.join("tianshou", "__init__.py"), "r").read().split()
|
|
return init[init.index("__version__") + 2][1:-1]
|
|
|
|
|
|
def get_install_requires() -> str:
|
|
return [
|
|
"gym>=0.23.1",
|
|
"tqdm",
|
|
"numpy>1.16.0", # https://github.com/numpy/numpy/issues/12793
|
|
"tensorboard>=2.5.0",
|
|
"torch>=1.4.0",
|
|
"numba>=0.51.0",
|
|
"h5py>=2.10.0", # to match tensorflow's minimal requirements
|
|
"protobuf~=3.19.0", # breaking change, sphinx fail
|
|
]
|
|
|
|
|
|
def get_extras_require() -> str:
|
|
req = {
|
|
"dev": [
|
|
"sphinx<4",
|
|
"sphinx_rtd_theme",
|
|
"jinja2<3.1", # temporary fix
|
|
"sphinxcontrib-bibtex",
|
|
"flake8",
|
|
"flake8-bugbear",
|
|
"yapf",
|
|
"isort",
|
|
"pytest",
|
|
"pytest-cov",
|
|
"ray>=1.0.0",
|
|
"wandb>=0.12.0",
|
|
"networkx",
|
|
"mypy",
|
|
"pydocstyle",
|
|
"doc8",
|
|
"scipy",
|
|
"pillow",
|
|
"pettingzoo>=1.17",
|
|
"pygame>=2.1.0", # pettingzoo test cases pistonball
|
|
"pymunk>=6.2.1", # pettingzoo test cases pistonball
|
|
"nni>=2.3,<3.0", # expect breaking changes at next major version
|
|
"pytorch_lightning",
|
|
],
|
|
"atari": ["atari_py", "opencv-python"],
|
|
"mujoco": ["mujoco_py"],
|
|
"pybullet": ["pybullet"],
|
|
}
|
|
if sys.platform == "linux":
|
|
req["dev"].append("envpool>=0.5.3")
|
|
return req
|
|
|
|
|
|
setup(
|
|
name="tianshou",
|
|
version=get_version(),
|
|
description="A Library for Deep Reinforcement Learning",
|
|
long_description=open("README.md", encoding="utf8").read(),
|
|
long_description_content_type="text/markdown",
|
|
url="https://github.com/thu-ml/tianshou",
|
|
author="TSAIL",
|
|
author_email="trinkle23897@gmail.com",
|
|
license="MIT",
|
|
python_requires=">=3.6",
|
|
classifiers=[
|
|
# How mature is this project? Common values are
|
|
# 3 - Alpha
|
|
# 4 - Beta
|
|
# 5 - Production/Stable
|
|
"Development Status :: 4 - Beta",
|
|
# Indicate who your project is intended for
|
|
"Intended Audience :: Science/Research",
|
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
# Pick your license as you wish (should match "license" above)
|
|
"License :: OSI Approved :: MIT License",
|
|
# Specify the Python versions you support here. In particular, ensure
|
|
# that you indicate whether you support Python 2, Python 3 or both.
|
|
"Programming Language :: Python :: 3.6",
|
|
"Programming Language :: Python :: 3.7",
|
|
"Programming Language :: Python :: 3.8",
|
|
"Programming Language :: Python :: 3.9",
|
|
"Programming Language :: Python :: 3.10",
|
|
],
|
|
keywords="reinforcement learning platform pytorch",
|
|
packages=find_packages(
|
|
exclude=["test", "test.*", "examples", "examples.*", "docs", "docs.*"]
|
|
),
|
|
install_requires=get_install_requires(),
|
|
extras_require=get_extras_require(),
|
|
)
|