def yield_records(self, sorted_records):
n = len(sorted_records)
for i, record in enumerate(sorted_records):
self.validate_record(record)
start = record["start"]
value = record["value"]
estimated = record.get("estimated", False)
if i < n - 1: # all except last record
yield (start, value, estimated)
else: # last record
end = record.get("end", None)
if end is None:
# can't use the value of this record, no end date
yield (start, np.nan, False)
else:
self._validate_record_start_end(record, start, end)
# provide an end date cap
if pd.notnull(value):
yield (start, value, estimated)
yield (end, np.nan, False)
else:
yield (start, np.nan, False)
评论列表
文章目录