def setUp(self): logging.basicConfig(level = logging.INFO) traj = Trajectory('Test') traj.v_storage_service = LazyStorageService() large_amount = 111 for irun in range(large_amount): name = 'There.Are.Many.Parameters.Like.Me' + str(irun) traj.f_add_parameter(name, irun) traj.f_add_parameter('TestExplorer', 1) traj.v_fast_access=False traj.f_explore({traj.TestExplorer.v_full_name:[1,2,3,4,5]}) traj.v_fast_access=True self.traj = traj self.n = 1 self.single_run = self.traj._make_single_run(self.n) self.assertTrue(len(self.single_run)==1)
traj.f_add_parameter_group('spaceballs.characters') # Now our shortcuts no longer work, since we have two character groups! try: traj.characters except NotUniqueNodeError as e: print 'Damn it, there are two characters groups in the trajectory: %s' % e._msg # But if we are more specific we have again a unique finding characters = traj.starwars.characters # Now let's see what fast access is: print 'The name of the actor playing Luke is %s.' % traj.luke_skywalker # And now what happens if you forbid it traj.v_fast_access=False print 'The object found for luke_skywalker is `%s`.' % str(traj.luke_skywalker) #Let's store the trajectory: traj.f_store() # That was easy, let's assume we already completed a simulation and now we add a veeeery large # result that we want to store to disk immediately and than empty it traj.f_add_result('starwars.gross_income_of_film', amount=10.1 ** 11, currency='$$$', comment='George Lucas is rich, dude!') # This is a large number, we better store it and than free the memory: traj.f_store_item('gross_income_of_film') traj.gross_income_of_film.f_empty() # Now lets reload the trajectory