From b183c002ef36a65bc9199115f7db6f4acc8a3070 Mon Sep 17 00:00:00 2001 From: Dominik Roth Date: Mon, 23 Oct 2023 14:14:11 +0200 Subject: [PATCH] Provide setup.py as fallback (again) --- setup.py | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 setup.py diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..f11769c --- /dev/null +++ b/setup.py @@ -0,0 +1,69 @@ +# We still provide a setup.py for backwards compatability. +# But the pyproject.toml should be prefered. +import itertools +from pathlib import Path +from typing import List + +from setuptools import setup, find_packages + +# Environment-specific dependencies for dmc and metaworld +extras = { + 'dmc': ['shimmy[dm-control]', 'Shimmy==1.0.0'], + 'box2d': ['gymnasium[box2d]>=0.26.0'], + 'mujoco-legacy': ['mujoco-py >=2.1,<2.2', 'cython<3'], + 'jax': ["jax >=0.4.0", "jaxlib >=0.4.0"], +} + +# All dependencies +all_groups = set(extras.keys()) +extras["all"] = list(set(itertools.chain.from_iterable( + map(lambda group: extras[group], all_groups)))) + +extras['testing'] = extras["all"] + ['pytest'] + + +def find_package_data(extensions_to_include: List[str]) -> List[str]: + envs_dir = Path("fancy_gym/envs/mujoco") + package_data_paths = [] + for extension in extensions_to_include: + package_data_paths.extend([str(path)[10:] + for path in envs_dir.rglob(extension)]) + + return package_data_paths + + +setup( + author='Fabian Otto, Onur Celik, Dominik Roth, Hongyi Zhou', + name='fancy_gym', + version='1.0', + classifiers=[ + 'Development Status :: 4 - Beta', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: MIT License', + 'Natural Language :: English', + 'Operating System :: OS Independent', + 'Topic :: Scientific/Engineering :: Artificial Intelligence', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + ], + extras_require=extras, + install_requires=[ + 'mp_pytorch<=0.1.3', + 'mujoco==2.3.3', + 'gymnasium[mujoco]>=0.26.0' + ], + packages=[package for package in find_packages( + ) if package.startswith("fancy_gym")], + package_data={ + "fancy_gym": find_package_data(extensions_to_include=["*.stl", "*.xml"]) + }, + python_requires=">=3.7", + url='https://github.com/ALRhub/fancy_gym/', + license='MIT license', + author_email='', + description='Fancy Gym: Unifying interface for various RL benchmarks with support for Black Box approaches.' +)