import datetime
from typing import NamedTuple, Optional


class PPOConfig(NamedTuple):
    NNShape: list = [256, 256, 128]
    actorLR: float = 2e-3  # Actor Net Learning
    criticLR: float = 2e-3  # Critic Net Learning
    gamma: float = 0.99
    lmbda: float = 0.95
    clipRange: float = 0.20
    entropyWeight: float = 1e-2
    trainEpochs: int = 8
    saveDir: str = "PPO-Model/" + datetime.datetime.now().strftime("%m%d-%H%M") + "/"
    loadModelDir: Optional[str] = None