coopihc.base.State.State
- class State(**kwargs)[source]
- Bases: - dict- The container class for States. State subclasses dictionnary and adds a few methods: - reset(dic = reset_dic), which passes reset values to the StateElements it holds and triggers their reset method 
- filter(mode=mode, filterdict=filterdict), which filters out the state to extract some information. 
- serialize(), which transforms the state into a format that can be serializable, e.g. to send as a JSON format. 
 - Initializing a State is straightforward: - state = State() substate = State() substate["x1"] = discrete_array_element(init=1, low=1, high=3) substate["x3"] = array_element( init=1.5 * numpy.ones((2, 2)), low=numpy.ones((2, 2)), high=2 * numpy.ones((2, 2)) ) substate2 = State() substate2["y1"] = discrete_array_element(init=1, low=1, high=3) state["sub1"] = substate state["sub2"] = substate2 - Methods - equality checks that also checks for spaces (hard). - Extract some part of the state information - Create a new dictionary with keys from iterable and values set to value. - Return the value for key if key is in the dictionary, else default. - If key is not found, d is returned if given, otherwise KeyError is raised - Remove and return a (key, value) pair as a 2-tuple. - Initialize the state. - Makes the state serializable. - Insert key with a value of default if key is not in the dictionary. - If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k] - clear() None. Remove all items from D.
 - copy() a shallow copy of D
 - equals(other, mode='hard')[source]
- equality checks that also checks for spaces (hard). - _example_state = example_game_state() obs = { "game_info": {"turn_index": numpy.array(0), "round_index": numpy.array(0)}, "task_state": {"position": numpy.array(2), "targets": numpy.array([0, 1])}, "user_action": {"action": numpy.array(0)}, "assistant_action": {"action": numpy.array(2)}, } del _example_state["user_state"] del _example_state["assistant_state"] assert not _example_state.equals(obs, mode="hard") 
 - filter(mode='array', filterdict=None)[source]
- Extract some part of the state information - An example for filterdict’s structure is as follows: - filterdict = dict( { "sub1": dict({"x1": 0, "x3": slice(0, 1)}), "sub2": dict({"y1": 0}), } ) - This will filter out - the first component (index 0) for subsubstate x1 in substate sub1, 
- the first and second components for subsubstate x3 in substate sub1, 
- the first component for subsubstate y1 in substate sub2. 
 - Example usage: - # Filter out spaces f_state = state.filter(mode="space", filterdict=filterdict) # Filter out as arrays f_state = state.filter(mode="array", filterdict=filterdict) # Filter out as StateElement f_state = state.filter(mode="stateelement", filterdict=filterdict) # Get spaces f_state = state.filter(mode="space") # Get arrays f_state = state.filter(mode="array") # Get Gym Compatible arrays f_state = state.filter(mode="array-Gym") - Parameters
- mode (str, optional) – “array” or “spaces” or “stateelement”, defaults to “array”. If “stateelement”, returns a dictionnary with the selected stateelements. If “spaces”, returns the same dictionnary, but with only the spaces (no array information). If “array”, returns the same dictionnary, but with only the value arrays (no space information). 
- filterdict (dictionnary, optional) – the dictionnary that indicates which components to filter out, defaults to None 
 
- Returns
- The dictionnary with the filtered state 
- Return type
- dictionnary 
 
 - fromkeys(value=None, /)
- Create a new dictionary with keys from iterable and values set to value. 
 - get(key, default=None, /)
- Return the value for key if key is in the dictionary, else default. 
 - items() a set-like object providing a view on D's items
 - keys() a set-like object providing a view on D's keys
 - pop(k[, d]) v, remove specified key and return the corresponding value.
- If key is not found, d is returned if given, otherwise KeyError is raised 
 - popitem()
- Remove and return a (key, value) pair as a 2-tuple. - Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty. 
 - reset(dic={})[source]
- Initialize the state. See StateElement - Example usage: - # Normal reset state.reset() # Forced reset reset_dic = { "sub1": {"x1": 3}, "sub2": {"y1": 3}, } state.reset(dic=reset_dic) 
 - serialize()[source]
- Makes the state serializable. - state.serialize() - Returns
- serializable dictionnary 
- Return type
- dict 
 
 - setdefault(key, default=None, /)
- Insert key with a value of default if key is not in the dictionary. - Return the value for key if key is in the dictionary, else default. 
 - update([E, ]**F) None. Update D from dict/iterable E and F.
- If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k] 
 - values() an object providing a view on D's values