mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-04 04:33:23 +00:00
Optionally generate Python type annotations (#7858)
* optionally generate type prefixes and suffixes for python code * fix codegen error when qualified name is empty * WIP: Python typing * more progress towards python typing * Further iterate on Python generated code typing * clang-format * Regenerate code * add documentation for Python type annotations option * generate code with Python type annotations * handle forward references * clang-format
This commit is contained in:
@@ -35,7 +35,7 @@ class Schema(object):
|
||||
x = self._tab.Vector(o)
|
||||
x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4
|
||||
x = self._tab.Indirect(x)
|
||||
from reflection.Object import Object
|
||||
from .reflection.Object import Object
|
||||
obj = Object()
|
||||
obj.Init(self._tab.Bytes, x)
|
||||
return obj
|
||||
@@ -60,7 +60,7 @@ class Schema(object):
|
||||
x = self._tab.Vector(o)
|
||||
x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4
|
||||
x = self._tab.Indirect(x)
|
||||
from reflection.Enum import Enum
|
||||
from .reflection.Enum import Enum
|
||||
obj = Enum()
|
||||
obj.Init(self._tab.Bytes, x)
|
||||
return obj
|
||||
@@ -97,7 +97,7 @@ class Schema(object):
|
||||
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12))
|
||||
if o != 0:
|
||||
x = self._tab.Indirect(o + self._tab.Pos)
|
||||
from reflection.Object import Object
|
||||
from .reflection.Object import Object
|
||||
obj = Object()
|
||||
obj.Init(self._tab.Bytes, x)
|
||||
return obj
|
||||
@@ -110,7 +110,7 @@ class Schema(object):
|
||||
x = self._tab.Vector(o)
|
||||
x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4
|
||||
x = self._tab.Indirect(x)
|
||||
from reflection.Service import Service
|
||||
from .reflection.Service import Service
|
||||
obj = Service()
|
||||
obj.Init(self._tab.Bytes, x)
|
||||
return obj
|
||||
@@ -144,7 +144,7 @@ class Schema(object):
|
||||
x = self._tab.Vector(o)
|
||||
x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4
|
||||
x = self._tab.Indirect(x)
|
||||
from reflection.SchemaFile import SchemaFile
|
||||
from .reflection.SchemaFile import SchemaFile
|
||||
obj = SchemaFile()
|
||||
obj.Init(self._tab.Bytes, x)
|
||||
return obj
|
||||
@@ -163,81 +163,81 @@ class Schema(object):
|
||||
return o == 0
|
||||
|
||||
def SchemaStart(builder):
|
||||
return builder.StartObject(8)
|
||||
builder.StartObject(8)
|
||||
|
||||
def Start(builder):
|
||||
return SchemaStart(builder)
|
||||
SchemaStart(builder)
|
||||
|
||||
def SchemaAddObjects(builder, objects):
|
||||
return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(objects), 0)
|
||||
builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(objects), 0)
|
||||
|
||||
def AddObjects(builder, objects):
|
||||
return SchemaAddObjects(builder, objects)
|
||||
def AddObjects(builder: flatbuffers.Builder, objects: int):
|
||||
SchemaAddObjects(builder, objects)
|
||||
|
||||
def SchemaStartObjectsVector(builder, numElems):
|
||||
return builder.StartVector(4, numElems, 4)
|
||||
|
||||
def StartObjectsVector(builder, numElems):
|
||||
def StartObjectsVector(builder, numElems: int) -> int:
|
||||
return SchemaStartObjectsVector(builder, numElems)
|
||||
|
||||
def SchemaAddEnums(builder, enums):
|
||||
return builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(enums), 0)
|
||||
builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(enums), 0)
|
||||
|
||||
def AddEnums(builder, enums):
|
||||
return SchemaAddEnums(builder, enums)
|
||||
def AddEnums(builder: flatbuffers.Builder, enums: int):
|
||||
SchemaAddEnums(builder, enums)
|
||||
|
||||
def SchemaStartEnumsVector(builder, numElems):
|
||||
return builder.StartVector(4, numElems, 4)
|
||||
|
||||
def StartEnumsVector(builder, numElems):
|
||||
def StartEnumsVector(builder, numElems: int) -> int:
|
||||
return SchemaStartEnumsVector(builder, numElems)
|
||||
|
||||
def SchemaAddFileIdent(builder, fileIdent):
|
||||
return builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(fileIdent), 0)
|
||||
builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(fileIdent), 0)
|
||||
|
||||
def AddFileIdent(builder, fileIdent):
|
||||
return SchemaAddFileIdent(builder, fileIdent)
|
||||
def AddFileIdent(builder: flatbuffers.Builder, fileIdent: int):
|
||||
SchemaAddFileIdent(builder, fileIdent)
|
||||
|
||||
def SchemaAddFileExt(builder, fileExt):
|
||||
return builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(fileExt), 0)
|
||||
builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(fileExt), 0)
|
||||
|
||||
def AddFileExt(builder, fileExt):
|
||||
return SchemaAddFileExt(builder, fileExt)
|
||||
def AddFileExt(builder: flatbuffers.Builder, fileExt: int):
|
||||
SchemaAddFileExt(builder, fileExt)
|
||||
|
||||
def SchemaAddRootTable(builder, rootTable):
|
||||
return builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(rootTable), 0)
|
||||
builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(rootTable), 0)
|
||||
|
||||
def AddRootTable(builder, rootTable):
|
||||
return SchemaAddRootTable(builder, rootTable)
|
||||
def AddRootTable(builder: flatbuffers.Builder, rootTable: int):
|
||||
SchemaAddRootTable(builder, rootTable)
|
||||
|
||||
def SchemaAddServices(builder, services):
|
||||
return builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(services), 0)
|
||||
builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(services), 0)
|
||||
|
||||
def AddServices(builder, services):
|
||||
return SchemaAddServices(builder, services)
|
||||
def AddServices(builder: flatbuffers.Builder, services: int):
|
||||
SchemaAddServices(builder, services)
|
||||
|
||||
def SchemaStartServicesVector(builder, numElems):
|
||||
return builder.StartVector(4, numElems, 4)
|
||||
|
||||
def StartServicesVector(builder, numElems):
|
||||
def StartServicesVector(builder, numElems: int) -> int:
|
||||
return SchemaStartServicesVector(builder, numElems)
|
||||
|
||||
def SchemaAddAdvancedFeatures(builder, advancedFeatures):
|
||||
return builder.PrependUint64Slot(6, advancedFeatures, 0)
|
||||
builder.PrependUint64Slot(6, advancedFeatures, 0)
|
||||
|
||||
def AddAdvancedFeatures(builder, advancedFeatures):
|
||||
return SchemaAddAdvancedFeatures(builder, advancedFeatures)
|
||||
def AddAdvancedFeatures(builder: flatbuffers.Builder, advancedFeatures: int):
|
||||
SchemaAddAdvancedFeatures(builder, advancedFeatures)
|
||||
|
||||
def SchemaAddFbsFiles(builder, fbsFiles):
|
||||
return builder.PrependUOffsetTRelativeSlot(7, flatbuffers.number_types.UOffsetTFlags.py_type(fbsFiles), 0)
|
||||
builder.PrependUOffsetTRelativeSlot(7, flatbuffers.number_types.UOffsetTFlags.py_type(fbsFiles), 0)
|
||||
|
||||
def AddFbsFiles(builder, fbsFiles):
|
||||
return SchemaAddFbsFiles(builder, fbsFiles)
|
||||
def AddFbsFiles(builder: flatbuffers.Builder, fbsFiles: int):
|
||||
SchemaAddFbsFiles(builder, fbsFiles)
|
||||
|
||||
def SchemaStartFbsFilesVector(builder, numElems):
|
||||
return builder.StartVector(4, numElems, 4)
|
||||
|
||||
def StartFbsFilesVector(builder, numElems):
|
||||
def StartFbsFilesVector(builder, numElems: int) -> int:
|
||||
return SchemaStartFbsFilesVector(builder, numElems)
|
||||
|
||||
def SchemaEnd(builder):
|
||||
|
||||
Reference in New Issue
Block a user