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