Incoerência quando se trata do horário fora de pico
Em measurements/views.py:917, a verificação se a hora está FORA de pico é assim:
if current.hour in range(0, 17) or current.hour in range(21, 23):
# range(0, 17) = {0, 1, ..., 15, 16}
# range(21, 23) = {21, 22}
De maneira geral, range(a, b) = {a, a+1, ..., b-1}
.
Ou seja, o horário de pico, de acordo com o que está em código, seria algo como
range(17, 21) = {17, 18, 19, 20}
. 23h também entraria como horário de pico porque
o segundo range
vai até às 22h59.
O correto seria
if current.hour in range(0, 18) or current.hour in range(21, 24):
# OFF PEAK HOURS = {0, 1, ..., 17} + {21, 22, 23}
Edited by Yudi Yamane