#!/usr/bin/env python3 from typing import List import bootstrap import config import account from person import Person import result_summarizer import returns_and_expenses as rai import simulation import simulation_params import trials from type.money import Money args = config.add_commandline_args( 'Retire!', 'Args that drive the retirement simulator', ) args.add_argument( '--num_trials', '-n', type=int, default=1, help='How many simulations to run' ) args.add_argument( '--verbosity', '-v', type=int, choices=range(0, 3), default=1, help='How verbose should I be?', ) # This defines the set of account and their initial balances. accounts: List[account.Account] = [ # Your accounts here.... ] @bootstrap.initialize def main() -> None: params = simulation_params.DEFAULT_SIMULATION_PARAMS params.initial_account_states = accounts params.returns_and_expenses = rai.GaussianRae() #rai.HistoricalRaE() if config.config['num_trials'] > 1: with simulation.ReportColorizer(): print(params) results = trials.run_multiple_trials( params=params, num_trials=config.config['num_trials'] ) print result_summarizer.summarize_results(results) else: sim = simulation.Simulation(params) results = sim.simulate( simulation.Verbosity(config.config['verbosity']) ) if not results.success: print("Unsuccessful") return 1 return 0 if __name__ == '__main__': main()