quartermaster-env / models.py
saketh1201's picture
Upload folder using huggingface_hub
a59ad4e verified
Raw
History Blame Contribute Delete
1.38 kB
from __future__ import annotations
import json
from openenv.core.env_server import Action, Observation, State
from typing import Literal, Dict, List, Optional
from pydantic import field_validator
class InventoryAction(Action):
buy_quantities : Dict[str, int] = {}
delivery_method : Literal["slow", "medium", "fast"] = "slow"
liquidate : Dict[str, int] = {}
price_multipliers : Dict[str, float] = {} # product -> 0.5 to 1.5 (default 1.0)
@field_validator("buy_quantities", "liquidate", "price_multipliers", mode="before")
@classmethod
def parse_dict_strings(cls, v):
if isinstance(v, str):
return json.loads(v)
return v
class InventoryObservation(Observation):
current_day : int
total_cash : float
day_profit : float
total_profit : float
demand_today : Dict[str, int] # product -> units demanded today
updated_inventory : Dict[str, List[List[Optional[int]]]] # product -> [[qty, days_left], ...] per batch
remaining_capacity : Dict[str, int] # product -> remaining warehouse space
updated_events : Dict[str, int]
updated_deliveries : List[Dict[str, List[int]]] # product name, (quantity of product, days to arrival)
class InventoryState(State):
episode_id : str
current_day : int
cash : float
inventory : Dict[str, int]