textworld.render¶
-
class
textworld.render.render.
GraphItem
(type, name)[source]¶ Bases:
object
-
get_max_depth
()[source]¶ Returns the maximum nest depth of this plus all children. A container with no items has 1 depth, a container containing one item has 2 depth, a container containing a container which contains an item has 3 depth, and so on. :return: maximum nest depth
-
property
infos
¶
-
-
textworld.render.render.
get_webdriver
(path=None)[source]¶ Get the driver and options objects. :param path: path to browser binary. :return: driver
-
textworld.render.render.
load_state
(world, game_infos=None, action=None, format='png', limit_player_view=False)[source]¶ Generates serialization of game state.
- Parameters
world (
World
) – The current state of the world to visualize.game_infos (
Optional
[Dict
[str
,EntityInfo
]]) – The mapping needed to get objects names.action (
Optional
[Action
]) – If provided, highlight the world changes made by that action.format (
str
) – The graph output format (gv, svg, png…)limit_player_view (
bool
) – Whether to limit the player’s view (defaults to false)
- Return type
dict
- Returns
The graph generated from this World
-
textworld.render.render.
load_state_from_game_state
(game_state, format='png', limit_player_view=False)[source]¶ Generates serialization of game state.
- Parameters
game_state (
GameState
) – The current game state to visualize.format (
str
) – The graph output format (png, svg, pdf, …)limit_player_view (
bool
) – Whether to limit the player’s view. Default: False.
- Return type
dict
- Returns
The graph generated from this World
-
textworld.render.render.
take_screenshot
(url, id='world')[source]¶ Takes a screenshot of DOM element given its id. :type url:
str
:param url: URL of webpage to open headlessly. :type id:str
:param id: ID of DOM element. :return: Image object.
-
textworld.render.render.
visualize
(world, interactive=False)[source]¶ Show the current state of the world. :type world:
Union
[Game
,State
,GameState
,World
] :param world: Object representing a game state to be visualized. :type interactive:bool
:param interactive: Whether or not to visualize the state in the browser. :return: Image object of the visualization.
-
textworld.render.render.
which
(program)[source]¶ helper to see if a program is in PATH :param program: name of program :return: path of program or None
Creates server for streamed game state
-
class
textworld.render.serve.
Server
(game_state, port)[source]¶ Bases:
object
Visualization server. Uses Server-sent Events to update game_state for visualization.
Note: Flask routes are defined in app.add_url_rule in order to call
self
in routes. :type game_state:dict
:param game_state: game state returned from load_state_from_game_state :type port:int
:param port: port to run visualization on-
gen
()[source]¶ Our generator for listening for updating state. We poll for results to return us something. If nothing is returned then we just pass and keep polling. :return: yields event-stream parsed data.
-
index
()[source]¶ Index route (“/”). Returns HTML template processed by handlebars. :rtype:
str
:return: Flask response object
-
static
listen
(conn, results)[source]¶ Listener for updates. Runs on separate thread. :type conn:
Connection
:param conn: child connection from multiprocessing.Pipe. :type results:Queue
:param results: thread-safe queue for results.
-
-
class
textworld.render.serve.
ServerSentEvent
(data)[source]¶ Bases:
object
Object helper to parse dict into SSE data. :type data:
any
:param data: data to pass to SSE
-
class
textworld.render.serve.
SupressStdStreams
[source]¶ Bases:
object
for surpressing std.out streams
-
class
textworld.render.serve.
VisualizationService
(game_state, open_automatically)[source]¶ Bases:
object
Server for visualization.
We instantiate a new process for our flask server, so our game can send updates to the server. The server instantiates new gevent Queues for every connection.
-
start
(parent_thread, port)[source]¶ Start visualization server on a new process. :type parent_thread:
Thread
:param parent_thread: the parent thread that called start. :type port:int
:param port: Port to run visualization on.- Return type
None
-
start_server
(game_state, port, child_conn)[source]¶ function for starting new server on new process. :type game_state:
dict
:param game_state: initial game state from load :type port:int
:param port: port to run server :type child_conn:Connection
:param child_conn: child connection from multiprocessing.Pipe
-