@@ -525,9 +525,12 @@ def _update_log_interval(self) -> None:
525525 delta1 .total_seconds () / MINUTE_IN_SECONDS
526526 )
527527 break
528+
528529 if not self ._log_production :
529530 return
531+
530532 address , slot = calc_log_address (address , slot , - 1 )
533+
531534 if (
532535 self ._log_interval_consumption is not None
533536 and self ._last_log_consumption_timestamp is not None
@@ -539,12 +542,14 @@ def _update_log_interval(self) -> None:
539542
540543 if not self ._log_production :
541544 return
545+
542546 # Update interval of production
543547 last_prod_address , last_prod_slot = self ._last_log_reference (
544548 is_consumption = False
545549 )
546550 if last_prod_address is None or last_prod_slot is None :
547551 return
552+
548553 last_prod_timestamp = self ._logs [last_prod_address ][last_prod_slot ].timestamp
549554 address , slot = calc_log_address (last_prod_address , last_prod_slot , - 1 )
550555 while self ._log_exists (address , slot ):
@@ -556,7 +561,9 @@ def _update_log_interval(self) -> None:
556561 delta2 .total_seconds () / MINUTE_IN_SECONDS
557562 )
558563 break
564+
559565 address , slot = calc_log_address (address , slot , - 1 )
566+
560567 if (
561568 self ._log_interval_production is not None
562569 and self ._last_log_production_timestamp is not None
@@ -600,6 +607,18 @@ def _update_last_consumption_log_reference(
600607 self ._last_log_consumption_address = address
601608 self ._last_log_consumption_slot = slot
602609
610+ def _update_last_production_log_reference (
611+ self , address : int , slot : int , timestamp : datetime
612+ ) -> None :
613+ """Update references to last (most recent) log production record."""
614+ if (
615+ self ._last_log_production_timestamp is None
616+ or self ._last_log_production_timestamp <= timestamp
617+ ):
618+ self ._last_log_production_timestamp = timestamp
619+ self ._last_log_production_address = address
620+ self ._last_log_production_slot = slot
621+
603622 def _reset_log_references (self ) -> None :
604623 """Reset log references."""
605624 self ._last_log_consumption_address = None
@@ -646,18 +665,6 @@ def _reset_log_references(self) -> None:
646665 self ._first_log_production_address = address
647666 self ._first_log_production_slot = slot
648667
649- def _update_last_production_log_reference (
650- self , address : int , slot : int , timestamp : datetime
651- ) -> None :
652- """Update references to last (most recent) log production record."""
653- if (
654- self ._last_log_production_timestamp is None
655- or self ._last_log_production_timestamp <= timestamp
656- ):
657- self ._last_log_production_timestamp = timestamp
658- self ._last_log_production_address = address
659- self ._last_log_production_slot = slot
660-
661668 def _update_first_log_reference (
662669 self , address : int , slot : int , timestamp : datetime , is_consumption : bool
663670 ) -> None :
@@ -725,8 +732,10 @@ def _last_log_reference(
725732 """Address and slot of last log."""
726733 if is_consumption is None :
727734 return (self ._last_log_address , self ._last_log_slot )
735+
728736 if is_consumption :
729737 return (self ._last_log_consumption_address , self ._last_log_consumption_slot )
738+
730739 return (self ._last_log_production_address , self ._last_log_production_slot )
731740
732741 def _first_log_reference (
@@ -735,20 +744,24 @@ def _first_log_reference(
735744 """Address and slot of first log."""
736745 if is_consumption is None :
737746 return (self ._first_log_address , self ._first_log_slot )
747+
738748 if is_consumption :
739749 return (
740750 self ._first_log_consumption_address ,
741751 self ._first_log_consumption_slot ,
742752 )
753+
743754 return (self ._first_log_production_address , self ._first_log_production_slot )
744755
745756 def _logs_missing (self , from_timestamp : datetime ) -> list [int ] | None :
746757 """Calculate list of missing log addresses."""
747758 if self ._logs is None :
748759 self ._log_addresses_missing = None
749760 return None
761+
750762 if self .collected_logs < 2 :
751763 return None
764+
752765 last_address , last_slot = self ._last_log_reference ()
753766 if last_address is None or last_slot is None :
754767 _LOGGER .debug (
@@ -887,7 +900,7 @@ def _missing_addresses_before(
887900 if self ._log_interval_consumption == 0 :
888901 pass
889902
890- if self ._log_production is not True :
903+ if self ._log_production is False :
891904 expected_timestamp = (
892905 self ._logs [address ][slot ].timestamp - calc_interval_cons
893906 )
@@ -945,7 +958,7 @@ def _missing_addresses_after(
945958 # Use consumption interval
946959 calc_interval_cons = timedelta (minutes = self ._log_interval_consumption )
947960
948- if self ._log_production is not True :
961+ if self ._log_production is False :
949962 expected_timestamp = (
950963 self ._logs [address ][slot ].timestamp + calc_interval_cons
951964 )
0 commit comments