You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

39 lines
1.1 KiB

"""
It is the place where we put all classes and types
common for all analytics code
For example, if you write someting which is used
in analytic_unit_manager, it should be here.
If you create something spicific which is used only in one place,
like PatternDetectionCache, then it should not be here.
"""
import pandas as pd
from typing import Union, List, Tuple
AnalyticUnitId = str
ModelCache = dict
# TODO: explicit timestamp / value
TimeSeries = List[Tuple[int, float]]
"""
Example:
tsis = TimeSeriesIndex(['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'])
ts = TimeSeries([4, 5, 6], tsis)
"""
Timestamp = Union[str, pd.Timestamp]
class TimeSeriesIndex(pd.DatetimeIndex):
def __new__(cls, *args, **kwargs):
return pd.DatetimeIndex.__new__(cls, *args, **kwargs)
# TODO: make generic type for values. See List definition for example of generic class
# TODO: constructor from DataFrame
# TODO: repleace TimeSeries (above) with this class: rename TimeSeries2 to TimeSeries
class TimeSeries2(pd.Series):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)