mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-02 20:15:34 +00:00
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)
28 lines
674 B
Python
28 lines
674 B
Python
""" A tiny version of `six` to help with backwards compability. """
|
|
|
|
import sys
|
|
|
|
PY2 = sys.version_info[0] == 2
|
|
PY26 = sys.version_info[0:2] == (2, 6)
|
|
PY3 = sys.version_info[0] == 3
|
|
PY34 = sys.version_info[0:2] >= (3, 4)
|
|
|
|
if PY3:
|
|
string_types = (str,)
|
|
binary_type = bytes
|
|
range_func = range
|
|
memoryview_type = memoryview
|
|
struct_bool_decl = "?"
|
|
else:
|
|
string_types = (basestring,)
|
|
binary_type = str
|
|
range_func = xrange
|
|
if PY26:
|
|
memoryview_type = buffer
|
|
struct_bool_decl = "<b"
|
|
else:
|
|
memoryview_type = memoryview
|
|
struct_bool_decl = "?"
|
|
|
|
# NOTE: Future Jython support may require code here (look at `six`).
|