from abc import ABCMeta, abstractmethod,ABC from datetime import timedelta __all__ = ['DataWriteStream', 'DataReadStream', 'day_stamp', 'MchPosmap','ChPosmap'] def day_stamp(stamp): import time as stime stamp = int(stamp) st_time = stime.gmtime(stamp + 8 * 3600) diff = timedelta(hours=st_time.tm_hour, minutes=st_time.tm_min, seconds=st_time.tm_sec) today = stamp - diff.total_seconds() return int(today) class DataWriteStream(metaclass=ABCMeta): def __init__(self,hfive): self._hfive = hfive # Getter function @property def file(self): return self._hfive # Setter function @file.setter def file(self, value): self._hfive = value @abstractmethod def read(self): pass @abstractmethod def write(self,method,params): pass def close(self): if self._hfive is not None: self._hfive.close() class DataReadStream(metaclass=ABCMeta): def __init__(self,hfive): self._hfive = hfive # Getter function @property def file(self): return self._hfive # Setter function @file.setter def file(self, value): self._hfive = value @abstractmethod def write(self,method,params): pass def close(self): if self._hfive is not None: self._hfive.close() class MchPosmap(metaclass=ABCMeta): pos_map = { 'submit_count': 0, 'submit_amounts': 1, 'succ_count': 2, 'succ_mch_amounts': 3, 'succ_ch_amounts': 4, 'fail_count': 5, 'fail_mch_amounts': 6 } pass class ChPosmap(metaclass=ABCMeta): pos_map = { 'commit_count': 0, 'commit_amounts': 1, 'succ_count': 2,'succ_amounts': 3, 'succ_periods': 4, 'fail_count': 5, 'fail_amounts': 6,'fail_periods': 7 } pass