* Support kwargs in gym.make
We avoided adding kwargs for a long time in order to encourage people
to statically register their environment definitions. However, over
time we've found a few important use-cases for kwargs, such as:
- Runtime-specific objects, such as which GPU to run the environment
on
- Parametrized environments, which can have an infinite number of meaningful
variants
The latter breaks the invariant that the environment ID alone
determines the semantics of the environment, but it's an advanced
use-case and such users should be able to manage this on their own.
* Export the register method so it's easier for external users to register environments
* Improve kwargs test
* 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
* 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
* fix double reset, as suggested by @jietang
* better floors and ceilings
* add convenience methods to monitor
* add wrappers to gym namespace
* allow playing Atari games, with potentially more coming in the future
* simplify example in docs
* Move play out of the Env
* fix tests
* no more deprecation warnings
* remove env.monitor
* monitor simplification
* monitor simplifications
* monitor related fixes
* a few changes suggested by linter
* timestep_limit fixes
* keep track of gym env variables for future compatibility
* timestep_limit => max_episode_timesteps
* don't apply TimeLimit wrapper in make for VNC envs
* Respect old timestep_limit argument
* Pass max_episode_seconds through registration
* Don't include deprecation warnings yet
* Tweak README and don't use __new__ for wrapper
The extra 'env' argument means that Wrapper authors with a custom
__init__ need to think about the parent signature anyway, so there's
not as much benefit to adding the more surprising __new__.
* Add support for registering wrappers for the official environment
* Add configure method to Env, and support multiple displays in CartPole
This allows people to pass runtime specification which doesn't affect
the environment semantics to environments created via `make`.
Also include an example of setting the display used for CartPole
* Provide full configure method
* Allow environments to require configuration
* Don't take arguments in make
* Make environments seedable
* Fix monitor bugs
- Set monitor_id before setting the infix. This was a bug that would yield incorrect results with multiple monitors.
- Remove extra pid from stats recorder filename. This should be purely cosmetic.
* Start uploading seeds in episode_batch
* Fix _bigint_from_bytes for python3
* Set seed explicitly in random_agent
* Pass through seed argument
* Also pass through random state to spaces
* Pass random state into the observation/action spaces
* Make all _seed methods return the list of used seeds
* Switch over to np.random where possible
* Start hashing seeds, and also seed doom engine
* Fixup seeding determinism in many cases
* Seed before loading the ROM
* Make seeding more Python3 friendly
* Make the MuJoCo skipping a bit more forgiving
* Remove debugging PDB calls
* Make setInt argument into raw bytes
* Validate and upload seeds
* Skip box2d
* Make seeds smaller, and change representation of seeds in upload
* Handle long seeds
* Fix RandomAgent example to be deterministic
* Handle integer types correctly in Python2 and Python3
* Try caching pip
* Try adding swap
* Add df and free calls
* Bump swap
* Bump swap size
* Try setting overcommit
* Try other sysctls
* Try fixing overcommit
* Try just setting overcommit_memory=1
* Add explanatory comment
* Add what's new section to readme
* BUG: Mark ElevatorAction-ram-v0 as non-deterministic for now
* Document seed
* Move nondetermistic check into spec
* Improve auto close implementation
- Register all envs at initialization time, not just ones created via make
- Simplify names and add more documentation on interface
- Move closer instances into the relevant modules
review-requested: @jietang
* Close environments in the tests
This isn't strictly needed, but means there are fewer Doom
subprocesses hanging around while the tests run.
* Use 4 space indent in comment
* Improve docstrings in core
* Don't pass through args to __new__
The __init__ method gets called once __new__ returns,
so these arguments are either ignored (Python 2) or
result in an error (Python 3). The __init__ method
automatically gets called with the correct arguments.
* Fixup comments