Exemple #1
0
 def make_meters_hist(cls, readings_hist_lst, equip_dtime, equip_dtime_sec,
                      atmo_temp):
     # group by equips and create list of records for meter_hist
     readings_hist_lst = sorted(readings_hist_lst, key=lambda r: r.meter_id)
     meters_recs_dict = {
         meter_id: list(recs)
         for meter_id, recs in itertools.groupby(readings_hist_lst,
                                                 key=lambda r: r.meter_id)
     }
     meters_hist_lst = []
     for m_id, recs in meters_recs_dict.items():
         if not len(recs):
             logger.error(
                 f'recs len =0 for m_id={m_id}, len(readings_hist_lst)={len(readings_hist_lst)}'
             )
         temperature = mean([r.temperature for r in recs])
         group_temp = None
         status_temp, status_atmo, status_group = cls.get_reading_statuses(
             m_id, temperature, atmo_temp)
         meters_hist_lst.append(
             Db.HistMetersRecord(m_id, equip_dtime, equip_dtime_sec,
                                 temperature, atmo_temp, group_temp,
                                 status_temp, status_atmo, status_group))
     logger.debug(f'len(meter_hist_lst)={len(meters_hist_lst)}')
     return meters_hist_lst