mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-02 20:15:34 +00:00
* fix(flatbuffers): use manual impl Default for struct object types * fix: handle bool and float zero literals in struct object Default impl * fix: regenerate all test bindings with generate_code.py * fix: data type check on swift build * fix: test large array on struct and enum
227 lines
7.6 KiB
Python
227 lines
7.6 KiB
Python
# automatically generated by the FlatBuffers compiler, do not modify
|
|
|
|
# namespace: Example
|
|
|
|
import flatbuffers
|
|
from flatbuffers.compat import import_numpy
|
|
from typing import Any
|
|
from MyGame.Example.NestedStruct import NestedStruct
|
|
np = import_numpy()
|
|
|
|
class LargeArrayStruct(object):
|
|
__slots__ = ['_tab']
|
|
|
|
@classmethod
|
|
def SizeOf(cls) -> int:
|
|
return 2496
|
|
|
|
# LargeArrayStruct
|
|
def Init(self, buf: bytes, pos: int):
|
|
self._tab = flatbuffers.table.Table(buf, pos)
|
|
|
|
# LargeArrayStruct
|
|
def D(self, j = None):
|
|
if j is None:
|
|
return [self._tab.Get(flatbuffers.number_types.Uint8Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(0 + i * 1)) for i in range(self.DLength())]
|
|
elif j >= 0 and j < self.DLength():
|
|
return self._tab.Get(flatbuffers.number_types.Uint8Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(0 + j * 1))
|
|
else:
|
|
return None
|
|
|
|
# LargeArrayStruct
|
|
def DAsNumpy(self):
|
|
return self._tab.GetArrayAsNumpy(flatbuffers.number_types.Uint8Flags, self._tab.Pos + 0, self.DLength())
|
|
|
|
# LargeArrayStruct
|
|
def DLength(self) -> int:
|
|
return 64
|
|
|
|
# LargeArrayStruct
|
|
def DIsNone(self) -> bool:
|
|
return False
|
|
|
|
# LargeArrayStruct
|
|
def E(self, j = None):
|
|
if j is None:
|
|
return [self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(64 + i * 4)) for i in range(self.ELength())]
|
|
elif j >= 0 and j < self.ELength():
|
|
return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(64 + j * 4))
|
|
else:
|
|
return None
|
|
|
|
# LargeArrayStruct
|
|
def EAsNumpy(self):
|
|
return self._tab.GetArrayAsNumpy(flatbuffers.number_types.Float32Flags, self._tab.Pos + 64, self.ELength())
|
|
|
|
# LargeArrayStruct
|
|
def ELength(self) -> int:
|
|
return 64
|
|
|
|
# LargeArrayStruct
|
|
def EIsNone(self) -> bool:
|
|
return False
|
|
|
|
# LargeArrayStruct
|
|
def F(self, j = None):
|
|
if j is None:
|
|
return [self._tab.Get(flatbuffers.number_types.BoolFlags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(320 + i * 1)) for i in range(self.FLength())]
|
|
elif j >= 0 and j < self.FLength():
|
|
return self._tab.Get(flatbuffers.number_types.BoolFlags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(320 + j * 1))
|
|
else:
|
|
return None
|
|
|
|
# LargeArrayStruct
|
|
def FAsNumpy(self):
|
|
return self._tab.GetArrayAsNumpy(flatbuffers.number_types.BoolFlags, self._tab.Pos + 320, self.FLength())
|
|
|
|
# LargeArrayStruct
|
|
def FLength(self) -> int:
|
|
return 64
|
|
|
|
# LargeArrayStruct
|
|
def FIsNone(self) -> bool:
|
|
return False
|
|
|
|
# LargeArrayStruct
|
|
def G(self, i: int) -> NestedStruct:
|
|
obj = NestedStruct()
|
|
obj.Init(self._tab.Bytes, self._tab.Pos + 384 + i * 32)
|
|
return obj
|
|
|
|
# LargeArrayStruct
|
|
def GLength(self) -> int:
|
|
return 64
|
|
|
|
# LargeArrayStruct
|
|
def GIsNone(self) -> bool:
|
|
return False
|
|
|
|
# LargeArrayStruct
|
|
def H(self, j = None):
|
|
if j is None:
|
|
return [self._tab.Get(flatbuffers.number_types.Int8Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(2432 + i * 1)) for i in range(self.HLength())]
|
|
elif j >= 0 and j < self.HLength():
|
|
return self._tab.Get(flatbuffers.number_types.Int8Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(2432 + j * 1))
|
|
else:
|
|
return None
|
|
|
|
# LargeArrayStruct
|
|
def HAsNumpy(self):
|
|
return self._tab.GetArrayAsNumpy(flatbuffers.number_types.Int8Flags, self._tab.Pos + 2432, self.HLength())
|
|
|
|
# LargeArrayStruct
|
|
def HLength(self) -> int:
|
|
return 64
|
|
|
|
# LargeArrayStruct
|
|
def HIsNone(self) -> bool:
|
|
return False
|
|
|
|
|
|
def CreateLargeArrayStruct(builder, d, e, f, g_a, g_b, g_c, g_d, h):
|
|
builder.Prep(8, 2496)
|
|
for _idx0 in range(64 , 0, -1):
|
|
builder.PrependInt8(h[_idx0-1])
|
|
for _idx0 in range(64 , 0, -1):
|
|
builder.Prep(8, 32)
|
|
for _idx1 in range(2 , 0, -1):
|
|
builder.PrependInt64(g_d[_idx0-1][_idx1-1])
|
|
builder.Pad(5)
|
|
for _idx1 in range(2 , 0, -1):
|
|
builder.PrependInt8(g_c[_idx0-1][_idx1-1])
|
|
builder.PrependInt8(g_b[_idx0-1])
|
|
for _idx1 in range(2 , 0, -1):
|
|
builder.PrependInt32(g_a[_idx0-1][_idx1-1])
|
|
for _idx0 in range(64 , 0, -1):
|
|
builder.PrependBool(f[_idx0-1])
|
|
for _idx0 in range(64 , 0, -1):
|
|
builder.PrependFloat32(e[_idx0-1])
|
|
for _idx0 in range(64 , 0, -1):
|
|
builder.PrependUint8(d[_idx0-1])
|
|
return builder.Offset()
|
|
|
|
import MyGame.Example.NestedStruct
|
|
try:
|
|
from typing import List
|
|
except:
|
|
pass
|
|
|
|
class LargeArrayStructT(object):
|
|
|
|
# LargeArrayStructT
|
|
def __init__(
|
|
self,
|
|
d = None,
|
|
e = None,
|
|
f = None,
|
|
g = None,
|
|
h = None,
|
|
):
|
|
self.d = d # type: Optional[List[int]]
|
|
self.e = e # type: Optional[List[float]]
|
|
self.f = f # type: Optional[List[bool]]
|
|
self.g = g # type: Optional[List[MyGame.Example.NestedStruct.NestedStructT]]
|
|
self.h = h # type: Optional[List[int]]
|
|
|
|
@classmethod
|
|
def InitFromBuf(cls, buf, pos):
|
|
largeArrayStruct = LargeArrayStruct()
|
|
largeArrayStruct.Init(buf, pos)
|
|
return cls.InitFromObj(largeArrayStruct)
|
|
|
|
@classmethod
|
|
def InitFromPackedBuf(cls, buf, pos=0):
|
|
n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, pos)
|
|
return cls.InitFromBuf(buf, pos+n)
|
|
|
|
@classmethod
|
|
def InitFromObj(cls, largeArrayStruct):
|
|
x = LargeArrayStructT()
|
|
x._UnPack(largeArrayStruct)
|
|
return x
|
|
|
|
# LargeArrayStructT
|
|
def _UnPack(self, largeArrayStruct):
|
|
if largeArrayStruct is None:
|
|
return
|
|
if not largeArrayStruct.DIsNone():
|
|
if np is None:
|
|
self.d = []
|
|
for i in range(largeArrayStruct.DLength()):
|
|
self.d.append(largeArrayStruct.D(i))
|
|
else:
|
|
self.d = largeArrayStruct.DAsNumpy()
|
|
if not largeArrayStruct.EIsNone():
|
|
if np is None:
|
|
self.e = []
|
|
for i in range(largeArrayStruct.ELength()):
|
|
self.e.append(largeArrayStruct.E(i))
|
|
else:
|
|
self.e = largeArrayStruct.EAsNumpy()
|
|
if not largeArrayStruct.FIsNone():
|
|
if np is None:
|
|
self.f = []
|
|
for i in range(largeArrayStruct.FLength()):
|
|
self.f.append(largeArrayStruct.F(i))
|
|
else:
|
|
self.f = largeArrayStruct.FAsNumpy()
|
|
if not largeArrayStruct.GIsNone():
|
|
self.g = []
|
|
for i in range(largeArrayStruct.GLength()):
|
|
if largeArrayStruct.G(i) is None:
|
|
self.g.append(None)
|
|
else:
|
|
nestedStruct_ = MyGame.Example.NestedStruct.NestedStructT.InitFromObj(largeArrayStruct.G(i))
|
|
self.g.append(nestedStruct_)
|
|
if not largeArrayStruct.HIsNone():
|
|
if np is None:
|
|
self.h = []
|
|
for i in range(largeArrayStruct.HLength()):
|
|
self.h.append(largeArrayStruct.H(i))
|
|
else:
|
|
self.h = largeArrayStruct.HAsNumpy()
|
|
|
|
# LargeArrayStructT
|
|
def Pack(self, builder):
|
|
return CreateLargeArrayStruct(builder, self.d, self.e, self.f, self.g.a, self.g.b, self.g.c, self.g.d, self.h)
|