示例#1
0
    class DataChannel(object):
        def __init__(self, channel_db_name, cnx):
            self._queue = QueueSetting(channel_db_name, connection=cnx)

        def get(self, from_index, to_index=None):
            if to_index is None:
                return self._queue[from_index]
            else:
                return self._queue[from_index:to_index]

        def __len__(self):
            return self._queue.__len__()
示例#2
0
class ChannelDataNode(DataNode):
    def __init__(self, name, **keys):
        shape = keys.pop('shape', None)
        dtype = keys.pop('dtype', None)

        DataNode.__init__(self, 'channel', name, **keys)

        if keys.get('create', False):
            if shape is not None:
                self.info["shape"] = shape
            if dtype is not None:
                self.info["dtype"] = dtype

        cnx = self.db_connection
        self._queue = QueueSetting("%s_data" % self.db_name,
                                   connection=cnx,
                                   read_type_conversion=functools.partial(
                                       data_from_bytes,
                                       shape=shape,
                                       dtype=dtype),
                                   write_type_conversion=data_to_bytes)

    def store(self, signal, event_dict, cnx=None):
        if signal == "new_data":
            data = event_dict.get("data")
            channel = event_dict.get("channel")
            if len(channel.shape) == data.ndim:
                self._queue.append(data, cnx=cnx)
            else:
                self._queue.extend(data, cnx=cnx)

    def get(self, from_index, to_index=None, cnx=None):
        if to_index is None:
            return self._queue.get(from_index, from_index, cnx=cnx)
        else:
            return self._queue.get(from_index, to_index, cnx=cnx)

    def __len__(self, cnx=None):
        return self._queue.__len__(cnx=cnx)

    @property
    def shape(self):
        return self.info.get("shape")

    @property
    def dtype(self):
        return self.info.get("dtype")

    def _get_db_names(self):
        db_names = DataNode._get_db_names(self)
        db_names.append(self.db_name + "_data")
        return db_names
示例#3
0
    class DataChannel(object):
        def __init__(self, channel_db_name, cnx):
            self._queue = QueueSetting(channel_db_name,
                                       connection=cnx)

        def get(self, from_index, to_index=None):
            if to_index is None:
                return self._queue[from_index]
            else:
                return self._queue[from_index:to_index]

        def __len__(self):
            return self._queue.__len__()
示例#4
0
class ChannelDataNode(DataNode):
    def __init__(self, name, **keys):
        shape = keys.pop('shape', None)
        dtype = keys.pop('dtype', None)

        DataNode.__init__(self, 'channel', name, **keys)
    
        if keys.get('create', False):
            if shape is not None:
                self.info["shape"] = shape
            if dtype is not None:
                self.info["dtype"] = dtype

        cnx = self.db_connection
        self._queue = QueueSetting("%s_data" % self.db_name, connection=cnx,
                                   read_type_conversion=functools.partial(data_from_bytes, shape=shape, dtype=dtype),
                                   write_type_conversion=data_to_bytes)

    def store(self, signal, event_dict, cnx=None):
        if signal == "new_data":
            data = event_dict.get("data")
            channel = event_dict.get("channel")
            if len(channel.shape) == data.ndim:
                self._queue.append(data, cnx=cnx)
            else:
                self._queue.extend(data, cnx=cnx)

    def get(self, from_index, to_index=None, cnx=None):
        if to_index is None:
            return self._queue.get(from_index, from_index, cnx=cnx)
        else:
            return self._queue.get(from_index, to_index, cnx=cnx)

    def __len__(self, cnx=None):
        return self._queue.__len__(cnx=cnx)

    @property
    def shape(self):
        return self.info.get("shape")

    @property
    def dtype(self):
        return self.info.get("dtype")

    def _get_db_names(self):
        db_names = DataNode._get_db_names(self)
        db_names.append(self.db_name+"_data")
        return db_names