@@ 394-420 (lines=27) @@ | ||
391 | maximum = None |
|
392 | counter = 0 |
|
393 | current_datetime_utc = start_datetime_utc.replace(minute=0, second=0, microsecond=0, tzinfo=None) |
|
394 | while current_datetime_utc <= end_datetime_utc: |
|
395 | sub_total = Decimal(0.0) |
|
396 | sub_maximum = None |
|
397 | sub_counter = 0 |
|
398 | for row in rows_hourly: |
|
399 | if current_datetime_utc <= row[0] < current_datetime_utc + \ |
|
400 | timedelta(minutes=config.minutes_to_count): |
|
401 | sub_total += row[1] |
|
402 | if sub_maximum is None: |
|
403 | sub_maximum = row[1] |
|
404 | elif sub_maximum < row[1]: |
|
405 | sub_maximum = row[1] |
|
406 | sub_counter += 1 |
|
407 | ||
408 | sub_average = (sub_total / sub_counter) if sub_counter > 0 else None |
|
409 | result_rows_hourly.append((current_datetime_utc, sub_average, sub_maximum)) |
|
410 | ||
411 | total += sub_total |
|
412 | counter += sub_counter |
|
413 | if sub_maximum is None: |
|
414 | pass |
|
415 | elif maximum is None: |
|
416 | maximum = sub_maximum |
|
417 | elif maximum < sub_maximum: |
|
418 | maximum = sub_maximum |
|
419 | ||
420 | current_datetime_utc += timedelta(minutes=config.minutes_to_count) |
|
421 | ||
422 | average = total / counter if counter > 0 else None |
|
423 | return result_rows_hourly, average, maximum |
|
@@ 435-458 (lines=24) @@ | ||
432 | # calculate the start datetime in utc of the first day in local |
|
433 | start_datetime_local = start_datetime_utc + timedelta(hours=int(config.utc_offset[1:3])) |
|
434 | current_datetime_utc = start_datetime_local.replace(hour=0) - timedelta(hours=int(config.utc_offset[1:3])) |
|
435 | while current_datetime_utc <= end_datetime_utc: |
|
436 | sub_total = Decimal(0.0) |
|
437 | sub_maximum = None |
|
438 | sub_counter = 0 |
|
439 | for row in rows_hourly: |
|
440 | if current_datetime_utc <= row[0] < current_datetime_utc + timedelta(days=1): |
|
441 | sub_total += row[1] |
|
442 | if sub_maximum is None: |
|
443 | sub_maximum = row[1] |
|
444 | elif sub_maximum < row[1]: |
|
445 | sub_maximum = row[1] |
|
446 | sub_counter += 1 |
|
447 | ||
448 | sub_average = (sub_total / sub_counter) if sub_counter > 0 else None |
|
449 | result_rows_daily.append((current_datetime_utc, sub_average, sub_maximum)) |
|
450 | total += sub_total |
|
451 | counter += sub_counter |
|
452 | if sub_maximum is None: |
|
453 | pass |
|
454 | elif maximum is None: |
|
455 | maximum = sub_maximum |
|
456 | elif maximum < sub_maximum: |
|
457 | maximum = sub_maximum |
|
458 | current_datetime_utc += timedelta(days=1) |
|
459 | ||
460 | return result_rows_daily, average, maximum |
|
461 |