* Allows a new RNG to be generated with seed=-1 and updated env_checker to fix bug if environment doesn't use np_random in reset
* Revert "fixed `gym.vector.make` where the checker was being applied in the opposite case than was intended to (#2871)"
This reverts commit 519dfd9117.
* Remove bad pushed commits
* Fixed spelling in core.py
* Pins pytest to the last py 3.6 version
* Allow Box automatic scalar shape
* Add test box and change default from () to (1,)
* update Box shape inference with more strict checking
* Update the box shape and add check on the custom Box shape
* Removed incorrect shape type and assert shape code
* Update the Box and associated tests
* Remove all folders and files from pyright exclude
* Revert issues
* Push RedTachyon code review
* Add Python Platform
* Remove play from pyright check
* Fixed CI issues
* remove mujoco env type hinting
* Fixed pixel observation test
* Added some new type hints
* Fixed CI errors
* Fixed CI errors
* Remove play.py from exlucde pyright
* Fixed pyright issues
* Add support for python 3.6
* Add support for python 3.6
* Added check for python 3.6 to not install mujoco as no version exists
* Fixed the install groups for python 3.6
* Re-added python 3.6 support for gym
* black
* Added support for dataclasses through dataclasses module in setup that backports the module
* Fixed install requirements
* Re-added dummy env spec with dataclasses
* Changed type for compatability for python 3.6
* Added a python 3.6 warning
* Fixed python 3.6 typing issue
* Removed __future__ import annotation for python 3.6 support
* Fixed python 3.6 typing
* Updated docstrings using darglint, ignoring 402 and 202 plus shortened lines into multiple where they were overflowing
* Remove abstract method decorators, for a future PR
* Add __future__ import annotation for python 3.7+ notion
* Added missing bracket
* Fix minor docstring tables
* Added pydocstyle to pre-commit
* Added docstrings for tests and updated the tests for autoreset
* Add pydocstyle exclude folder to allow slowly adding new docstrings
* Add docstrings for setup.py and gym/__init__.py, core.py, error.py and logger.py
* Check that all unwrapped environment are of a particular wrapper type
* Reverted back to import gym.spaces.Space to gym.spaces
* Fixed the __init__.py docstring
* Fixed autoreset autoreset test
* Updated gym __init__.py top docstring
* Fix examples in docstrings
* Add docstrings and type hints where known to all functions and classes in gym/utils and gym/vector
* Remove unnecessary import
* Removed "unused error" and make APIerror deprecated at gym 1.0
* Add pydocstyle description to CONTRIBUTING.md
* Added docstrings section to CONTRIBUTING.md
* Added :meth: and :attr: keywords to docstrings
* Added :meth: and :attr: keywords to docstrings
* Imported annotations from __future__ to fix python 3.7
* Add __future__ import annotations for python 3.7
* isort
* Remove utils and vectors for this PR and spaces for previous PR
* Update gym/envs/classic_control/acrobot.py
Co-authored-by: Markus Krimmel <montcyril@gmail.com>
* Update gym/envs/classic_control/acrobot.py
Co-authored-by: Markus Krimmel <montcyril@gmail.com>
* Update gym/envs/classic_control/acrobot.py
Co-authored-by: Markus Krimmel <montcyril@gmail.com>
* Update gym/spaces/dict.py
Co-authored-by: Markus Krimmel <montcyril@gmail.com>
* Update gym/utils/env_checker.py
Co-authored-by: Markus Krimmel <montcyril@gmail.com>
* Update gym/utils/env_checker.py
Co-authored-by: Markus Krimmel <montcyril@gmail.com>
* Update gym/utils/env_checker.py
Co-authored-by: Markus Krimmel <montcyril@gmail.com>
* Update gym/utils/env_checker.py
Co-authored-by: Markus Krimmel <montcyril@gmail.com>
* Update gym/utils/env_checker.py
Co-authored-by: Markus Krimmel <montcyril@gmail.com>
* Update gym/utils/ezpickle.py
Co-authored-by: Markus Krimmel <montcyril@gmail.com>
* Update gym/utils/ezpickle.py
Co-authored-by: Markus Krimmel <montcyril@gmail.com>
* Update gym/utils/play.py
Co-authored-by: Markus Krimmel <montcyril@gmail.com>
* Pre-commit
* Updated docstrings with :meth:
* Updated docstrings with :meth:
* Update gym/utils/play.py
* Update gym/utils/play.py
* Update gym/utils/play.py
* Apply suggestions from code review
Co-authored-by: Markus Krimmel <montcyril@gmail.com>
* pre-commit
* Update gym/utils/play.py
Co-authored-by: Markus Krimmel <montcyril@gmail.com>
* Updated fps and zoom parameter docstring
* Update play docstring
* Apply suggestions from code review
Added suggested corrections from @markus28
Co-authored-by: Markus Krimmel <montcyril@gmail.com>
* Pre-commit magic
* Update the `gym.make` docstring with a warning for `env_checker`
* Updated and fixed vector docstrings
* Update test names for reflect the project filename style
Co-authored-by: Markus Krimmel <montcyril@gmail.com>
* Remove additional ignores from flake8
* Remove all unused imports
* Remove all unused imports
* Update flake8 and pyupgrade
* F841, removed unused variables
* E731, removed lambda assignment to variables
* Remove E731, F403, F405, F524
* Remove E722, bare exceptions
* Remove E712, compare variable == True or == False to is True or is False
* Remove E402, module level import not at top of file
* Added --pre-file-ignores
* Add --per-file-ignores removing E741, E302 and E704
* Add E741, do not use variables named ‘l’, ‘O’, or ‘I’ to ignore issues in classic control
* Fixed issues for pytest==6.2
* Remove unnecessary # noqa
* Edit comment with the removal of E302
* Added warnings and declared module, attr for pyright type hinting
* Remove unused import
* Removed flake8 E302
* Updated flake8 from 3.9.2 to 4.0.1
* Remove unused variable
* Updated cartpole-v0 to v1 to prevent warning and added pytest.mark.filterwarnings for tests where warnings are unavoidable
* Change np.bool to bool as numpy raises a warning and bool is the suggested solution
* Seeding randint is deprecated in the future, integers is new solution
* Fixed errors thrown when the video recorder is deleted but not closed
* spaces.Box expects a floating array, updated all cases where this was not true and modified float32 to float64 as float array default to float64. Otherwise space.Box raises warning that dtype precision (float32) is lower than array precision (float64).
* Added pytest.mark.filterwarnings to preventing the raising of an intended warning
* Added comment to explain why a warning is raised that can't be prevented without version update to the environment
* Added comment to explain why warning is raised
* Changed values to float as expected by the box which default to float64
* Removed --forked from pytest as the pytest-forked project is no being maintained and was not raising warnings as expected
* When AsyncVectorEnv has shared_memory=True then a ValueError is raised before _state is initialised. Therefore, on the destruction on the env an error is thrown in .close_extra as _state does not exist
* Possible fix that was causing an error in test_call_async_vector_env by ensuring that pygame resources are released
* Pygame throws an error with ALSA when closed, using a fix from PettingZoo (https://github.com/Farama-Foundation/PettingZoo/blob/master/pettingzoo/__init__.py). We use the dsp audiodriver to prevent this issue
* Modification due to running pre-commit locally
* Updated cartpole-v0 to v1 to prevent warning and added pytest.mark.filterwarnings for tests where warnings are unavoidable
* Change np.bool to bool as numpy raises a warning and bool is the suggested solution
* Seeding randint is deprecated in the future, integers is new solution
* Fixed errors thrown when the video recorder is deleted but not closed
* spaces.Box expects a floating array, updated all cases where this was not true and modified float32 to float64 as float array default to float64. Otherwise space.Box raises warning that dtype precision (float32) is lower than array precision (float64).
* Added pytest.mark.filterwarnings to preventing the raising of an intended warning
* Added comment to explain why a warning is raised that can't be prevented without version update to the environment
* Added comment to explain why warning is raised
* Changed values to float as expected by the box which default to float64
* Removed --forked from pytest as the pytest-forked project is no being maintained and was not raising warnings as expected
* When AsyncVectorEnv has shared_memory=True then a ValueError is raised before _state is initialised. Therefore, on the destruction on the env an error is thrown in .close_extra as _state does not exist
* Possible fix that was causing an error in test_call_async_vector_env by ensuring that pygame resources are released
* Pygame throws an error with ALSA when closed, using a fix from PettingZoo (https://github.com/Farama-Foundation/PettingZoo/blob/master/pettingzoo/__init__.py). We use the dsp audiodriver to prevent this issue
* Modification due to running pre-commit locally
* initial draft of optional info dict in reset function, implemented for cartpole, tests seem to be passing
* merged core.py
* updated return type annotation for reset function in core.py
* optional metadata with return_info from reset added for all first party environments, with corresponding tests. Incomplete implementation for wrappers and vector wrappers
* removed Optional type for return_info arguments
* added tests for return_info to normalize wrapper and sync_vector_env
* autoformatted using black
* added optional reset metadata tests to several wrappers
* added return_info capability to async_vector_env.py and test to verify functionality
* added optional return_info test for record_video.py
* removed tests for mujoco environments
* autoformatted
* improved test coverage for optional reset return_info
* re-removed unit test envs accidentally reintroduced in merge
* removed unnecessary import
* changes based on code-review
* small fix to core wrapper typing and autoformatted record_epsisode_stats
* small change to pass flake8 style
* Add call, get_attr and set_attr methods
* Use f-strings and remove assert
* Allow tuples in set_attr and move docstrings
* Replace CubeCrash by CartPole in tests
* Fixed ordering of space. Added singledispatch utility.
* Added singledispatch utility to vector.utils & changed order of space argument
* Fixed Error from _BaseGymSpaces
* Minor adjustment for Discrete Spaces
* Fixed Tests/ to reflect changes
* Fixed precommit error - custom namespaces
* Concrete Implementations start with _
* First find/replace, now tests
* Fixes to the vector env
* Make seed keyword only in wrappers
* (try to) fix the bug with old environments using new wrappers (with the seed keyword)
* black
* Change **kwargs to options, try to make it work; black
* Add OrderEnforcing wrapper to wrapper exports
Add a test for compatibility with old (pybullet-like) envs
* Add OrderEnforcing wrapper to wrapper exports
Add a test for compatibility with old (pybullet-like) envs
black
* Update the env checker
* Update the env checker
* Update the env checker to use inspect (might fail tests, let's see)
* Allow the signature to include kwargs in env_checker
* Minor fix
* Batch the action space in VectorEnv and add iterate utility function
* Add tests for iterate
* Add tests for action spaces in SyncVectorEnv and AsyncVectorEnv
* Black formatting
* Use singledispatch for iterate utility function
* Update the ordering of the arguments in the docstring
* Fix ordering in docstring example of iterate
* Check for same action spaces in vectorized environments
* Separate Discrete from other space types in iterate singledispatch
* Ditch most of the seeding.py and replace np_random with the numpy default_rng. Let's see if tests pass
* Updated a bunch of RNG calls from the RandomState API to Generator API
* black; didn't expect that, did ya?
* Undo a typo
* blaaack
* More typo fixes
* Fixed setting/getting state in multidiscrete spaces
* Fix typo, fix a test to work with the new sampling
* Correctly (?) pass the randomly generated seed if np_random is called with None as seed
* Convert the Discrete sample to a python int (as opposed to np.int64)
* Remove some redundant imports
* First version of the compatibility layer for old-style RNG. Mainly to trigger tests.
* Removed redundant f-strings
* Style fixes, removing unused imports
* Try to make tests pass by removing atari from the dockerfile
* Try to make tests pass by removing atari from the setup
* Try to make tests pass by removing atari from the setup
* Try to make tests pass by removing atari from the setup
* First attempt at deprecating `env.seed` and supporting `env.reset(seed=seed)` instead. Tests should hopefully pass but throw up a million warnings.
* black; didn't expect that, didya?
* Rename the reset parameter in VecEnvs back to `seed`
* Updated tests to use the new seeding method
* Removed a bunch of old `seed` calls.
Fixed a bug in AsyncVectorEnv
* Stop Discrete envs from doing part of the setup (and using the randomness) in init (as opposed to reset)
* Add explicit seed to wrappers reset
* Remove an accidental return
* Re-add some legacy functions with a warning.
* Use deprecation instead of regular warnings for the newly deprecated methods/functions
* Allow custom observation spaces in VectorEnv
* Replace np.copy by deepcopy in reset of SyncVectorEnv
* Add tests for VectorEnv with custom spaces
* Add tests for shared memory and batches of custom spaces
* Remove unused import in VectorEnv test
* Add warning note in the Space class for custom spaces
* make daemon=True an option of async_vector_env
* custom worker in async_vector_env
* add compatibility methods to SyncVectorEnv
* fix name in sync_vector_env
* vectorenv api cleanup
* add docstrings for daemon and worker options in AsyncVectorEnv
* Initial version of vectorized environments
* Raise an exception in the main process if child process raises an exception
* Add list of exposed functions in vector module
* Use deepcopy instead of np.copy
* Add documentation for vector utils
* Add tests for copy in AsyncVectorEnv
* Add example in documentation for batch_space
* Add cloudpickle dependency in setup.py
* Fix __del__ in VectorEnv
* Check if all observation spaces are equal in AsyncVectorEnv
* Check if all observation spaces are equal in SyncVectorEnv
* Fix spaces non equality in SyncVectorEnv for Python 2
* Handle None parameter in create_empty_array
* Fix check_observation_space with spaces equality
* Raise an exception when operations are out of order in AsyncVectorEnv
* Add version requirement for cloudpickle
* Use a state instead of binary flags in AsyncVectorEnv
* Use numpy.zeros when initializing observations in vectorized environments
* Remove poll from public API in AsyncVectorEnv
* Remove close_extras from VectorEnv
* Add test between AsyncVectorEnv and SyncVectorEnv
* Remove close in check_observation_space
* Add documentation for seed and close
* Refactor exceptions for AsyncVectorEnv
* Close pipes if the environment raises an error
* Add tests for out of order operations
* Change default argument in create_empty_array to np.zeros
* Add get_attr and set_attr methods to VectorEnv
* Improve consistency in SyncVectorEnv