@@ -221,43 +221,43 @@ def extract_xml(archive: ZipFile, pun_data: PunData, today: date) -> PunData:
221221 # Estrae l'ora dall'XML
222222 ora = int (prezzi .find ("Ora" ).text ) - 1 # 1..24
223223
224- # Verifica se la data odierna non è successiva ad oggi
225- if dat_date <= today :
226- # Estrae il prezzo PUN dall'XML in un float
227- if (prezzo_xml := prezzi .find ("PUN" )) is not None :
228- prezzo_string = prezzo_xml .text .replace ("." , "" ).replace ("," , "." )
229- prezzo = float (prezzo_string ) / 1000
224+ # Estrae il prezzo PUN dall'XML in un float
225+ if (prezzo_xml := prezzi .find ("PUN" )) is not None :
226+ prezzo_string = prezzo_xml .text .replace ("." , "" ).replace ("," , "." )
227+ prezzo = float (prezzo_string ) / 1000
230228
229+ # Per le medie mensili, considera solo i dati fino ad oggi
230+ if dat_date <= today :
231231 # Estrae la fascia oraria
232232 fascia = get_fascia_for_xml (dat_date , festivo , ora )
233233
234234 # Calcola le statistiche
235235 pun_data .pun [Fascia .MONO ].append (prezzo )
236236 pun_data .pun [fascia ].append (prezzo )
237237
238- # Se odierno, lo salva nel PUN orario
239- if dat_date == today :
240- # Compone l'orario
241- orario_prezzo = datetime_to_packed_string (
242- datetime (
243- year = dat_date .year ,
244- month = dat_date .month ,
245- day = dat_date .day ,
246- hour = ora ,
247- minute = 0 ,
248- second = 0 ,
249- microsecond = 0 ,
250- )
238+ # Per il PUN orario, considera solo oggi e domani
239+ if dat_date >= today :
240+ # Compone l'orario
241+ orario_prezzo = datetime_to_packed_string (
242+ datetime (
243+ year = dat_date .year ,
244+ month = dat_date .month ,
245+ day = dat_date .day ,
246+ hour = ora ,
247+ minute = 0 ,
248+ second = 0 ,
249+ microsecond = 0 ,
251250 )
252- # E salva il prezzo per quell'orario
253- pun_data .pun_orari [orario_prezzo ] = prezzo
254- else :
255- # PUN non valido
256- _LOGGER .warning (
257- "PUN non specificato per %s ad orario: %s." , dat_string , ora
258251 )
252+ # E salva il prezzo per quell'orario
253+ pun_data .pun_orari [orario_prezzo ] = prezzo
254+ else :
255+ # PUN non valido
256+ _LOGGER .warning (
257+ "PUN non specificato per %s ad orario: %s." , dat_string , ora
258+ )
259259
260- # Per oggi e domani estrae i prezzi zonali
260+ # Per i prezzi zonali, considera solo oggi e domani
261261 if dat_date >= today :
262262 # Compone l'orario
263263 orario_prezzo = datetime_to_packed_string (
0 commit comments