예제 #1
0
 def raw_value(self):
     """
     The raw (uncalibrated) value.
     """
     if self._proto.HasField("rawValue"):
         return parse_value(self._proto.rawValue)
     return None
예제 #2
0
 def eng_value(self):
     """
     The engineering (calibrated) value.
     """
     if self._proto.HasField("engValue"):
         return parse_value(self._proto.engValue)
     return None
예제 #3
0
    def __iter__(self):
        buf = None
        for chunk in self._response.iter_content(chunk_size=4096):
            if buf is None:
                buf = chunk
            else:
                buf += chunk

            while len(buf):
                try:
                    # n is advanced beyond the varint
                    msg_len, n = _DecodeVarint32(buf, 0)
                except IndexError:
                    break  # Need another chunk

                if n + msg_len > len(buf):
                    break  # Need another chunk

                msg_buf = buf[n:(n + msg_len)]
                buf = buf[(n + msg_len):]
                message = table_pb2.ResultSet()
                message.ParseFromString(msg_buf)
                if self._columns_proto is None:
                    self._columns_proto = message.columns
                for row_proto in message.rows:
                    values = [parse_value(v) for v in row_proto.values]
                    yield values
예제 #4
0
    def eng_value(self):
        """
        The engineering (calibrated) value within this range.

        If the request was made using ``min_range`` option,
        this will be the most-frequent value only. Retrieve
        the complete distribution using the ``entries``
        attribute.
        """
        max_count = None
        result = None
        for idx, count in enumerate(self._proto.counts):
            if max_count is None or (count > max_count):
                max_count = count
                result = self._proto.engValues[idx]

        if result:
            return parse_value(result)
        else:
            return None
예제 #5
0
 def _update(self, proto):
     for attr in proto:
         value = parse_value(attr.value)
         self.attributes[attr.name] = value
예제 #6
0
 def value(self):
     """Value for this column."""
     return parse_value(self._proto.value)
예제 #7
0
 def eng_value(self):
     """The engineering (calibrated) value."""
     return parse_value(self._proto.engValue)