示例#1
0
 def decode_from_stream(self, in_stream: InputStream, length=0):
     size = in_stream.read_int32()
     elements = [
         self._elem_coder.decode_from_stream(in_stream)
         if in_stream.read_byte() else None for _ in range(size)
     ]
     return elements
示例#2
0
 def decode_from_stream(self, in_stream: InputStream, length: int = 0):
     seconds = in_stream.read_int64()
     nanos = in_stream.read_int32()
     if seconds == self._null_seconds and nanos == self._null_nanos:
         return None
     else:
         return Instant(seconds, nanos)
示例#3
0
 def _decode_from_stream(in_stream: InputStream):
     year = in_stream.read_int32()
     if year == 0xFFFFFFFF:
         in_stream.read(2)
         return None
     month = in_stream.read_int8()
     day = in_stream.read_int8()
     return datetime.date(year, month, day)
示例#4
0
 def decode_from_stream(self, in_stream: InputStream, length=0):
     if self.is_compact():
         milliseconds = in_stream.read_int64()
         nanoseconds = 0
     else:
         milliseconds = in_stream.read_int64()
         nanoseconds = in_stream.read_int32()
     return self.internal_to_timestamp(milliseconds, nanoseconds)
示例#5
0
 def _decode_from_stream(in_stream: InputStream):
     hour = in_stream.read_int8()
     if hour == 0xFF:
         in_stream.read(6)
         return None
     minute = in_stream.read_int8()
     second = in_stream.read_int8()
     nano = in_stream.read_int32()
     return datetime.time(hour, minute, second, nano // 1000)
示例#6
0
 def decode_from_stream(self, in_stream: InputStream, length=0):
     size = in_stream.read_int32()
     map_value = {}
     for _ in range(size):
         key = self._key_coder.decode_from_stream(in_stream)
         is_null = in_stream.read_byte()
         if is_null:
             map_value[key] = None
         else:
             value = self._value_coder.decode_from_stream(in_stream)
             map_value[key] = value
     return map_value
示例#7
0
    def read_mask(self, in_stream: InputStream):
        mask = []
        mask_search_table = self.null_mask_search_table
        remaining_bits_num = self._remaining_bits_num
        for _ in range(self._leading_complete_bytes_num):
            b = in_stream.read_byte()
            mask.extend(mask_search_table[b])

        if remaining_bits_num:
            b = in_stream.read_byte()
            mask.extend(mask_search_table[b][0:remaining_bits_num])
        return mask
示例#8
0
 def decode_from_stream(self, in_stream: InputStream, length=0):
     user_context = decimal.getcontext()
     decimal.setcontext(self.context)
     value = decimal.Decimal(
         in_stream.read_bytes().decode("utf-8")).quantize(self.scale_format)
     decimal.setcontext(user_context)
     return value
示例#9
0
 def decode_from_stream(self, in_stream: create_InputStream, nested):
     data_input_stream = InputStream(in_stream.read_all(False))
     return self._value_coder.decode_from_stream(data_input_stream)
示例#10
0
 def decode_from_stream(self, in_stream: InputStream):
     return self._field_coder.decode_from_stream(in_stream,
                                                 in_stream.read_var_int64())
示例#11
0
 def decode_from_stream(self, in_stream: InputStream, length=0):
     in_stream.read_byte()
     return GlobalWindowCoderImpl()
示例#12
0
 def decode(self, encoded):
     return self.decode_from_stream(InputStream(encoded), len(encoded))
示例#13
0
 def decode_from_stream(self, in_stream: InputStream, length=0):
     return CountWindow(in_stream.read_int64())
示例#14
0
 def decode_from_stream(self, in_stream: InputStream, length=0):
     start = in_stream.read_int64()
     end = in_stream.read_int64()
     return TimeWindow(start, end)
示例#15
0
 def decode_one_batch_from_stream(self, in_stream: InputStream,
                                  size: int) -> List:
     self._resettable_io.set_input_bytes(in_stream.read(size))
     # there is only one arrow batch in the underlying input stream
     return arrow_to_pandas(self._timezone, self._field_types,
                            [next(self._batch_reader)])
示例#16
0
 def decode_from_stream(self, in_stream: InputStream):
     while in_stream.size() > 0:
         yield self._field_coder.decode_from_stream(
             in_stream, in_stream.read_var_int64())
示例#17
0
 def decode_from_stream(self, in_stream: InputStream, length=0):
     value = in_stream.read_int32()
     return self.internal_to_time(value)
示例#18
0
 def decode_from_stream(self, in_stream: InputStream, length=0):
     return decimal.Decimal(in_stream.read_bytes().decode("utf-8"))
示例#19
0
 def decode_from_stream(self, in_stream: InputStream, length=0):
     return in_stream.read_bytes()