# Python PettingZoo API Documentation
# mlagents\_envs.envs.pettingzoo\_env\_factory
## PettingZooEnvFactory Objects
```python
class PettingZooEnvFactory()
```
#### env
```python
| env(seed: Optional[int] = None, **kwargs: Union[List, int, bool, None]) -> UnityAECEnv
```
Creates the environment with env_id from unity's default_registry and wraps it in a UnityToPettingZooWrapper
**Arguments**:
- `seed`: The seed for the action spaces of the agents.
- `kwargs`: Any argument accepted by `UnityEnvironment`class except file_name
# mlagents\_envs.envs.unity\_aec\_env
## UnityAECEnv Objects
```python
class UnityAECEnv(UnityPettingzooBaseEnv, AECEnv)
```
Unity AEC (PettingZoo) environment wrapper.
#### \_\_init\_\_
```python
| __init__(env: BaseEnv, seed: Optional[int] = None)
```
Initializes a Unity AEC environment wrapper.
**Arguments**:
- `env`: The UnityEnvironment that is being wrapped.
- `seed`: The seed for the action spaces of the agents.
#### step
```python
| step(action: Any) -> None
```
Sets the action of the active agent and get the observation, reward, termination, truncation and info of the next agent.
**Arguments**:
- `action`: The action for the active agent
#### observe
```python
| observe(agent_id)
```
Returns the observation an agent currently can make. `last()` calls this function.
#### last
```python
| last(observe=True)
```
returns observation, cumulative reward, termination, truncation, info for the current agent (specified by self.agent_selection)
# mlagents\_envs.envs.unity\_parallel\_env
## UnityParallelEnv Objects
```python
class UnityParallelEnv(UnityPettingzooBaseEnv, ParallelEnv)
```
Unity Parallel (PettingZoo) environment wrapper.
#### \_\_init\_\_
```python
| __init__(env: BaseEnv, seed: Optional[int] = None)
```
Initializes a Unity Parallel environment wrapper.
**Arguments**:
- `env`: The UnityEnvironment that is being wrapped.
- `seed`: The seed for the action spaces of the agents.
#### reset
```python
| reset() -> Dict[str, Any]
```
Resets the environment.
# mlagents\_envs.envs.unity\_pettingzoo\_base\_env
## UnityPettingzooBaseEnv Objects
```python
class UnityPettingzooBaseEnv()
```
Unity Petting Zoo base environment.
#### observation\_spaces
```python
| @property
| observation_spaces() -> Dict[str, spaces.Space]
```
Return the observation spaces of all the agents.
#### observation\_space
```python
| observation_space(agent: str) -> Optional[spaces.Space]
```
The observation space of the current agent.
#### action\_spaces
```python
| @property
| action_spaces() -> Dict[str, spaces.Space]
```
Return the action spaces of all the agents.
#### action\_space
```python
| action_space(agent: str) -> Optional[spaces.Space]
```
The action space of the current agent.
#### side\_channel
```python
| @property
| side_channel() -> Dict[str, Any]
```
The side channels of the environment. You can access the side channels of an environment with `env.side_channel[]`.
#### reset
```python
| reset(seed: Optional[int] = None, options: Optional[Dict] = None) -> Any
```
Resets the environment.
#### render
```python
| render()
```
NOT SUPPORTED.
Renders the environment as specified by self.render_mode, if supported.
Render mode can be `human` to display a window. Other render modes in the default environments are `'rgb_array'` which returns a numpy array and is supported by all environments outside of classic, and `'ansi'` which returns the strings printed (specific to classic environments).
#### close
```python
| close() -> None
```
Close the environment.