class MetricsUpdater(object): def __init__(self): self.jogoSlider = JogoSlider() self.metricsdbslider = MetricsDBSlider() def update_db_if_needed(self): self.total_jogos = self.jogoSlider.get_total_jogos() self.last_n_metrics_record_updated = self.metricsdbslider.get_total_records() n_missing_metrics_records = self.total_jogos - self.last_n_metrics_record_updated if n_missing_metrics_records < 0: error_msg = 'Inconsistent metricsdb size. It is greater than concursos. Program execution cannot continue.' raise IndexError, error_msg elif n_missing_metrics_records == 0: # nothing to do! Sizes match. return print 'Need to update %d hist-freq concursos (from %d to %d)' %(n_missing_metrics_records, self.last_n_histfreq_updated, self.total_jogos) self.update_histfreqs_from_last_updated() def update_metricsdb_from_last_updated(self): metricsdbs_to_update = [] for nDoConc in range(self.last_n_metrics_record_updated + 1, self.total_jogos + 1): #jogo = self.jogoSlider.get_jogo_by_nDoConc(nDoConc) metricsdb = MetricsDB() metricsdb.get_metrics_for(nDoConc) metricsdbs_to_update.append(metricsdb) self.metricsdbslider.update_histfreqs(metricsdbs_to_update)