from agent_data import grade_data from dataclasses import dataclass import numpy as np from typing import List,Tuple,Dict @dataclass class AgentSetup: id:int grade:str speed:float radius:float def AgentConfig()->Tuple[List[AgentSetup],Dict[str,int]]: agent_id = 1 pop_count = {} all_agents = [] for key in grade_data.keys(): grade = grade_data[key] #pop_count.append(grade["Pop Current"]) pop_count[key] = grade["Pop Current"] for _ in range(grade["Pop Current"]): rng = np.random.default_rng() agent = AgentSetup( id=agent_id, grade=key, speed=max(0.1,(rng.normal( grade["Speed Mean"], grade["Speed Std Dev"] ))), radius=grade["Radius"] ) all_agents.append(agent) agent_id +=1 return all_agents,pop_count