forked from BigfootDev/flatbuffers
* Keep methods with struct name and switch them to default This PR can help fix the following two issues: 1): A set of simplified API (without struct name) was added in https://github.com/google/flatbuffers/pull/6336. It causes name conflict when merging all generated python file into a single one (the primary usage senario in Google). 2): Flatbuffers 2.0 generates absolute import path, which may cause name space conflicts. See more details in https://github.com/google/flatbuffers/issues/5840. The solution for both is to generate the merged Python code, similar C++. The merged code will not contain the simplied API, but only the method with struct name. For issue (1), it will mimic the exactly usage pattern for Google internal. For issue (2), users can generate the merged flatbuffer code, without worrying about the imports. The above idea will be implemented in the following steps: Step 1 (this PR): revert changes in https://github.com/google/flatbuffers/pull/6336 that set the simplified API as default. Remove statements that the original API will be deprecated, and reset the original API as default. Step 2 (the following PR): create a flag to generate the merged code. The Simplified API will be removed from the merged code, otherwise it will cause name conflict. * Update the generated sample code * Update the generated example code * Reverst the changes of GetRootAs * Update examples from grpc/example/generate.sh
149 lines
5.5 KiB
Python
149 lines
5.5 KiB
Python
# automatically generated by the FlatBuffers compiler, do not modify
|
|
|
|
# namespace: NamespaceA
|
|
|
|
import flatbuffers
|
|
from flatbuffers.compat import import_numpy
|
|
np = import_numpy()
|
|
|
|
class TableInFirstNS(object):
|
|
__slots__ = ['_tab']
|
|
|
|
@classmethod
|
|
def GetRootAs(cls, buf, offset=0):
|
|
n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
|
|
x = TableInFirstNS()
|
|
x.Init(buf, n + offset)
|
|
return x
|
|
|
|
@classmethod
|
|
def GetRootAsTableInFirstNS(cls, buf, offset=0):
|
|
"""This method is deprecated. Please switch to GetRootAs."""
|
|
return cls.GetRootAs(buf, offset)
|
|
# TableInFirstNS
|
|
def Init(self, buf, pos):
|
|
self._tab = flatbuffers.table.Table(buf, pos)
|
|
|
|
# TableInFirstNS
|
|
def FooTable(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
|
|
if o != 0:
|
|
x = self._tab.Indirect(o + self._tab.Pos)
|
|
obj = TableInNestedNS()
|
|
obj.Init(self._tab.Bytes, x)
|
|
return obj
|
|
return None
|
|
|
|
# TableInFirstNS
|
|
def FooEnum(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
|
|
if o != 0:
|
|
return self._tab.Get(flatbuffers.number_types.Int8Flags, o + self._tab.Pos)
|
|
return 0
|
|
|
|
# TableInFirstNS
|
|
def FooUnionType(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8))
|
|
if o != 0:
|
|
return self._tab.Get(flatbuffers.number_types.Uint8Flags, o + self._tab.Pos)
|
|
return 0
|
|
|
|
# TableInFirstNS
|
|
def FooUnion(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10))
|
|
if o != 0:
|
|
from flatbuffers.table import Table
|
|
obj = Table(bytearray(), 0)
|
|
self._tab.Union(obj, o)
|
|
return obj
|
|
return None
|
|
|
|
# TableInFirstNS
|
|
def FooStruct(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12))
|
|
if o != 0:
|
|
x = o + self._tab.Pos
|
|
obj = StructInNestedNS()
|
|
obj.Init(self._tab.Bytes, x)
|
|
return obj
|
|
return None
|
|
|
|
def TableInFirstNSStart(builder): builder.StartObject(5)
|
|
def Start(builder):
|
|
return TableInFirstNSStart(builder)
|
|
def TableInFirstNSAddFooTable(builder, fooTable): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(fooTable), 0)
|
|
def AddFooTable(builder, fooTable):
|
|
return TableInFirstNSAddFooTable(builder, fooTable)
|
|
def TableInFirstNSAddFooEnum(builder, fooEnum): builder.PrependInt8Slot(1, fooEnum, 0)
|
|
def AddFooEnum(builder, fooEnum):
|
|
return TableInFirstNSAddFooEnum(builder, fooEnum)
|
|
def TableInFirstNSAddFooUnionType(builder, fooUnionType): builder.PrependUint8Slot(2, fooUnionType, 0)
|
|
def AddFooUnionType(builder, fooUnionType):
|
|
return TableInFirstNSAddFooUnionType(builder, fooUnionType)
|
|
def TableInFirstNSAddFooUnion(builder, fooUnion): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(fooUnion), 0)
|
|
def AddFooUnion(builder, fooUnion):
|
|
return TableInFirstNSAddFooUnion(builder, fooUnion)
|
|
def TableInFirstNSAddFooStruct(builder, fooStruct): builder.PrependStructSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(fooStruct), 0)
|
|
def AddFooStruct(builder, fooStruct):
|
|
return TableInFirstNSAddFooStruct(builder, fooStruct)
|
|
def TableInFirstNSEnd(builder): return builder.EndObject()
|
|
def End(builder):
|
|
return TableInFirstNSEnd(builder)
|
|
try:
|
|
from typing import Optional, Union
|
|
except:
|
|
pass
|
|
|
|
class TableInFirstNST(object):
|
|
|
|
# TableInFirstNST
|
|
def __init__(self):
|
|
self.fooTable = None # type: Optional[TableInNestedNST]
|
|
self.fooEnum = 0 # type: int
|
|
self.fooUnionType = 0 # type: int
|
|
self.fooUnion = None # type: Union[None, TableInNestedNST]
|
|
self.fooStruct = None # type: Optional[StructInNestedNST]
|
|
|
|
@classmethod
|
|
def InitFromBuf(cls, buf, pos):
|
|
tableInFirstNS = TableInFirstNS()
|
|
tableInFirstNS.Init(buf, pos)
|
|
return cls.InitFromObj(tableInFirstNS)
|
|
|
|
@classmethod
|
|
def InitFromObj(cls, tableInFirstNS):
|
|
x = TableInFirstNST()
|
|
x._UnPack(tableInFirstNS)
|
|
return x
|
|
|
|
# TableInFirstNST
|
|
def _UnPack(self, tableInFirstNS):
|
|
if tableInFirstNS is None:
|
|
return
|
|
if tableInFirstNS.FooTable() is not None:
|
|
self.fooTable = TableInNestedNST.InitFromObj(tableInFirstNS.FooTable())
|
|
self.fooEnum = tableInFirstNS.FooEnum()
|
|
self.fooUnionType = tableInFirstNS.FooUnionType()
|
|
self.fooUnion = UnionInNestedNSCreator(self.fooUnionType, tableInFirstNS.FooUnion())
|
|
if tableInFirstNS.FooStruct() is not None:
|
|
self.fooStruct = StructInNestedNST.InitFromObj(tableInFirstNS.FooStruct())
|
|
|
|
# TableInFirstNST
|
|
def Pack(self, builder):
|
|
if self.fooTable is not None:
|
|
fooTable = self.fooTable.Pack(builder)
|
|
if self.fooUnion is not None:
|
|
fooUnion = self.fooUnion.Pack(builder)
|
|
TableInFirstNSStart(builder)
|
|
if self.fooTable is not None:
|
|
TableInFirstNSAddFooTable(builder, fooTable)
|
|
TableInFirstNSAddFooEnum(builder, self.fooEnum)
|
|
TableInFirstNSAddFooUnionType(builder, self.fooUnionType)
|
|
if self.fooUnion is not None:
|
|
TableInFirstNSAddFooUnion(builder, fooUnion)
|
|
if self.fooStruct is not None:
|
|
fooStruct = self.fooStruct.Pack(builder)
|
|
TableInFirstNSAddFooStruct(builder, fooStruct)
|
|
tableInFirstNS = TableInFirstNSEnd(builder)
|
|
return tableInFirstNS
|