Source code for tianshou.highlevel.world

import os
from dataclasses import dataclass
from typing import TYPE_CHECKING, Optional

if TYPE_CHECKING:
    from tianshou.algorithm import Algorithm
    from tianshou.data import BaseCollector
    from tianshou.highlevel.env import Environments
    from tianshou.highlevel.logger import TLogger
    from tianshou.trainer import Trainer


[docs] @dataclass(kw_only=True) class World: """Container for instances and configuration items that are relevant to an experiment.""" envs: "Environments" algorithm: "Algorithm" training_collector: Optional["BaseCollector"] = None test_collector: Optional["BaseCollector"] = None logger: "TLogger" persist_directory: str restore_directory: str | None trainer: Optional["Trainer"] = None
[docs] def persist_path(self, filename: str) -> str: return os.path.abspath(os.path.join(self.persist_directory, filename))
[docs] def restore_path(self, filename: str) -> str: if self.restore_directory is None: raise ValueError( "Path cannot be formed because no directory for restoration was provided", ) return os.path.join(self.restore_directory, filename)