mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-16 01:07:29 +00:00
Keep methods with struct name and switch them to default (#6879)
* 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
This commit is contained in:
@@ -44,22 +44,18 @@ class TableInC(object):
|
||||
return obj
|
||||
return None
|
||||
|
||||
def Start(builder): builder.StartObject(2)
|
||||
def TableInCStart(builder):
|
||||
"""This method is deprecated. Please switch to Start."""
|
||||
return Start(builder)
|
||||
def AddReferToA1(builder, referToA1): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(referToA1), 0)
|
||||
def TableInCAddReferToA1(builder, referToA1):
|
||||
"""This method is deprecated. Please switch to AddReferToA1."""
|
||||
return AddReferToA1(builder, referToA1)
|
||||
def AddReferToA2(builder, referToA2): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(referToA2), 0)
|
||||
def TableInCAddReferToA2(builder, referToA2):
|
||||
"""This method is deprecated. Please switch to AddReferToA2."""
|
||||
return AddReferToA2(builder, referToA2)
|
||||
def End(builder): return builder.EndObject()
|
||||
def TableInCEnd(builder):
|
||||
"""This method is deprecated. Please switch to End."""
|
||||
return End(builder)
|
||||
def TableInCStart(builder): builder.StartObject(2)
|
||||
def Start(builder):
|
||||
return TableInCStart(builder)
|
||||
def TableInCAddReferToA1(builder, referToA1): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(referToA1), 0)
|
||||
def AddReferToA1(builder, referToA1):
|
||||
return TableInCAddReferToA1(builder, referToA1)
|
||||
def TableInCAddReferToA2(builder, referToA2): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(referToA2), 0)
|
||||
def AddReferToA2(builder, referToA2):
|
||||
return TableInCAddReferToA2(builder, referToA2)
|
||||
def TableInCEnd(builder): return builder.EndObject()
|
||||
def End(builder):
|
||||
return TableInCEnd(builder)
|
||||
try:
|
||||
from typing import Optional
|
||||
except:
|
||||
@@ -99,10 +95,10 @@ class TableInCT(object):
|
||||
referToA1 = self.referToA1.Pack(builder)
|
||||
if self.referToA2 is not None:
|
||||
referToA2 = self.referToA2.Pack(builder)
|
||||
Start(builder)
|
||||
TableInCStart(builder)
|
||||
if self.referToA1 is not None:
|
||||
AddReferToA1(builder, referToA1)
|
||||
TableInCAddReferToA1(builder, referToA1)
|
||||
if self.referToA2 is not None:
|
||||
AddReferToA2(builder, referToA2)
|
||||
tableInC = End(builder)
|
||||
TableInCAddReferToA2(builder, referToA2)
|
||||
tableInC = TableInCEnd(builder)
|
||||
return tableInC
|
||||
|
||||
Reference in New Issue
Block a user