forked from BigfootDev/flatbuffers
Implement code generation and self-contained runtime library for Python.
The test suite verifies:
- Correctness of generated Python code by comparing output to that of
the other language ports.
- The exact bytes in the Builder buffer during many scenarios.
- Vtable deduplication correctness.
- Edge cases for table construction, via a fuzzer derived from the Go
implementation.
- All code is simultaneously valid in Python 2.6, 2.7, and 3.4.
The test suite includes benchmarks for:
- Building 'gold' data.
- Parsing 'gold' data.
- Deduplicating vtables.
All tests pass on this author's system for the following Python
implementations:
- CPython 2.6.7
- CPython 2.7.8
- CPython 3.4.2
- PyPy 2.5.0 (CPython 2.7.8 compatible)
29 lines
568 B
Python
29 lines
568 B
Python
"""
|
|
Provide pre-compiled struct packers for encoding and decoding.
|
|
|
|
See: https://docs.python.org/2/library/struct.html#format-characters
|
|
"""
|
|
|
|
import struct
|
|
from . import compat
|
|
|
|
|
|
boolean = struct.Struct(compat.struct_bool_decl)
|
|
|
|
uint8 = struct.Struct("<B")
|
|
uint16 = struct.Struct("<H")
|
|
uint32 = struct.Struct("<I")
|
|
uint64 = struct.Struct("<Q")
|
|
|
|
int8 = struct.Struct("<b")
|
|
int16 = struct.Struct("<h")
|
|
int32 = struct.Struct("<i")
|
|
int64 = struct.Struct("<q")
|
|
|
|
float32 = struct.Struct("<f")
|
|
float64 = struct.Struct("<d")
|
|
|
|
uoffset = uint32
|
|
soffset = int32
|
|
voffset = uint16
|