* Fix `return_info` for Observation wrappers, Atari (?) and framestack
* Make type checkers and IDEs happier
* Merge in #2454
* Update the info dict based on no-op steps
Some type hints
* Bug fix
* Handle resets during frameskip
* Typecheck classic control environments
* consistent imports + comments
* Don't use seed method
Although this code is exact duplication, we at least don't call deprecated method.
* Update core.py
* 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
* 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
* Typing in gym/envs/registration.py
* Add registration to type checked list
* Adds type hints to space.py
* Typing in gym.core.Env
* Typing in seeding.py
* fixup Typing after rebase
* revert accidental change
* Install dependencies in pyright runner
* fix: can only install dependencies after checkout
* fix: install types in a venv
* fix path
* skip env activation, install directly from venv interpreter
* absolute path to venv
* use central python installation
* skip one more typecheck
* cleanup gh actions .yml
* Add py.typed to signal using sources for typechecking
* black!
Co-authored-by: sj_petterson <sj_petterson@gmail.com>
Co-authored-by: J K Terry <justinkterry@gmail.com>
* 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
The current docstring for `reset()` seems to indicate that the
environment will be identical after separate calls to `reset()`.
However, the `reset()` function isn't supposed to reset the states of
the environment's RNGs [1]. This change clarifies the relationship
between the `reset()` function and the RNGs.
[1]: https://github.com/openai/gym/issues/250
* add type of argument
* fix typos
* split lines for formatting
* reformat string, add ellipsis, remove r string
* make docstring stylistically consistent
* make docstrings a little more elaboratet
* reduce by 1 space
* make line wrap 120
* remove unnecessary line
* add returns to docstring
* add docstring, make code more pep8 and delete some unused print functions
* more pep8
* file docstring instead of comments
* delete unused variables, add file docstring and add some pep8 spring cleaning
* add file docstring, fix typos and add some pep8 correections
Co-authored-by: Dan <daniel.timbrell@ing.com>
* Implement PixelObservationWrapper
* Change MujocoEnv.render to support custom camera_{name,id}
* Implement tests for PixelObservationWrapper
* Use env.get_pixels instead of direct env.render
* Fix camera_{id,name} check in pixel observation wrapper
* Fix rendering with explicit camera_id
* Add Wrapperget_pixels to allow call to be propagated to wrapped env
* Remove use of unnecessary `get_pixels` method
* Update PixelObservationWrapper to support multiple pixel keys
* Remove unnecessary `rgb_rendering_tracking` argument
* Remove rgb_rendering_tracking logic
Binding `__contains__` to the Space class' contains method this way prevents overriding it in subclasses, which leads to `NotImplementedException`s when trying to do things like `2 in gym.spaces.Discrete(2)`.
`contains` really should not exist when it does exactly what the builtin
magic method `__contains__` was meant for, but that would break backward
compatibility.
* Improve default import time from 750ms -> 73ms on 2016 Macbook pro
* Support code which expects gym.spaces.foo to work without a direct import of gym.spaces
* Spaces have a compatible method which determines if 2 Spaces are of the same shape, ignoring bounds.
* Added a command interface for Env/Wrappers
* Made command interface more aligned with gym codebase. Added CommandWrapper helper class.
* Refactored method names from command to event/broadcast
* Spaces have a compatible method which determines if 2 Spaces are of the same shape, ignoring bounds.
* Comparing compatibility of a Space with None will result in False now
* add dtype to Box
* remove board_game, debugging, safety, parameter_tuning environments
* massive set of breaking changes
- remove python logging module
- _step, _reset, _seed, _close => non underscored method
- remove benchmark and scoring folder
* Improve render("human"), now resizable, closable window.
* get rid of default step and reset in wrappers, so it doesn’t silently fail for people with underscore methods
* CubeCrash unit test environment
* followup fixes
* MemorizeDigits unit test envrionment
* refactored spaces a bit
fixed indentation
disabled test_env_semantics
* fix unit tests
* fixes
* CubeCrash, MemorizeDigits tested
* gym backwards compatibility patch
* gym backwards compatibility, followup fixes
* changelist, add spaces to main namespaces
* undo_logger_setup for backwards compat
* remove configuration.py
* Make sure env.spec always exists and is valid. Previously there was an error when you tried to get the string representation of an unregistered env.
* update changelist