def start_simulation(initial_data, verbose=True): enable_contact_tracing = bool(initial_data['contact_tracing']) # Enable contact tracing total_agents = int(initial_data['total_agents']) # Number of Agents initially_infected_agents = int(initial_data['infected_agents']) # Number of initially infected agents initially_healthy_agents = int(total_agents - initially_infected_agents) # Number of initially healthy agents office_capacity = int(initial_data['office_capacity']) # Capacity of agents per office house_capacity = int(initial_data['home_capacity']) # Capacity of agents per house mortality_rate = float(initial_data['mortality_rate']) # Mortality rate total_days_sick = int(initial_data['sick_days']) # Number of days sick days_until_symptoms = int(initial_data['free_symptoms_days']) # Number of days until symptoms total_days_simulated = int(initial_data['total_days']) # Number of days of simulation risk_infection_home = float(initial_data['risk_home']) # Risk of infection at home risk_infection_work = float(initial_data['risk_work']) # Risk of infection at work verbose = bool(verbose) # If we want printing during simulator run simulation_id = initial_data['simulation_id'].replace("-", "_") locations, agent_array = initialize(total_agents, initially_infected_agents, initially_healthy_agents, office_capacity, house_capacity, mortality_rate, total_days_sick, days_until_symptoms, total_days_simulated, risk_infection_home, risk_infection_work) saver = Saver(verbose, simulation_id) simulator = Simulator(enable_contact_tracing, locations, agent_array, saver, simulation_id) saver.initialize_db(locations, agent_array) while simulator.current_day <= total_days_simulated: simulator.step() return 200, saver.overview