zlmdb 25.10.1__cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of zlmdb might be problematic. Click here for more details.

Files changed (87) hide show
  1. flatbuffers/__init__.py +19 -0
  2. flatbuffers/_version.py +17 -0
  3. flatbuffers/builder.py +776 -0
  4. flatbuffers/compat.py +86 -0
  5. flatbuffers/encode.py +42 -0
  6. flatbuffers/flexbuffers.py +1527 -0
  7. flatbuffers/number_types.py +181 -0
  8. flatbuffers/packer.py +42 -0
  9. flatbuffers/reflection/AdvancedFeatures.py +10 -0
  10. flatbuffers/reflection/BaseType.py +24 -0
  11. flatbuffers/reflection/Enum.py +169 -0
  12. flatbuffers/reflection/EnumVal.py +96 -0
  13. flatbuffers/reflection/Field.py +208 -0
  14. flatbuffers/reflection/KeyValue.py +56 -0
  15. flatbuffers/reflection/Object.py +175 -0
  16. flatbuffers/reflection/RPCCall.py +131 -0
  17. flatbuffers/reflection/Schema.py +206 -0
  18. flatbuffers/reflection/SchemaFile.py +77 -0
  19. flatbuffers/reflection/Service.py +145 -0
  20. flatbuffers/reflection/Type.py +98 -0
  21. flatbuffers/reflection/__init__.py +0 -0
  22. flatbuffers/table.py +129 -0
  23. flatbuffers/util.py +43 -0
  24. zlmdb/__init__.py +312 -0
  25. zlmdb/_database.py +990 -0
  26. zlmdb/_errors.py +31 -0
  27. zlmdb/_meta.py +27 -0
  28. zlmdb/_pmap.py +1667 -0
  29. zlmdb/_schema.py +137 -0
  30. zlmdb/_transaction.py +181 -0
  31. zlmdb/_types.py +1596 -0
  32. zlmdb/_version.py +27 -0
  33. zlmdb/cli.py +41 -0
  34. zlmdb/flatbuffers/__init__.py +5 -0
  35. zlmdb/flatbuffers/reflection/AdvancedFeatures.py +10 -0
  36. zlmdb/flatbuffers/reflection/BaseType.py +25 -0
  37. zlmdb/flatbuffers/reflection/Enum.py +252 -0
  38. zlmdb/flatbuffers/reflection/EnumVal.py +144 -0
  39. zlmdb/flatbuffers/reflection/Field.py +325 -0
  40. zlmdb/flatbuffers/reflection/KeyValue.py +84 -0
  41. zlmdb/flatbuffers/reflection/Object.py +260 -0
  42. zlmdb/flatbuffers/reflection/RPCCall.py +195 -0
  43. zlmdb/flatbuffers/reflection/Schema.py +301 -0
  44. zlmdb/flatbuffers/reflection/SchemaFile.py +112 -0
  45. zlmdb/flatbuffers/reflection/Service.py +213 -0
  46. zlmdb/flatbuffers/reflection/Type.py +148 -0
  47. zlmdb/flatbuffers/reflection/__init__.py +0 -0
  48. zlmdb/flatbuffers/reflection.fbs +152 -0
  49. zlmdb/lmdb/__init__.py +37 -0
  50. zlmdb/lmdb/__main__.py +25 -0
  51. zlmdb/lmdb/_config.py +10 -0
  52. zlmdb/lmdb/_lmdb_cffi.cpython-312-aarch64-linux-gnu.so +0 -0
  53. zlmdb/lmdb/cffi.py +2606 -0
  54. zlmdb/lmdb/tool.py +670 -0
  55. zlmdb/tests/lmdb/__init__.py +0 -0
  56. zlmdb/tests/lmdb/address_book.py +287 -0
  57. zlmdb/tests/lmdb/crash_test.py +339 -0
  58. zlmdb/tests/lmdb/cursor_test.py +333 -0
  59. zlmdb/tests/lmdb/env_test.py +919 -0
  60. zlmdb/tests/lmdb/getmulti_test.py +92 -0
  61. zlmdb/tests/lmdb/iteration_test.py +258 -0
  62. zlmdb/tests/lmdb/package_test.py +70 -0
  63. zlmdb/tests/lmdb/test_lmdb.py +188 -0
  64. zlmdb/tests/lmdb/testlib.py +185 -0
  65. zlmdb/tests/lmdb/tool_test.py +60 -0
  66. zlmdb/tests/lmdb/txn_test.py +575 -0
  67. zlmdb/tests/orm/MNodeLog.py +853 -0
  68. zlmdb/tests/orm/__init__.py +0 -0
  69. zlmdb/tests/orm/_schema_fbs.py +215 -0
  70. zlmdb/tests/orm/_schema_mnode_log.py +1201 -0
  71. zlmdb/tests/orm/_schema_py2.py +250 -0
  72. zlmdb/tests/orm/_schema_py3.py +307 -0
  73. zlmdb/tests/orm/_test_flatbuffers.py +144 -0
  74. zlmdb/tests/orm/_test_serialization.py +144 -0
  75. zlmdb/tests/orm/test_basic.py +217 -0
  76. zlmdb/tests/orm/test_etcd.py +275 -0
  77. zlmdb/tests/orm/test_pmap_indexes.py +466 -0
  78. zlmdb/tests/orm/test_pmap_types.py +90 -0
  79. zlmdb/tests/orm/test_pmaps.py +295 -0
  80. zlmdb/tests/orm/test_select.py +619 -0
  81. zlmdb-25.10.1.dist-info/METADATA +264 -0
  82. zlmdb-25.10.1.dist-info/RECORD +87 -0
  83. zlmdb-25.10.1.dist-info/WHEEL +7 -0
  84. zlmdb-25.10.1.dist-info/entry_points.txt +2 -0
  85. zlmdb-25.10.1.dist-info/licenses/LICENSE +137 -0
  86. zlmdb-25.10.1.dist-info/licenses/NOTICE +41 -0
  87. zlmdb-25.10.1.dist-info/top_level.txt +2 -0
@@ -0,0 +1,206 @@
1
+ # automatically generated by the FlatBuffers compiler, do not modify
2
+
3
+ # namespace: reflection
4
+
5
+ import flatbuffers
6
+ from flatbuffers.compat import import_numpy
7
+ np = import_numpy()
8
+
9
+ class Schema(object):
10
+ __slots__ = ['_tab']
11
+
12
+ @classmethod
13
+ def GetRootAs(cls, buf, offset=0):
14
+ n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
15
+ x = Schema()
16
+ x.Init(buf, n + offset)
17
+ return x
18
+
19
+ @classmethod
20
+ def GetRootAsSchema(cls, buf, offset=0):
21
+ """This method is deprecated. Please switch to GetRootAs."""
22
+ return cls.GetRootAs(buf, offset)
23
+ @classmethod
24
+ def SchemaBufferHasIdentifier(cls, buf, offset, size_prefixed=False):
25
+ return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x42\x46\x42\x53", size_prefixed=size_prefixed)
26
+
27
+ # Schema
28
+ def Init(self, buf, pos):
29
+ self._tab = flatbuffers.table.Table(buf, pos)
30
+
31
+ # Schema
32
+ def Objects(self, j):
33
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
34
+ if o != 0:
35
+ x = self._tab.Vector(o)
36
+ x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4
37
+ x = self._tab.Indirect(x)
38
+ from reflection.Object import Object
39
+ obj = Object()
40
+ obj.Init(self._tab.Bytes, x)
41
+ return obj
42
+ return None
43
+
44
+ # Schema
45
+ def ObjectsLength(self):
46
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
47
+ if o != 0:
48
+ return self._tab.VectorLen(o)
49
+ return 0
50
+
51
+ # Schema
52
+ def ObjectsIsNone(self):
53
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
54
+ return o == 0
55
+
56
+ # Schema
57
+ def Enums(self, j):
58
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
59
+ if o != 0:
60
+ x = self._tab.Vector(o)
61
+ x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4
62
+ x = self._tab.Indirect(x)
63
+ from reflection.Enum import Enum
64
+ obj = Enum()
65
+ obj.Init(self._tab.Bytes, x)
66
+ return obj
67
+ return None
68
+
69
+ # Schema
70
+ def EnumsLength(self):
71
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
72
+ if o != 0:
73
+ return self._tab.VectorLen(o)
74
+ return 0
75
+
76
+ # Schema
77
+ def EnumsIsNone(self):
78
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
79
+ return o == 0
80
+
81
+ # Schema
82
+ def FileIdent(self):
83
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8))
84
+ if o != 0:
85
+ return self._tab.String(o + self._tab.Pos)
86
+ return None
87
+
88
+ # Schema
89
+ def FileExt(self):
90
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10))
91
+ if o != 0:
92
+ return self._tab.String(o + self._tab.Pos)
93
+ return None
94
+
95
+ # Schema
96
+ def RootTable(self):
97
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12))
98
+ if o != 0:
99
+ x = self._tab.Indirect(o + self._tab.Pos)
100
+ from reflection.Object import Object
101
+ obj = Object()
102
+ obj.Init(self._tab.Bytes, x)
103
+ return obj
104
+ return None
105
+
106
+ # Schema
107
+ def Services(self, j):
108
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14))
109
+ if o != 0:
110
+ x = self._tab.Vector(o)
111
+ x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4
112
+ x = self._tab.Indirect(x)
113
+ from reflection.Service import Service
114
+ obj = Service()
115
+ obj.Init(self._tab.Bytes, x)
116
+ return obj
117
+ return None
118
+
119
+ # Schema
120
+ def ServicesLength(self):
121
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14))
122
+ if o != 0:
123
+ return self._tab.VectorLen(o)
124
+ return 0
125
+
126
+ # Schema
127
+ def ServicesIsNone(self):
128
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14))
129
+ return o == 0
130
+
131
+ # Schema
132
+ def AdvancedFeatures(self):
133
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(16))
134
+ if o != 0:
135
+ return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos)
136
+ return 0
137
+
138
+ # All the files used in this compilation. Files are relative to where
139
+ # flatc was invoked.
140
+ # Schema
141
+ def FbsFiles(self, j):
142
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(18))
143
+ if o != 0:
144
+ x = self._tab.Vector(o)
145
+ x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4
146
+ x = self._tab.Indirect(x)
147
+ from reflection.SchemaFile import SchemaFile
148
+ obj = SchemaFile()
149
+ obj.Init(self._tab.Bytes, x)
150
+ return obj
151
+ return None
152
+
153
+ # Schema
154
+ def FbsFilesLength(self):
155
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(18))
156
+ if o != 0:
157
+ return self._tab.VectorLen(o)
158
+ return 0
159
+
160
+ # Schema
161
+ def FbsFilesIsNone(self):
162
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(18))
163
+ return o == 0
164
+
165
+ def SchemaStart(builder): builder.StartObject(8)
166
+ def Start(builder):
167
+ return SchemaStart(builder)
168
+ def SchemaAddObjects(builder, objects): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(objects), 0)
169
+ def AddObjects(builder, objects):
170
+ return SchemaAddObjects(builder, objects)
171
+ def SchemaStartObjectsVector(builder, numElems): return builder.StartVector(4, numElems, 4)
172
+ def StartObjectsVector(builder, numElems):
173
+ return SchemaStartObjectsVector(builder, numElems)
174
+ def SchemaAddEnums(builder, enums): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(enums), 0)
175
+ def AddEnums(builder, enums):
176
+ return SchemaAddEnums(builder, enums)
177
+ def SchemaStartEnumsVector(builder, numElems): return builder.StartVector(4, numElems, 4)
178
+ def StartEnumsVector(builder, numElems):
179
+ return SchemaStartEnumsVector(builder, numElems)
180
+ def SchemaAddFileIdent(builder, fileIdent): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(fileIdent), 0)
181
+ def AddFileIdent(builder, fileIdent):
182
+ return SchemaAddFileIdent(builder, fileIdent)
183
+ def SchemaAddFileExt(builder, fileExt): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(fileExt), 0)
184
+ def AddFileExt(builder, fileExt):
185
+ return SchemaAddFileExt(builder, fileExt)
186
+ def SchemaAddRootTable(builder, rootTable): builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(rootTable), 0)
187
+ def AddRootTable(builder, rootTable):
188
+ return SchemaAddRootTable(builder, rootTable)
189
+ def SchemaAddServices(builder, services): builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(services), 0)
190
+ def AddServices(builder, services):
191
+ return SchemaAddServices(builder, services)
192
+ def SchemaStartServicesVector(builder, numElems): return builder.StartVector(4, numElems, 4)
193
+ def StartServicesVector(builder, numElems):
194
+ return SchemaStartServicesVector(builder, numElems)
195
+ def SchemaAddAdvancedFeatures(builder, advancedFeatures): builder.PrependUint64Slot(6, advancedFeatures, 0)
196
+ def AddAdvancedFeatures(builder, advancedFeatures):
197
+ return SchemaAddAdvancedFeatures(builder, advancedFeatures)
198
+ def SchemaAddFbsFiles(builder, fbsFiles): builder.PrependUOffsetTRelativeSlot(7, flatbuffers.number_types.UOffsetTFlags.py_type(fbsFiles), 0)
199
+ def AddFbsFiles(builder, fbsFiles):
200
+ return SchemaAddFbsFiles(builder, fbsFiles)
201
+ def SchemaStartFbsFilesVector(builder, numElems): return builder.StartVector(4, numElems, 4)
202
+ def StartFbsFilesVector(builder, numElems):
203
+ return SchemaStartFbsFilesVector(builder, numElems)
204
+ def SchemaEnd(builder): return builder.EndObject()
205
+ def End(builder):
206
+ return SchemaEnd(builder)
@@ -0,0 +1,77 @@
1
+ # automatically generated by the FlatBuffers compiler, do not modify
2
+
3
+ # namespace: reflection
4
+
5
+ import flatbuffers
6
+ from flatbuffers.compat import import_numpy
7
+ np = import_numpy()
8
+
9
+ # File specific information.
10
+ # Symbols declared within a file may be recovered by iterating over all
11
+ # symbols and examining the `declaration_file` field.
12
+ class SchemaFile(object):
13
+ __slots__ = ['_tab']
14
+
15
+ @classmethod
16
+ def GetRootAs(cls, buf, offset=0):
17
+ n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
18
+ x = SchemaFile()
19
+ x.Init(buf, n + offset)
20
+ return x
21
+
22
+ @classmethod
23
+ def GetRootAsSchemaFile(cls, buf, offset=0):
24
+ """This method is deprecated. Please switch to GetRootAs."""
25
+ return cls.GetRootAs(buf, offset)
26
+ @classmethod
27
+ def SchemaFileBufferHasIdentifier(cls, buf, offset, size_prefixed=False):
28
+ return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x42\x46\x42\x53", size_prefixed=size_prefixed)
29
+
30
+ # SchemaFile
31
+ def Init(self, buf, pos):
32
+ self._tab = flatbuffers.table.Table(buf, pos)
33
+
34
+ # Filename, relative to project root.
35
+ # SchemaFile
36
+ def Filename(self):
37
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
38
+ if o != 0:
39
+ return self._tab.String(o + self._tab.Pos)
40
+ return None
41
+
42
+ # Names of included files, relative to project root.
43
+ # SchemaFile
44
+ def IncludedFilenames(self, j):
45
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
46
+ if o != 0:
47
+ a = self._tab.Vector(o)
48
+ return self._tab.String(a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4))
49
+ return ""
50
+
51
+ # SchemaFile
52
+ def IncludedFilenamesLength(self):
53
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
54
+ if o != 0:
55
+ return self._tab.VectorLen(o)
56
+ return 0
57
+
58
+ # SchemaFile
59
+ def IncludedFilenamesIsNone(self):
60
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
61
+ return o == 0
62
+
63
+ def SchemaFileStart(builder): builder.StartObject(2)
64
+ def Start(builder):
65
+ return SchemaFileStart(builder)
66
+ def SchemaFileAddFilename(builder, filename): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(filename), 0)
67
+ def AddFilename(builder, filename):
68
+ return SchemaFileAddFilename(builder, filename)
69
+ def SchemaFileAddIncludedFilenames(builder, includedFilenames): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(includedFilenames), 0)
70
+ def AddIncludedFilenames(builder, includedFilenames):
71
+ return SchemaFileAddIncludedFilenames(builder, includedFilenames)
72
+ def SchemaFileStartIncludedFilenamesVector(builder, numElems): return builder.StartVector(4, numElems, 4)
73
+ def StartIncludedFilenamesVector(builder, numElems):
74
+ return SchemaFileStartIncludedFilenamesVector(builder, numElems)
75
+ def SchemaFileEnd(builder): return builder.EndObject()
76
+ def End(builder):
77
+ return SchemaFileEnd(builder)
@@ -0,0 +1,145 @@
1
+ # automatically generated by the FlatBuffers compiler, do not modify
2
+
3
+ # namespace: reflection
4
+
5
+ import flatbuffers
6
+ from flatbuffers.compat import import_numpy
7
+ np = import_numpy()
8
+
9
+ class Service(object):
10
+ __slots__ = ['_tab']
11
+
12
+ @classmethod
13
+ def GetRootAs(cls, buf, offset=0):
14
+ n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
15
+ x = Service()
16
+ x.Init(buf, n + offset)
17
+ return x
18
+
19
+ @classmethod
20
+ def GetRootAsService(cls, buf, offset=0):
21
+ """This method is deprecated. Please switch to GetRootAs."""
22
+ return cls.GetRootAs(buf, offset)
23
+ @classmethod
24
+ def ServiceBufferHasIdentifier(cls, buf, offset, size_prefixed=False):
25
+ return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x42\x46\x42\x53", size_prefixed=size_prefixed)
26
+
27
+ # Service
28
+ def Init(self, buf, pos):
29
+ self._tab = flatbuffers.table.Table(buf, pos)
30
+
31
+ # Service
32
+ def Name(self):
33
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
34
+ if o != 0:
35
+ return self._tab.String(o + self._tab.Pos)
36
+ return None
37
+
38
+ # Service
39
+ def Calls(self, j):
40
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
41
+ if o != 0:
42
+ x = self._tab.Vector(o)
43
+ x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4
44
+ x = self._tab.Indirect(x)
45
+ from reflection.RPCCall import RPCCall
46
+ obj = RPCCall()
47
+ obj.Init(self._tab.Bytes, x)
48
+ return obj
49
+ return None
50
+
51
+ # Service
52
+ def CallsLength(self):
53
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
54
+ if o != 0:
55
+ return self._tab.VectorLen(o)
56
+ return 0
57
+
58
+ # Service
59
+ def CallsIsNone(self):
60
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
61
+ return o == 0
62
+
63
+ # Service
64
+ def Attributes(self, j):
65
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8))
66
+ if o != 0:
67
+ x = self._tab.Vector(o)
68
+ x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4
69
+ x = self._tab.Indirect(x)
70
+ from reflection.KeyValue import KeyValue
71
+ obj = KeyValue()
72
+ obj.Init(self._tab.Bytes, x)
73
+ return obj
74
+ return None
75
+
76
+ # Service
77
+ def AttributesLength(self):
78
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8))
79
+ if o != 0:
80
+ return self._tab.VectorLen(o)
81
+ return 0
82
+
83
+ # Service
84
+ def AttributesIsNone(self):
85
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8))
86
+ return o == 0
87
+
88
+ # Service
89
+ def Documentation(self, j):
90
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10))
91
+ if o != 0:
92
+ a = self._tab.Vector(o)
93
+ return self._tab.String(a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4))
94
+ return ""
95
+
96
+ # Service
97
+ def DocumentationLength(self):
98
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10))
99
+ if o != 0:
100
+ return self._tab.VectorLen(o)
101
+ return 0
102
+
103
+ # Service
104
+ def DocumentationIsNone(self):
105
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10))
106
+ return o == 0
107
+
108
+ # File that this Service is declared in.
109
+ # Service
110
+ def DeclarationFile(self):
111
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12))
112
+ if o != 0:
113
+ return self._tab.String(o + self._tab.Pos)
114
+ return None
115
+
116
+ def ServiceStart(builder): builder.StartObject(5)
117
+ def Start(builder):
118
+ return ServiceStart(builder)
119
+ def ServiceAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0)
120
+ def AddName(builder, name):
121
+ return ServiceAddName(builder, name)
122
+ def ServiceAddCalls(builder, calls): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(calls), 0)
123
+ def AddCalls(builder, calls):
124
+ return ServiceAddCalls(builder, calls)
125
+ def ServiceStartCallsVector(builder, numElems): return builder.StartVector(4, numElems, 4)
126
+ def StartCallsVector(builder, numElems):
127
+ return ServiceStartCallsVector(builder, numElems)
128
+ def ServiceAddAttributes(builder, attributes): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0)
129
+ def AddAttributes(builder, attributes):
130
+ return ServiceAddAttributes(builder, attributes)
131
+ def ServiceStartAttributesVector(builder, numElems): return builder.StartVector(4, numElems, 4)
132
+ def StartAttributesVector(builder, numElems):
133
+ return ServiceStartAttributesVector(builder, numElems)
134
+ def ServiceAddDocumentation(builder, documentation): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0)
135
+ def AddDocumentation(builder, documentation):
136
+ return ServiceAddDocumentation(builder, documentation)
137
+ def ServiceStartDocumentationVector(builder, numElems): return builder.StartVector(4, numElems, 4)
138
+ def StartDocumentationVector(builder, numElems):
139
+ return ServiceStartDocumentationVector(builder, numElems)
140
+ def ServiceAddDeclarationFile(builder, declarationFile): builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(declarationFile), 0)
141
+ def AddDeclarationFile(builder, declarationFile):
142
+ return ServiceAddDeclarationFile(builder, declarationFile)
143
+ def ServiceEnd(builder): return builder.EndObject()
144
+ def End(builder):
145
+ return ServiceEnd(builder)
@@ -0,0 +1,98 @@
1
+ # automatically generated by the FlatBuffers compiler, do not modify
2
+
3
+ # namespace: reflection
4
+
5
+ import flatbuffers
6
+ from flatbuffers.compat import import_numpy
7
+ np = import_numpy()
8
+
9
+ class Type(object):
10
+ __slots__ = ['_tab']
11
+
12
+ @classmethod
13
+ def GetRootAs(cls, buf, offset=0):
14
+ n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
15
+ x = Type()
16
+ x.Init(buf, n + offset)
17
+ return x
18
+
19
+ @classmethod
20
+ def GetRootAsType(cls, buf, offset=0):
21
+ """This method is deprecated. Please switch to GetRootAs."""
22
+ return cls.GetRootAs(buf, offset)
23
+ @classmethod
24
+ def TypeBufferHasIdentifier(cls, buf, offset, size_prefixed=False):
25
+ return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x42\x46\x42\x53", size_prefixed=size_prefixed)
26
+
27
+ # Type
28
+ def Init(self, buf, pos):
29
+ self._tab = flatbuffers.table.Table(buf, pos)
30
+
31
+ # Type
32
+ def BaseType(self):
33
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
34
+ if o != 0:
35
+ return self._tab.Get(flatbuffers.number_types.Int8Flags, o + self._tab.Pos)
36
+ return 0
37
+
38
+ # Type
39
+ def Element(self):
40
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
41
+ if o != 0:
42
+ return self._tab.Get(flatbuffers.number_types.Int8Flags, o + self._tab.Pos)
43
+ return 0
44
+
45
+ # Type
46
+ def Index(self):
47
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8))
48
+ if o != 0:
49
+ return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos)
50
+ return -1
51
+
52
+ # Type
53
+ def FixedLength(self):
54
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10))
55
+ if o != 0:
56
+ return self._tab.Get(flatbuffers.number_types.Uint16Flags, o + self._tab.Pos)
57
+ return 0
58
+
59
+ # The size (octets) of the `base_type` field.
60
+ # Type
61
+ def BaseSize(self):
62
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12))
63
+ if o != 0:
64
+ return self._tab.Get(flatbuffers.number_types.Uint32Flags, o + self._tab.Pos)
65
+ return 4
66
+
67
+ # The size (octets) of the `element` field, if present.
68
+ # Type
69
+ def ElementSize(self):
70
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14))
71
+ if o != 0:
72
+ return self._tab.Get(flatbuffers.number_types.Uint32Flags, o + self._tab.Pos)
73
+ return 0
74
+
75
+ def TypeStart(builder): builder.StartObject(6)
76
+ def Start(builder):
77
+ return TypeStart(builder)
78
+ def TypeAddBaseType(builder, baseType): builder.PrependInt8Slot(0, baseType, 0)
79
+ def AddBaseType(builder, baseType):
80
+ return TypeAddBaseType(builder, baseType)
81
+ def TypeAddElement(builder, element): builder.PrependInt8Slot(1, element, 0)
82
+ def AddElement(builder, element):
83
+ return TypeAddElement(builder, element)
84
+ def TypeAddIndex(builder, index): builder.PrependInt32Slot(2, index, -1)
85
+ def AddIndex(builder, index):
86
+ return TypeAddIndex(builder, index)
87
+ def TypeAddFixedLength(builder, fixedLength): builder.PrependUint16Slot(3, fixedLength, 0)
88
+ def AddFixedLength(builder, fixedLength):
89
+ return TypeAddFixedLength(builder, fixedLength)
90
+ def TypeAddBaseSize(builder, baseSize): builder.PrependUint32Slot(4, baseSize, 4)
91
+ def AddBaseSize(builder, baseSize):
92
+ return TypeAddBaseSize(builder, baseSize)
93
+ def TypeAddElementSize(builder, elementSize): builder.PrependUint32Slot(5, elementSize, 0)
94
+ def AddElementSize(builder, elementSize):
95
+ return TypeAddElementSize(builder, elementSize)
96
+ def TypeEnd(builder): return builder.EndObject()
97
+ def End(builder):
98
+ return TypeEnd(builder)
File without changes
flatbuffers/table.py ADDED
@@ -0,0 +1,129 @@
1
+ # Copyright 2014 Google Inc. All rights reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from . import encode
16
+ from . import number_types as N
17
+
18
+
19
+ class Table(object):
20
+ """Table wraps a byte slice and provides read access to its data.
21
+
22
+ The variable `Pos` indicates the root of the FlatBuffers object therein."""
23
+
24
+ __slots__ = ("Bytes", "Pos")
25
+
26
+ def __init__(self, buf, pos):
27
+ N.enforce_number(pos, N.UOffsetTFlags)
28
+
29
+ self.Bytes = buf
30
+ self.Pos = pos
31
+
32
+ def Offset(self, vtableOffset):
33
+ """Offset provides access into the Table's vtable.
34
+
35
+ Deprecated fields are ignored by checking the vtable's length."""
36
+
37
+ vtable = self.Pos - self.Get(N.SOffsetTFlags, self.Pos)
38
+ vtableEnd = self.Get(N.VOffsetTFlags, vtable)
39
+ if vtableOffset < vtableEnd:
40
+ return self.Get(N.VOffsetTFlags, vtable + vtableOffset)
41
+ return 0
42
+
43
+ def Indirect(self, off):
44
+ """Indirect retrieves the relative offset stored at `offset`."""
45
+ N.enforce_number(off, N.UOffsetTFlags)
46
+ return off + encode.Get(N.UOffsetTFlags.packer_type, self.Bytes, off)
47
+
48
+ def String(self, off):
49
+ """String gets a string from data stored inside the flatbuffer."""
50
+ N.enforce_number(off, N.UOffsetTFlags)
51
+ off += encode.Get(N.UOffsetTFlags.packer_type, self.Bytes, off)
52
+ start = off + N.UOffsetTFlags.bytewidth
53
+ length = encode.Get(N.UOffsetTFlags.packer_type, self.Bytes, off)
54
+ return bytes(self.Bytes[start:start+length])
55
+
56
+ def VectorLen(self, off):
57
+ """VectorLen retrieves the length of the vector whose offset is stored
58
+ at "off" in this object."""
59
+ N.enforce_number(off, N.UOffsetTFlags)
60
+
61
+ off += self.Pos
62
+ off += encode.Get(N.UOffsetTFlags.packer_type, self.Bytes, off)
63
+ ret = encode.Get(N.UOffsetTFlags.packer_type, self.Bytes, off)
64
+ return ret
65
+
66
+ def Vector(self, off):
67
+ """Vector retrieves the start of data of the vector whose offset is
68
+ stored at "off" in this object."""
69
+ N.enforce_number(off, N.UOffsetTFlags)
70
+
71
+ off += self.Pos
72
+ x = off + self.Get(N.UOffsetTFlags, off)
73
+ # data starts after metadata containing the vector length
74
+ x += N.UOffsetTFlags.bytewidth
75
+ return x
76
+
77
+ def Union(self, t2, off):
78
+ """Union initializes any Table-derived type to point to the union at
79
+ the given offset."""
80
+ assert type(t2) is Table
81
+ N.enforce_number(off, N.UOffsetTFlags)
82
+
83
+ off += self.Pos
84
+ t2.Pos = off + self.Get(N.UOffsetTFlags, off)
85
+ t2.Bytes = self.Bytes
86
+
87
+ def Get(self, flags, off):
88
+ """
89
+ Get retrieves a value of the type specified by `flags` at the
90
+ given offset.
91
+ """
92
+ N.enforce_number(off, N.UOffsetTFlags)
93
+ return flags.py_type(encode.Get(flags.packer_type, self.Bytes, off))
94
+
95
+ def GetSlot(self, slot, d, validator_flags):
96
+ N.enforce_number(slot, N.VOffsetTFlags)
97
+ if validator_flags is not None:
98
+ N.enforce_number(d, validator_flags)
99
+ off = self.Offset(slot)
100
+ if off == 0:
101
+ return d
102
+ return self.Get(validator_flags, self.Pos + off)
103
+
104
+ def GetVectorAsNumpy(self, flags, off):
105
+ """
106
+ GetVectorAsNumpy returns the vector that starts at `Vector(off)`
107
+ as a numpy array with the type specified by `flags`. The array is
108
+ a `view` into Bytes, so modifying the returned array will
109
+ modify Bytes in place.
110
+ """
111
+ offset = self.Vector(off)
112
+ length = self.VectorLen(off) # TODO: length accounts for bytewidth, right?
113
+ numpy_dtype = N.to_numpy_type(flags)
114
+ return encode.GetVectorAsNumpy(numpy_dtype, self.Bytes, length, offset)
115
+
116
+ def GetVOffsetTSlot(self, slot, d):
117
+ """
118
+ GetVOffsetTSlot retrieves the VOffsetT that the given vtable location
119
+ points to. If the vtable value is zero, the default value `d`
120
+ will be returned.
121
+ """
122
+
123
+ N.enforce_number(slot, N.VOffsetTFlags)
124
+ N.enforce_number(d, N.VOffsetTFlags)
125
+
126
+ off = self.Offset(slot)
127
+ if off == 0:
128
+ return d
129
+ return off