Code Duplication    Length = 20-22 lines in 2 locations

utilities.py 2 locations

@@ 640-661 (lines=22) @@
637
        stdev = None
638
        variance = None
639
        current_datetime_utc = start_datetime_utc.replace(minute=0, second=0, microsecond=0, tzinfo=None)
640
        while current_datetime_utc <= end_datetime_utc:
641
            sub_total = Decimal(0.0)
642
            for row in rows_hourly:
643
                if current_datetime_utc <= row[0] < current_datetime_utc + \
644
                        timedelta(minutes=config.minutes_to_count):
645
                    sub_total += row[1]
646
647
            result_rows_hourly.append((current_datetime_utc, sub_total))
648
            sample_data.append(sub_total)
649
650
            counter += 1
651
            if minimum is None:
652
                minimum = sub_total
653
            elif minimum > sub_total:
654
                minimum = sub_total
655
656
            if maximum is None:
657
                maximum = sub_total
658
            elif maximum < sub_total:
659
                maximum = sub_total
660
661
            current_datetime_utc += timedelta(minutes=config.minutes_to_count)
662
663
        if len(sample_data) > 1:
664
            mean = statistics.mean(sample_data)
@@ 686-705 (lines=20) @@
683
        # calculate the start datetime in utc of the first day in local
684
        start_datetime_local = start_datetime_utc + timedelta(hours=int(config.utc_offset[1:3]))
685
        current_datetime_utc = start_datetime_local.replace(hour=0) - timedelta(hours=int(config.utc_offset[1:3]))
686
        while current_datetime_utc <= end_datetime_utc:
687
            sub_total = Decimal(0.0)
688
            for row in rows_hourly:
689
                if current_datetime_utc <= row[0] < current_datetime_utc + timedelta(days=1):
690
                    sub_total += row[1]
691
692
            result_rows_daily.append((current_datetime_utc, sub_total))
693
            sample_data.append(sub_total)
694
695
            counter += 1
696
            if minimum is None:
697
                minimum = sub_total
698
            elif minimum > sub_total:
699
                minimum = sub_total
700
701
            if maximum is None:
702
                maximum = sub_total
703
            elif maximum < sub_total:
704
                maximum = sub_total
705
            current_datetime_utc += timedelta(days=1)
706
707
        if len(sample_data) > 1:
708
            mean = statistics.mean(sample_data)