Source code for pybpodapi.com.messaging.state_occurrence

# !/usr/bin/python3
# -*- coding: utf-8 -*-

import logging
from pybpodapi.com.messaging.base_message import BaseMessage
from pybpodapi.utils import date_parser

logger = logging.getLogger(__name__)


[docs]class StateOccurrence(BaseMessage): """ Store timestamps for a specific state occurrence of the state machine :ivar str name: name of the state :ivar list(StateDuration) timestamps: a list of timestamps (start and end) that corresponds to occurrences of this state """ MESSAGE_TYPE_ALIAS = 'STATE' MESSAGE_COLOR = (0, 100, 0) def __init__(self, state_name, host_timestamp, end_timestamp): """ :param str name: name of the state """ super(StateOccurrence, self).__init__(state_name, host_timestamp) self.start_timestamp = host_timestamp self.end_timestamp = end_timestamp
[docs] def tolist(self): return [ self.MESSAGE_TYPE_ALIAS, str(self.pc_timestamp), self.start_timestamp, self.end_timestamp, self.content, self.end_timestamp-self.start_timestamp ]
[docs] @classmethod def fromlist(cls, row): """ Returns True if the typestr represents the class """ obj = cls( row[4], float(row[2]) if row[2] else None, float(row[3]) if row[3] else None ) obj.pc_timestamp = date_parser.parse(row[1]) return obj
@property def state_name(self): return self.content