26 lines
938 B
Python
26 lines
938 B
Python
from typing import List
|
|
|
|
|
|
def get_step_size(startTimestamp, endTimestamp, density, decimal=False, factor=1000):
|
|
if endTimestamp == 0:
|
|
raise Exception("endTimestamp cannot be 0 in order to get step size")
|
|
step_size = (endTimestamp // factor - startTimestamp // factor)
|
|
if density <= 1:
|
|
return step_size
|
|
if decimal:
|
|
return step_size / density
|
|
return step_size // density
|
|
|
|
|
|
def complete_missing_steps(rows: List[dict], start_timestamp: int, end_timestamp: int, step: int, neutral: dict,
|
|
time_key: str = "timestamp") -> List[dict]:
|
|
result = []
|
|
i = 0
|
|
for t in range(start_timestamp, end_timestamp, step):
|
|
if i >= len(rows) or rows[i][time_key] > t:
|
|
neutral[time_key] = t
|
|
result.append(neutral.copy())
|
|
elif i < len(rows) and rows[i][time_key] == t:
|
|
result.append(rows[i])
|
|
i += 1
|
|
return result
|