MCPcopy Index your code
hub / github.com/apache/fory / write

Method write

python/pyfory/serializer.py:860–878  ·  view source on GitHub ↗
(self, buffer, value)

Source from the content-addressed store, hash-verified

858
859class NDArraySerializer(Serializer):
860 def write(self, buffer, value):
861 # Write concrete 1D primitive ndarray using type id + bytes payload.
862 dtype_info = _np_dtypes_dict.get(value.dtype)
863 if dtype_info is None or value.ndim != 1:
864 raise NotImplementedError(f"Unsupported ndarray: dtype={value.dtype}, ndim={value.ndim}")
865 itemsize, _typecode, _ftype, type_id = dtype_info
866 view = memoryview(value)
867 nbytes = len(value) * itemsize
868 buffer.write_uint8(type_id)
869 buffer.write_var_uint32(nbytes)
870 if value.dtype == np.dtype("bool") or not view.c_contiguous:
871 if not is_little_endian and itemsize > 1:
872 buffer.write_bytes(value.astype(value.dtype.newbyteorder("<")).tobytes())
873 else:
874 buffer.write_bytes(value.tobytes())
875 elif is_little_endian or itemsize == 1:
876 buffer.write_buffer(value)
877 else:
878 buffer.write_bytes(value.astype(value.dtype.newbyteorder("<")).tobytes())
879
880 def read(self, buffer):
881 type_id = buffer.read_uint8()

Callers

nothing calls this directly

Calls 4

getMethod · 0.65
write_uint8Method · 0.45
write_var_uint32Method · 0.45
write_bytesMethod · 0.45

Tested by

no test coverage detected