- New
AsyncConnection
class that allows users to make asynchronous requests viaasyncio
. - Add optional
metadata
argument tocreate_secure_channel_and_connect
. - Expose error status details in
DmEnvRpcError
exception. - Improvements and fixes related to type hints, in particular hints relating to NumPy.
- Add utility functions for packing/unpacking custom request/responses.
- Remove support for Python 3.7, now that it has reached EOL.
- Add optional
strict
argument to dictionary flattening. - Relax flattening of create/join world settings, so that users can pass already flattened settings.
- Support for nested create/join world settings in
dm_env_adaptor
helper functions. - Support scalar min/max bounds for array actions in compliance tests.
- Allow
DmEnvAdaptor
to be closable multiple times. - Cleaned up various type hints, specifically removing deprecated NumPy type aliases.
- Bug fixes.
- Pass all additional keyword arguments through to
DmEnvAdaptor
when using create/join helper functions. - Bug fixes and cleanup.
- Fixed Catch human agent example, raised in this GitHub issue.
- Fixed bug when attempting to pack an empty array as a particular dtype.
- Minor cleanup.
- Removed support for Python 3.6
- Updated compliance tests to support wider range of environments.
- Fixed bug with packing large
np.uint64
scalars. - Various PyType fixes.
WARNING: This release removes support for some previously deprecated fields.
This may mean that scalar bounds for older environments are no longer readable.
Users are advised to either revert to an older version, or re-build their
environments to use the newer, multi-dimensional TensorSpec.Value
fields.
- Removed scalar
TensorSpec.Value
fields, which were marked as deprecated in v1.0.1. These have been superseded by array variants, which can be used for scalar bounds by creating a single element array. - Removed deprecated Property request/responses. These are now provided through the optional Property extension.
- Refactored
Connection
to expose message packing utilities.
tensor_spec.bounds()
no longer broadcasts scalar bounds.- Fixed bug where
reward
anddiscount
were inadvertently included in the observations when usingdm_env_adaptor
, without explicitly requesting these as observations.
- Better support for string specs in
dm_env_adaptor
. - Improved Python type annotations.
- Check that the server has returned the correct response in
dm_env_rpc.Connection
class. - Added
create_world
helper function todm_env_adaptor
.
- Better support for variable sized tensors.
- Support for packing/unpacking tensors that use
Any
protobuf messages. - Bug fixes.
- Support for property descriptions.
- New utility functions for creating a Connection instance from a server address.
- DmEnvAdaptor helper functions for creating and joining worlds.
- Additional compliance tests for resetting.
- Support for optional DmEnvAdaptor extensions.
- Removed portpicker dependency, instead relying on gRPC port picking functionality.
- Changed property extension API to be more amenable to being used as an extension object for DmEnvAdaptor.
- Explicitly support nested tensors by the use of a period character in the
TensorSpec
name to indicate a level of nesting. Updateddm_env
adaptor to flatten/unflattten actions and observations. - Increased minimum Python version to 3.6.
- Moved property request/responses to its own extension. This supersedes the previous property requests, which have been marked as deprecated. These requests will be removed in a future version of dm_env_rpc.
- Speed improvements for packing and unpacking byte arrays in Python.
- Support for per-element min/max values. This supersedes the existing scalar fields, which have been marked as deprecated. These fields will be be removed in a future version of dm_env_rpc.
- Initial set of compliance tests that environment authors can use to better ensure their implementations adhere to the protocol specification.
- Support for
dm_env
DiscreteArray specs.
dm_env_rpc
EnvironmentResponse
errors in Python are now raised as a custom,DmEnvRpcError
exception.
- Initial release.
- Updated minimum requirements for Python and protobuf.
- Initial beta release