Envs¶
- class textworld.gym.envs.textworld.TextworldGymEnv(gamefiles, request_infos=None, max_episode_steps=None, **kwargs)[source]¶
Bases:
TextworldBatchGymEnv
Environment for playing text-based games.
- Parameters:
gamefiles (
List
[str
]) – Paths of every game composing the pool (*.ulx|*.z[1-8]
).request_infos (
Optional
[EnvInfos
]) –For customizing the information returned by this environment (see
textworld.EnvInfos
for the list of available information).Warning
Only supported for TextWorld games (i.e., that have a corresponding
*.json
file).max_episode_steps (
Optional
[int
]) – Number of steps allocated to play each game. Once exhausted, the game is done.
- reset()[source]¶
Resets the text-based environment.
Resetting this environment means starting the next game in the pool.
- Return type:
Tuple
[str
,Dict
[str
,Any
]]- Returns:
A tuple (observation, info) where
observation: text observed in the initial state;
infos: additional information as requested.
- step(command)[source]¶
Runs a command in the text-based environment.
- Parameters:
command – Text command to send to the game interpreter.
- Return type:
Tuple
[str
,Dict
[str
,Any
]]- Returns:
A tuple (observation, score, done, info) where
observation: text observed in the new state;
score: total number of points accumulated so far;
done: whether the game is finished or not;
infos: additional information as requested.
- class textworld.gym.envs.textworld_batch.TextworldBatchGymEnv(gamefiles, request_infos=None, batch_size=1, asynchronous=True, auto_reset=False, max_episode_steps=None, wrappers=[])[source]¶
Bases:
object
Environment for playing text-based games in batch.
- Parameters:
gamefiles (
List
[str
]) – Paths of every game composing the pool (*.ulx|*.z[1-8]|*.json
).request_infos (
Optional
[EnvInfos
]) –For customizing the information returned by this environment (see
textworld.EnvInfos
for the list of available information).Warning
Only supported for TextWorld games (i.e., that have a corresponding
*.json
file).batch_size (
int
) –If provided, it indicates the number of games to play at the same time. By default, a single game is played at once.
Warning
When
batch_size
is provided (even for batch_size=1),env.step
expects a list of commands as input and outputs a list of states.env.reset
also outputs a list of states.asynchronous (
bool
) – IfTrue
, wraps the environments in anAsyncBatchEnv
(which usesmultiprocessing
to run the environments in parallel). IfFalse
, wraps the environments in aSyncBatchEnv
. Default:True
.auto_reset (
bool
) – IfTrue
, each game independently resets once it is done (i.e., reset happens on the nextenv.step
call). Otherwise, once a game is done, subsequent calls toenv.step
won’t have any effects.max_episode_steps (
Optional
[int
]) – Number of steps allocated to play each game. Once exhausted, the game is done.
- render(mode='human')[source]¶
Renders the current state of each environment in the batch.
Each rendering is composed of the previous text command (if there’s one) and the text describing the current observation.
- Parameters:
mode (
str
) –Controls where and how the text is rendered. Supported modes are:
human: Display text to the current display or terminal and return nothing.
ansi: Return a
StringIO
containing a terminal-style text representation. The text can include newlines and ANSI escape sequences (e.g. for colors).text: Return a string (
str
) containing the text without any ANSI escape sequences.
- Return type:
Union
[StringIO
,str
,None
]- Returns:
Depending on the
mode
, this method returns either nothing, a string, or aStringIO
object.
- reset()[source]¶
Resets the text-based environment.
Resetting this environment means starting the next game in the pool.
- Return type:
Tuple
[List
[str
],Dict
[str
,List
[Any
]]]- Returns:
A tuple (observations, infos) where
observation: text observed in the initial state for each game in the batch;
infos: additional information as requested for each game in the batch.
- seed(seed=None)[source]¶
Set the seed for this environment’s random generator(s).
This environment use a random generator to shuffle the order in which the games are played.
- Parameters:
seed (
Optional
[int
]) – Number that will be used to seed the random generators.- Return type:
List
[int
]- Returns:
All the seeds used to set this environment’s random generator(s).
- skip(nb_games=1)[source]¶
Skip games.
- Parameters:
nb_games (
int
) – Number of games to skip.- Return type:
None
- step(commands)[source]¶
Runs a command in each text-based environment of the batch.
- Parameters:
commands – Text command to send to the game interpreter.
- Return type:
Tuple
[List
[str
],List
[float
],List
[bool
],Dict
[str
,List
[Any
]]]- Returns:
A tuple (observations, scores, dones, infos) where
observations: text observed in the new state for each game in the batch;
scores: total number of points accumulated so far for each game in the batch;
dones: whether each game in the batch is finished or not;
infos: additional information as requested for each game in the batch.
- textworld.gym.envs.utils.shuffled_cycle(iterable, rng, nb_loops=-1)[source]¶
Yield each element of
iterable
one by one, then shuffle the elements and start yielding from the start. Stop afternb_loops
loops.- Parameters:
iterable (
Iterable
[Any
]) – Iterable containing the elements to yield.rng (
RandomState
) – Random generator used to shuffle the elements after each loop.nb_loops (
int
) – Number of times to go through all the elements. If set to -1, loop an infinite number of times.
- Return type:
Iterable
[Any
]