Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ jobs:
- uses: actions/setup-go@v3
with:
go-version: ">=1.16.0"
- name: Set up Python 3.11
- name: Set up Python 3.12
uses: actions/setup-python@v4
with:
python-version: "3.11"
python-version: "3.12"
- name: Upgrade pip
run: |
python -m pip install --upgrade pip
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
container: trinkle23897/envpool-release:2023-01-02-5f1a5fd
strategy:
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
python-version: ["3.10", "3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
Expand Down
2 changes: 1 addition & 1 deletion .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ version: 2
build:
os: ubuntu-22.04
tools:
python: "3.11"
python: "3.12"

# Build documentation in the docs/ directory with Sphinx
sphinx:
Expand Down
2 changes: 1 addition & 1 deletion BUILD
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
load("@pip_requirements//:requirements.bzl", "requirement")
load("@rules_python//python:defs.bzl", "py_binary")
load("//envpool:requirements.bzl", "requirement")

filegroup(
name = "clang_tidy_config",
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -102,10 +102,10 @@ buildifier: buildifier-install
# bazel build/test

bazel-pip-requirement-dev:
cd third_party/pip_requirements && (cmp requirements.txt requirements-dev.txt || ln -sf requirements-dev.txt requirements.txt)
cd third_party/pip_requirements && (cmp requirements.txt requirements-dev-lock.txt || ln -sf requirements-dev-lock.txt requirements.txt)

bazel-pip-requirement-release:
cd third_party/pip_requirements && (cmp requirements.txt requirements-release.txt || ln -sf requirements-release.txt requirements.txt)
cd third_party/pip_requirements && (cmp requirements.txt requirements-release-lock.txt || ln -sf requirements-release-lock.txt requirements.txt)

clang-tidy: clang-tidy-install bazel-pip-requirement-dev
$(BAZEL) build $(BAZELOPT) //... --config=clang-tidy --config=test
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ Check out our [arXiv paper](https://arxiv.org/abs/2206.10558) for more details!

### PyPI

EnvPool is currently hosted on [PyPI](https://pypi.org/project/envpool/). It requires Python >= 3.7.
EnvPool is currently hosted on [PyPI](https://pypi.org/project/envpool/). It supports Python 3.10-3.13.

You can simply install EnvPool with the following command:

Expand Down
8 changes: 8 additions & 0 deletions WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ load("//envpool:workspace0.bzl", workspace0 = "workspace")

workspace0()

load("@rules_python//python:repositories.bzl", "py_repositories")

py_repositories()

load("//envpool:workspace1.bzl", workspace1 = "workspace")

workspace1()
Expand All @@ -25,3 +29,7 @@ register_qt_toolchains()
load("//envpool:pip.bzl", pip_workspace = "workspace")

pip_workspace()

load("@pip_requirements//:requirements.bzl", "install_deps")

install_deps()
9 changes: 4 additions & 5 deletions docker/release.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ RUN apt-get update \
# use self-compiled openssl instead of system provided (1.0.2)
RUN apt-get remove -y libssl-dev

# install newest openssl (for py3.10 and py3.11)
# install newest openssl (for py3.10 through py3.13)

RUN wget https://www.openssl.org/source/openssl-1.1.1s.tar.gz
RUN tar xf openssl-1.1.1s.tar.gz
Expand All @@ -62,11 +62,10 @@ RUN echo 'export PYENV_ROOT="$HOME/.pyenv"' >> /etc/profile
RUN echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> /etc/profile
RUN echo 'eval "$(pyenv init -)"' >> /etc/profile

RUN LDFLAGS="-Wl,-rpath,/root/openssl-1.1.1s/lib" CONFIGURE_OPTS="-with-openssl=/root/openssl-1.1.1s" pyenv install -v 3.11-dev
RUN LDFLAGS="-Wl,-rpath,/root/openssl-1.1.1s/lib" CONFIGURE_OPTS="-with-openssl=/root/openssl-1.1.1s" pyenv install -v 3.10-dev
RUN LDFLAGS="-Wl,-rpath,/root/openssl-1.1.1s/lib" CONFIGURE_OPTS="-with-openssl=/root/openssl-1.1.1s" pyenv install -v 3.9-dev
RUN LDFLAGS="-Wl,-rpath,/root/openssl-1.1.1s/lib" CONFIGURE_OPTS="-with-openssl=/root/openssl-1.1.1s" pyenv install -v 3.8-dev
RUN LDFLAGS="-Wl,-rpath,/root/openssl-1.1.1s/lib" CONFIGURE_OPTS="-with-openssl=/root/openssl-1.1.1s" pyenv install -v 3.7-dev
RUN LDFLAGS="-Wl,-rpath,/root/openssl-1.1.1s/lib" CONFIGURE_OPTS="-with-openssl=/root/openssl-1.1.1s" pyenv install -v 3.11-dev
RUN LDFLAGS="-Wl,-rpath,/root/openssl-1.1.1s/lib" CONFIGURE_OPTS="-with-openssl=/root/openssl-1.1.1s" pyenv install -v 3.12-dev
RUN LDFLAGS="-Wl,-rpath,/root/openssl-1.1.1s/lib" CONFIGURE_OPTS="-with-openssl=/root/openssl-1.1.1s" pyenv install -v 3.13-dev

WORKDIR /__w/envpool/envpool
COPY . .
Expand Down
2 changes: 1 addition & 1 deletion docs/content/build.rst
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ EnvPool requires **GCC/G++ version >= 9.0** to build the source code. To install
# to change the default cc to gcc-9:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-9

It also requires **Python version >= 3.7**:
It also requires **Python version >= 3.10**:

.. code-block:: bash

Expand Down
2 changes: 1 addition & 1 deletion docs/content/new_env.rst
Original file line number Diff line number Diff line change
Expand Up @@ -716,7 +716,7 @@ If we want to add ``tianshou`` as a build dependency, in ``setup.cfg``:

[options]
packages = find:
python_requires = >=3.7
python_requires = >=3.10
install_requires =
dm-env>=1.4
gym>=0.18
Expand Down
4 changes: 2 additions & 2 deletions docs/env/dm_control.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
DeepMind Control Suite
======================

We use ``dm_control==1.0.5`` and ``mujoco==2.2.1`` as the codebase.
We use ``dm_control==1.0.5`` and ``mujoco==3.3.4`` as the codebase.
See https://github.com/deepmind/dm_control/tree/1.0.5 and
https://github.com/deepmind/mujoco/tree/2.2.1
https://github.com/google-deepmind/mujoco/tree/3.3.4

The ``domain_name`` and ``task_name`` for ``suite.load`` function are
converted into ``DomainNameTaskName-v1`` in envpool, e.g.,
Expand Down
74 changes: 37 additions & 37 deletions docs/env/mujoco_gym.rst
Original file line number Diff line number Diff line change
@@ -1,45 +1,45 @@
Mujoco (gym)
============

We use ``mujoco==2.2.1`` as the codebase.
See https://github.com/deepmind/mujoco/tree/2.2.1
We use ``mujoco==3.3.4`` as the codebase.
See https://github.com/google-deepmind/mujoco/tree/3.3.4

The implementation follows OpenAI gym \*-v4 environment, see
`reference <https://github.com/openai/gym/tree/master/gym/envs/mujoco>`_.
The implementation follows Gymnasium \*-v5 environment, see
`reference <https://github.com/Farama-Foundation/Gymnasium/tree/v1.2.3/gymnasium/envs/mujoco>`_.

You can set ``post_constraint`` to ``False`` to disable the bug fix with
`this issue <https://github.com/openai/gym/issues/2593>`_, which is \*-v3
environments' standard approach.


Ant-v3/v4
Ant-v3/v5
---------

`gym Ant-v3 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/ant_v3.py>`_

`gym Ant-v4 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/ant_v4.py>`_
`gymnasium Ant-v5 source code
<https://github.com/Farama-Foundation/Gymnasium/blob/v1.2.3/gymnasium/envs/mujoco/ant_v5.py>`_

- Observation space (v3): ``(111)``, first 13 elements for ``qpos[2:]``, next
14 elements for ``qvel``, other elements for clipped ``cfrc_ext`` (com-based
external force on body, a.k.a. contact force);
- Observation space (v4): ``(27)``, first 13 elements for ``qpos[2:]``, next
- Observation space (v5): ``(27)``, first 13 elements for ``qpos[2:]``, next
14 elements for ``qvel``;
- Action space: ``(8)``, with range ``[-1, 1]``;
- ``frame_skip``: 5;
- ``max_episode_steps``: 1000;
- ``reward_threshold``: 6000.0;


HalfCheetah-v3/v4
HalfCheetah-v3/v5
-----------------

`gym HalfCheetah-v3 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/half_cheetah_v3.py>`_

`gym HalfCheetah-v4 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/half_cheetah_v4.py>`_
`gymnasium HalfCheetah-v5 source code
<https://github.com/Farama-Foundation/Gymnasium/blob/v1.2.3/gymnasium/envs/mujoco/half_cheetah_v5.py>`_

- Observation space: ``(17)``, first 8 elements for ``qpos[1:]``, next 9
elements for ``qvel``;
Expand All @@ -49,14 +49,14 @@ HalfCheetah-v3/v4
- ``reward_threshold``: 4800.0;


Hopper-v3/v4
Hopper-v3/v5
------------

`gym Hopper-v3 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/hopper_v3.py>`_

`gym Hopper-v4 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/hopper_v4.py>`_
`gymnasium Hopper-v5 source code
<https://github.com/Farama-Foundation/Gymnasium/blob/v1.2.3/gymnasium/envs/mujoco/hopper_v5.py>`_

- Observation space: ``(11)``, first 5 elements for ``qpos[1:]``, next 6
elements for ``qvel``;
Expand All @@ -66,20 +66,20 @@ Hopper-v3/v4
- ``reward_threshold``: 6000.0;


Humanoid-v3/v4, HumanoidStandup-v2/v4
Humanoid-v3/v5, HumanoidStandup-v2/v5
-------------------------------------

`gym Humanoid-v3 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/humanoid_v3.py>`_

`gym Humanoid-v4 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/humanoid_v4.py>`_
`gymnasium Humanoid-v5 source code
<https://github.com/Farama-Foundation/Gymnasium/blob/v1.2.3/gymnasium/envs/mujoco/humanoid_v5.py>`_

`gym HumanoidStandup-v2 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/humanoidstandup.py>`_

`gym HumanoidStandup-v4 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/humanoidstandup_v4.py>`_
`gymnasium HumanoidStandup-v5 source code
<https://github.com/Farama-Foundation/Gymnasium/blob/v1.2.3/gymnasium/envs/mujoco/humanoidstandup_v5.py>`_

- Observation space: ``(376)``, first 22 elements for ``qpos[2:]``, next 23
elements for ``qvel``, next 140 elements for ``cinert`` (com-based body
Expand All @@ -91,14 +91,14 @@ Humanoid-v3/v4, HumanoidStandup-v2/v4
- ``max_episode_steps``: 1000;


InvertedDoublePendulum-v2/v4
InvertedDoublePendulum-v2/v5
----------------------------

`gym InvertedDoublePendulum-v2 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/inverted_double_pendulum.py>`_

`gym InvertedDoublePendulum-v4 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/inverted_double_pendulum_v4.py>`_
`gymnasium InvertedDoublePendulum-v5 source code
<https://github.com/Farama-Foundation/Gymnasium/blob/v1.2.3/gymnasium/envs/mujoco/inverted_double_pendulum_v5.py>`_

- Observation space: ``(11)``, first 1 element for ``qpos[0]``, next 2
elements for ``sin(qpos[1:])``, next 2 elements for ``cos(qpos[1:])``,
Expand All @@ -109,14 +109,14 @@ InvertedDoublePendulum-v2/v4
- ``reward_threshold``: 9100.0;


InvertedPendulum-v2/v4
InvertedPendulum-v2/v5
----------------------

`gym InvertedPendulum-v2 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/inverted_pendulum.py>`_

`gym InvertedPendulum-v4 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/inverted_pendulum_v4.py>`_
`gymnasium InvertedPendulum-v5 source code
<https://github.com/Farama-Foundation/Gymnasium/blob/v1.2.3/gymnasium/envs/mujoco/inverted_pendulum_v5.py>`_

- Observation space: ``(4)``, first 2 elements for ``qpos``, next 2 elements
for ``qvel``;
Expand All @@ -126,14 +126,14 @@ InvertedPendulum-v2/v4
- ``reward_threshold``: 950.0;


Pusher-v2/v4
Pusher-v2/v5
------------

`gym Pusher-v2 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/pusher.py>`_

`gym Pusher-v4 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/pusher_v4.py>`_
`gymnasium Pusher-v5 source code
<https://github.com/Farama-Foundation/Gymnasium/blob/v1.2.3/gymnasium/envs/mujoco/pusher_v5.py>`_

- Observation space: ``(23)``, first 7 elements for ``qpos[:7]``, next 7
elements for ``qvel[:7]``, next 3 elements for ``tips_arm``, next 3
Expand All @@ -144,14 +144,14 @@ Pusher-v2/v4
- ``reward_threshold``: 0.0;


Reacher-v2/v4
Reacher-v2/v5
-------------

`gym Reacher-v2 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/reacher.py>`_

`gym Reacher-v4 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/reacher_v4.py>`_
`gymnasium Reacher-v5 source code
<https://github.com/Farama-Foundation/Gymnasium/blob/v1.2.3/gymnasium/envs/mujoco/reacher_v5.py>`_

- Observation space: ``(11)``, first 2 elements for ``cos(qpos[:2])``, next 2
elements for ``sin(qpos[:2])``, next 2 elements for ``qpos[2:]``, next 2
Expand All @@ -163,14 +163,14 @@ Reacher-v2/v4
- ``reward_threshold``: -3.75;


Swimmer-v3/v4
Swimmer-v3/v5
-------------

`gym Swimmer-v3 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/swimmer_v3.py>`_

`gym Swimmer-v4 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/swimmer_v4.py>`_
`gymnasium Swimmer-v5 source code
<https://github.com/Farama-Foundation/Gymnasium/blob/v1.2.3/gymnasium/envs/mujoco/swimmer_v5.py>`_

- Observation space: ``(8)``, first 3 elements for ``qpos[2:]``, next 5
elements for ``qvel``;
Expand All @@ -180,14 +180,14 @@ Swimmer-v3/v4
- ``reward_threshold``: 360.0;


Walker2d-v3/v4
Walker2d-v3/v5
--------------

`gym Walker2d-v3 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/walker2d_v3.py>`_

`gym Walker2d-v4 source code
<https://github.com/openai/gym/blob/master/gym/envs/mujoco/walker2d_v4.py>`_
`gymnasium Walker2d-v5 source code
<https://github.com/Farama-Foundation/Gymnasium/blob/v1.2.3/gymnasium/envs/mujoco/walker2d_v5.py>`_

- Observation space: ``(17)``, first 8 elements for ``qpos[1:]``, next 9
elements for ``qvel``;
Expand Down
2 changes: 1 addition & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Installation
------------

EnvPool is currently hosted on `PyPI <https://pypi.org/project/envpool/>`_.
It requires Python >= 3.7.
It supports Python 3.10-3.13.

You can install EnvPool with the following command:

Expand Down
2 changes: 1 addition & 1 deletion envpool/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.

load("@pip_requirements//:requirements.bzl", "requirement")
load("@rules_python//python:defs.bzl", "py_library", "py_test")
load("//envpool:requirements.bzl", "requirement")

package(default_visibility = ["//visibility:public"])

Expand Down
2 changes: 1 addition & 1 deletion envpool/atari/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.

load("@pip_requirements//:requirements.bzl", "requirement")
load("@pybind11_bazel//:build_defs.bzl", "pybind_extension")
load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
load("@rules_python//python:defs.bzl", "py_library", "py_test")
load("//envpool:requirements.bzl", "requirement")

package(default_visibility = ["//visibility:public"])

Expand Down
2 changes: 1 addition & 1 deletion envpool/box2d/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.

load("@pip_requirements//:requirements.bzl", "requirement")
load("@pybind11_bazel//:build_defs.bzl", "pybind_extension")
load("@rules_cc//cc:defs.bzl", "cc_library")
load("@rules_python//python:defs.bzl", "py_library", "py_test")
load("//envpool:requirements.bzl", "requirement")

package(default_visibility = ["//visibility:public"])

Expand Down
2 changes: 1 addition & 1 deletion envpool/classic_control/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.

load("@pip_requirements//:requirements.bzl", "requirement")
load("@pybind11_bazel//:build_defs.bzl", "pybind_extension")
load("@rules_cc//cc:defs.bzl", "cc_library")
load("@rules_python//python:defs.bzl", "py_library", "py_test")
load("//envpool:requirements.bzl", "requirement")

package(default_visibility = ["//visibility:public"])

Expand Down
Loading
Loading