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)
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)
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)])