* 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
* 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
* 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
* 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