Commit Graph

39 Commits

Author SHA1 Message Date
Ilya Kamen
ad79b0ad0f typing in gym.spaces (#2541)
* typing in spaces.Box and spaces.Discrete

* adds typing to dict and tuple spaces

* Typecheck all spaces

* Explicit regex to include all files under space folder

* Style: use native types and __future__ annotations

* Allow only specific strings for Box.is_bounded args

* Add typing to changes from #2517

* Remove Literal as it's not supported by py3.7

* Use more recent version of pyright

* Avoid name clash for type checker

* Revert "Avoid name clash for type checker"

This reverts commit 1aaf3e0e0328171623a17a997b65fe734bc0afb1.

* Ignore the error. It's reported as probable bug at https://github.com/microsoft/pyright/issues/2852

* rebase and add typing for `_short_repr`
2022-01-24 17:22:11 -05:00
Markus28
057b71e89e Implement simplified Box representation (#2554)
* Implement short Box.__repr__, potentially resolve #2497

* Added comment, fix representation at initialization
2022-01-13 13:41:53 -05:00
Jet
3746741708 Potential fix for integer overflow in box spaces (#2517)
* fix box infinite bounds

* Revert "fix box infinite bounds"

This reverts commit 8e27a01fda839f522fc5a0855350e5a543359c47.

* fix box space infinite bounds

* experiencing unit test failures with master build on windows, shifting to Linux to test

* box space infinite bounds fixed, all unit test pass, though the solution is still less elegant than I'd like

* bracket fix

* black formatting

* remove redundant casting to np.array for array spaces

* previous changes unintentionally changed the sampling method for float dtype infinite, this commit fixes that. Float infinite bounds are sampled either using shifted exponential or normal depending on circumstance, but int infinite bounds are always sampled uniformly.

* added more tests as per #2517, made some error messages more descriptive, changed logic for calculating inf for ints

* accidentally commented out something I shouldn't have commented out

* moved get_inf and get_precision to non-static functions

* Move get_precision and get_inf outside of class

* Don't edit code within github's editor lol:wq

* black
2022-01-10 23:45:41 -05:00
Elijah K
8e5ae02ab1 Py36+ syntax in gym/spaces: derived by running pyupgrade --py36-plus gym/spaces/**.py and flynt gym --ll 120 (#2466)
Co-authored-by: Ilya Kamen <ilya.kamenshchikov@bosch.com>
2021-11-14 08:50:23 -05:00
Xuehai Pan
58ed658d9b Better warning control (#2434)
* Better warning control

* Replace `warnings.warn` with `gym.logger.warn`

* Send logs to stderr
2021-10-01 20:36:02 -04:00
RaghuSpaceRajan
c571b0d853 Make Tuple and Dicts be seedable with lists and dicts of seeds + make the seed in default initialization controllable (#1774)
* Make the seed in default initialization controllable

Since seed() is being called in default initialization of Space, it should be controllable for reproducibility.

* Updated derived classes of Space to have their seeds controllable at initialization.

* Allow Tuple's spaces to each have their own seed

* Added dict based seeding for Dict space; test cases for Tuple and Dict seeding

* Update discrete.py

* Update test_spaces.py

* Add seed to __init__()

* blacked

* Fix black

* Fix failing tests
2021-09-13 14:08:01 -04:00
Ariel Kwiatkowski
7f863fd11a Changed .shape to be a property (#2397)
* Changed .shape to a property, and the internal representation of a shape to ._shape

* Minor docstring fix
2021-09-11 13:07:02 -04:00
Sebastian Wallkötter
cc5c4db731 bugfix Box.contains (#2388)
As per @rohanb2018 's comment.
2021-09-03 12:28:58 -04:00
Sebastian Wallkötter
7573c57e1a box.contains check dtype and promote non-ndarrays (#2374)
* box.contains check dtype and promote non-ndarrays

Closes: https://github.com/openai/gym/issues/2357 and #2298

Instead of only casting list to ndarray, cast any class to ndarray (if possible) and emit a warning when casting. Also, check if the dtype of the input matches the dtype of the space.

* use import warnings

* blackify

* changs from code review

* fix wrapped space

Co-authored-by: Tristan Deleu <tristandeleu@users.noreply.github.com>

* fix box bondaries

Co-authored-by: Tristan Deleu <tristandeleu@users.noreply.github.com>

* TEST: add regression test.

* STY: black

Co-authored-by: Tristan Deleu <tristandeleu@users.noreply.github.com>
2021-09-01 12:14:22 -04:00
Jan Kaiser
338b2acdb3 Made Box __repr__ output clearer (#2182) (#2183) 2021-07-31 13:19:06 -04:00
J K Terry
78d2b512d8 redo black (#2272) 2021-07-29 15:39:42 -04:00
Justin Terry
e9d2c41f2b redo black 2021-07-29 12:42:48 -04:00
Christian Clauss
bb81e141ea Blacken the codebase (#2265) 2021-07-28 20:26:34 -04:00
bion howard
7eebed08bf include low, high, & dtype in spaces.Box.__repr__ (#1974)
* include low, high, & dtype in spaces.Box.__repr__

multitask learners need a way to make a sensor for each space, and it's possible for two different Box spaces to have the same shape but different low/high/dtype, so this pull request just adds the minimum low value, maximum high value, and the dtype to Box.__repr__ so we can use str(box_space) as a key in a ModuleDict of sensors

* f-string to format

* fix typo

Co-authored-by: Peter Zhokhov <peterz@openai.com>
2020-08-14 15:30:58 -07:00
Peter Zhokhov
b2727d6fd3 0.17.2 and release notes 2020-05-08 16:25:27 -07:00
Zach Dwiel
174a27b7fc Allow Box more flexibility in how shape is provided (#1873)
The current implementation of Box doesn't allow passing an array as low or high while also providing a shape.
The current implementation of Box doesn't allow passing an array as low or high and a constant as the other bound.

Co-authored-by: pzhokhov <peterz@openai.com>
2020-05-08 14:56:14 -07:00
johannespitz
c6f275f4fb Avoid precision warning when creating gym.spaces.box with scalar bounds (#1878) 2020-04-24 17:24:35 -05:00
Pavel Shutov
bd68ec33f3 Fix sampling bug (#1761) 2019-12-13 15:25:37 +01:00
Guillermo González de Garibay
59d401ea3b Warn when Box dtype is casted to lower precision (#1744)
* Force explicit Box dtype

Having the `dtype` argument defaut to `np.float32` without warning can generate some unexpected issues.

For example:
```python
import gym
import numpy as np

num = np.array(3.1415926035897932)

gym.spaces.Box(-num, num).contains(num)  # returns False
```

* Warn on lowered precision
2019-12-06 14:13:46 +01:00
Gowtham.R
7a97c89b44 fix sampling bug (#1730)
* fix sampling bug

* remove clipping and do floor samples before type conversion
2019-11-01 16:22:11 -07:00
David Kraemer
4e3cd3f6b3 Extending the Box class to allow possibly unbounded boxes (#1567)
* Added support for unbounded box endpoints.

* Documentation and code cleanup.

* Fixed some of the logic of upper bounded versus lower bounded spaces.

* Included unbounded Box instances for the original tests.

* Removed unnecessary attribute in the Box class.
2019-06-28 15:54:31 -07:00
Tristan Deleu
e9053b4a12 Check for shape in equality operation between Box spaces (#1519) 2019-06-07 14:18:04 -07:00
Eric Liang
bfdf296358 fix attr-err (#1431) 2019-04-08 19:17:33 -07:00
Xingdong Zuo
cee92691ad Update box.py 2019-03-25 00:39:32 +01:00
pzhokhov
07645bd11e spaces equality fixes and tests (#1375)
* spaces equality fixes and tests

* squash-merged master

* added better equality tests and more checks against bad space creation
2019-03-23 23:18:19 -07:00
Robert Nishihara
f1f884898d Make super() calls Python 2 compatible. (#1312) 2019-02-07 11:29:04 -08:00
pzhokhov
3067a0b890 fix for issue 1256 (Box(low=0, high=255, dtype='uint8').sample() returned zeros) (#1307) 2019-02-05 17:49:29 -08:00
Xingdong Zuo
6497c9f1c6 Delete prng.py (#1196)
* Delete prng.py

Since it seems like this seeding function is rarely used.

* Update __init__.py

* Update kellycoinflip.py

* Update core.py

* Update box.py

* Update discrete.py

* Update multi_binary.py

* Update multi_discrete.py

* Update test_determinism.py

* Update test_determinism.py

* Update test_determinism.py

* Update core.py

* Update box.py

* Update test_determinism.py

* Update core.py

* Update box.py

* Update discrete.py

* Update multi_binary.py

* Update multi_discrete.py

* Update dict_space.py

* Update tuple_space.py

* Update core.py

* Create space.py

* Update __init__.py

* Update __init__.py

* Update box.py

* Update dict_space.py

* Update discrete.py

* Update dict_space.py

* Update multi_binary.py

* Update multi_discrete.py

* Update tuple_space.py

* Update discrete.py

* Update box.py

* Update dict_space.py

* Update multi_binary.py

* Update multi_discrete.py

* Update tuple_space.py

* Update multi_discrete.py

* Update multi_binary.py

* Update dict_space.py

* Update box.py

* Update test_determinism.py

* Update kellycoinflip.py

* Update space.py
2019-01-30 13:39:55 -08:00
Antonin RAFFIN
cdd212db4b Fix autodetect dtype warnings (#1234)
* Fix autodetect dtype warnings

* Use warnings module for gym logger

* Fix warning in tests
2018-11-28 17:27:27 -08:00
Antonin RAFFIN
2234f94e7b Add missing __eq__ and __repr__ methods (#1178)
* Add missing equality + repr methods

* Update gym.spaces tests
2018-09-24 11:11:03 -07:00
Alok Singh
6332d4f113 rm unnecessary __contains__ duplicate code (#1147)
`contains` really should not exist when it does exactly what the builtin
magic method `__contains__` was meant for, but that would break backward
compatibility.
2018-08-28 10:51:28 -07:00
Alok Singh
422c9c7bb3 Add __contains__ to spaces (#1111)
* Add __contains__ to spaces

Allows us to write expressions like `if x in env.action_space`.

* Update multi_discrete.py
2018-08-27 15:30:47 -07:00
tswr
f0f5e85aa1 Fixing a typo in box.py docstring (#922) 2018-03-07 14:09:12 +01:00
John Schulman
c21f09fb28 fix circular import (py2) by not importing spaces (#858) 2018-02-02 23:01:45 -08:00
John Schulman
4c460ba6c8 Cleanup, removal of unmaintained code (#836)
* 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
2018-01-25 18:20:14 -08:00
Rafael Cosman
f254dd197e adds example usage to spaces (#173) 2016-06-11 23:10:58 -07:00
Greg Brockman
8a535ca6f2 Switch to a global PRNG for action/observation spaces (#144)
cf 58e6aa95e5 (commitcomment-17669277)
2016-05-30 18:07:59 -07:00
Greg Brockman
58e6aa95e5 [WIP] add support for seeding environments (#135)
* 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
2016-05-29 09:07:09 -07:00
Greg Brockman
e8f2980603 Initial release. Hello world :). 2016-04-27 08:00:58 -07:00