From b97cb1d46690321235f814e5a52cb8186380bce3 Mon Sep 17 00:00:00 2001 From: Kevin Cheng Date: Thu, 14 Oct 2021 11:53:39 -0700 Subject: Both serializer and schema carry version info now - version number now encoded in serializer as well - rename experimental to draft - rename internal function from FreezeBuilder/InitWithBuf to Serialize/Deserialize Signed-off-by: Kevin Cheng Change-Id: I70cb07832fdf66c6bde3d18aadf1f3646765887e --- python/tosa/Version.py | 10 +++++----- python/tosa_serializer.py | 41 +++++++++-------------------------------- 2 files changed, 14 insertions(+), 37 deletions(-) (limited to 'python') diff --git a/python/tosa/Version.py b/python/tosa/Version.py index a63c482..8414c8c 100644 --- a/python/tosa/Version.py +++ b/python/tosa/Version.py @@ -51,7 +51,7 @@ class Version(object): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) - return 22 + return 23 # Version def _patch(self): @@ -61,15 +61,15 @@ class Version(object): return 0 # Version - def _experimental(self): + def _draft(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) if o != 0: return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) - return False + return True def VersionStart(builder): builder.StartObject(4) def VersionAdd_major(builder, Major): builder.PrependInt32Slot(0, Major, 0) -def VersionAdd_minor(builder, Minor): builder.PrependInt32Slot(1, Minor, 22) +def VersionAdd_minor(builder, Minor): builder.PrependInt32Slot(1, Minor, 23) def VersionAdd_patch(builder, Patch): builder.PrependInt32Slot(2, Patch, 0) -def VersionAdd_experimental(builder, Experimental): builder.PrependBoolSlot(3, Experimental, 0) +def VersionAdd_draft(builder, Draft): builder.PrependBoolSlot(3, Draft, 1) def VersionEnd(builder): return builder.EndObject() diff --git a/python/tosa_serializer.py b/python/tosa_serializer.py index 04b2fc4..f0d7c63 100644 --- a/python/tosa_serializer.py +++ b/python/tosa_serializer.py @@ -35,6 +35,14 @@ from tosa_ref_run import TosaReturnCode import tosa +TOSA_VERSION_MAJOR = 0 +TOSA_VERSION_MINOR = 23 +TOSA_VERSION_PATCH = 0 +TOSA_VERSION_DRAFT = True +TOSA_VERSION = [TOSA_VERSION_MAJOR, + TOSA_VERSION_MINOR, + TOSA_VERSION_PATCH, + TOSA_VERSION_DRAFT] # With the way flatc generates its python types, there is no programatic way # to get string names for the integer types. Manually maintain a string table # here. @@ -570,10 +578,6 @@ class TosaSerializer: def __init__(self, pathPrefix): # Get the global TOSA version if not already defined - try: - TOSA_VERSION - except NameError: - TosaSerializer.setTosaVersion() self.builder = flatbuffers.Builder(0) @@ -688,7 +692,7 @@ class TosaSerializer: Version.VersionAdd_major(builder, TOSA_VERSION[0]) Version.VersionAdd_minor(builder, TOSA_VERSION[1]) Version.VersionAdd_patch(builder, TOSA_VERSION[2]) - Version.VersionAdd_experimental(builder, TOSA_VERSION[3]) + Version.VersionAdd_draft(builder, TOSA_VERSION[3]) version = Version.VersionEnd(builder) fbv_bb = TosaSerializer.serializeObjVec( @@ -805,30 +809,3 @@ class TosaSerializer: else: return [val] - @staticmethod - def setTosaVersion(): - # Create a dummy flatbuffers file with the default version information - # There does not appear to be a better way to get a constant from a - # flatbuffer schema file - builder = flatbuffers.Builder(0) - Version.VersionStart(builder) - ver = Version.VersionEnd(builder) - TosaGraph.TosaGraphStart(builder) - TosaGraph.TosaGraphAddVersion(builder, ver) - gr = TosaGraph.TosaGraphEnd(builder) - builder.Finish(gr) - - out = builder.Output() - - gr = TosaGraph.TosaGraph() - root = gr.GetRootAsTosaGraph(out, 0) - - # Store the version as a global variable so that it only needs to be - # generated once per process. - global TOSA_VERSION - TOSA_VERSION = [ - root.Version()._major(), - root.Version()._minor(), - root.Version()._patch(), - root.Version()._experimental(), - ] -- cgit v1.2.1