1# automatically generated by the FlatBuffers compiler, do not modify
2
3# namespace: Example
4
5import flatbuffers
6from flatbuffers.compat import import_numpy
7from typing import Any
8np = import_numpy()
9
10class NestedStruct(object):
11 __slots__ = ['_tab']
12
13 @classmethod
14 def SizeOf(cls) -> int:
15 return 32
16
17 # NestedStruct
18 def Init(self, buf: bytes, pos: int):
19 self._tab = flatbuffers.table.Table(buf, pos)
20
21 # NestedStruct
22 def A(self, j = None):
23 if j is None:
24 return [self._tab.Get(flatbuffers.number_types.Int32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(0 + i * 4)) for i in range(self.ALength())]
25 elif j >= 0 and j < self.ALength():
26 return self._tab.Get(flatbuffers.number_types.Int32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(0 + j * 4))
27 else:
28 return None
29
30 # NestedStruct
31 def AAsNumpy(self):
32 return self._tab.GetArrayAsNumpy(flatbuffers.number_types.Int32Flags, self._tab.Pos + 0, self.ALength())
33
34 # NestedStruct
35 def ALength(self) -> int:
36 return 2
37
38 # NestedStruct
39 def AIsNone(self) -> bool:
40 return False
41
42 # NestedStruct
43 def B(self): return self._tab.Get(flatbuffers.number_types.Int8Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(8))
44 # NestedStruct
45 def C(self, j = None):
46 if j is None:
47 return [self._tab.Get(flatbuffers.number_types.Int8Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(9 + i * 1)) for i in range(self.CLength())]
48 elif j >= 0 and j < self.CLength():
49 return self._tab.Get(flatbuffers.number_types.Int8Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(9 + j * 1))
50 else:
51 return None
52
53 # NestedStruct
54 def CAsNumpy(self):
55 return self._tab.GetArrayAsNumpy(flatbuffers.number_types.Int8Flags, self._tab.Pos + 9, self.CLength())
56
57 # NestedStruct
58 def CLength(self) -> int:
59 return 2
60
61 # NestedStruct
62 def CIsNone(self) -> bool:
63 return False
64
65 # NestedStruct
66 def D(self, j = None):
67 if j is None:
68 return [self._tab.Get(flatbuffers.number_types.Int64Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(16 + i * 8)) for i in range(self.DLength())]
69 elif j >= 0 and j < self.DLength():
70 return self._tab.Get(flatbuffers.number_types.Int64Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(16 + j * 8))
71 else:
72 return None
73
74 # NestedStruct
75 def DAsNumpy(self):
76 return self._tab.GetArrayAsNumpy(flatbuffers.number_types.Int64Flags, self._tab.Pos + 16, self.DLength())
77
78 # NestedStruct
79 def DLength(self) -> int:
80 return 2
81
82 # NestedStruct
83 def DIsNone(self) -> bool:
84 return False
85
86
87def CreateNestedStruct(builder, a, b, c, d):
88 builder.Prep(8, 32)
89 for _idx0 in range(2 , 0, -1):
90 builder.PrependInt64(d[_idx0-1])
91 builder.Pad(5)
92 for _idx0 in range(2 , 0, -1):
93 builder.PrependInt8(c[_idx0-1])
94 builder.PrependInt8(b)
95 for _idx0 in range(2 , 0, -1):
96 builder.PrependInt32(a[_idx0-1])
97 return builder.Offset()
98
99try:
100 from typing import List
101except:
102 pass
103
104class NestedStructT(object):
105
106 # NestedStructT
107 def __init__(self):
108 self.a = None # type: List[int]
109 self.b = 0 # type: int
110 self.c = None # type: List[int]
111 self.d = None # type: List[int]
112
113 @classmethod
114 def InitFromBuf(cls, buf, pos):
115 nestedStruct = NestedStruct()
116 nestedStruct.Init(buf, pos)
117 return cls.InitFromObj(nestedStruct)
118
119 @classmethod
120 def InitFromPackedBuf(cls, buf, pos=0):
121 n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, pos)
122 return cls.InitFromBuf(buf, pos+n)
123
124 @classmethod
125 def InitFromObj(cls, nestedStruct):
126 x = NestedStructT()
127 x._UnPack(nestedStruct)
128 return x
129
130 # NestedStructT
131 def _UnPack(self, nestedStruct):
132 if nestedStruct is None:
133 return
134 if not nestedStruct.AIsNone():
135 if np is None:
136 self.a = []
137 for i in range(nestedStruct.ALength()):
138 self.a.append(nestedStruct.A(i))
139 else:
140 self.a = nestedStruct.AAsNumpy()
141 self.b = nestedStruct.B()
142 if not nestedStruct.CIsNone():
143 if np is None:
144 self.c = []
145 for i in range(nestedStruct.CLength()):
146 self.c.append(nestedStruct.C(i))
147 else:
148 self.c = nestedStruct.CAsNumpy()
149 if not nestedStruct.DIsNone():
150 if np is None:
151 self.d = []
152 for i in range(nestedStruct.DLength()):
153 self.d.append(nestedStruct.D(i))
154 else:
155 self.d = nestedStruct.DAsNumpy()
156
157 # NestedStructT
158 def Pack(self, builder):
159 return CreateNestedStruct(builder, self.a, self.b, self.c, self.d)
View as plain text