• lu-wang-g's avatar
    Flatbuffers Python Object API (#5616) · 65f87035
    lu-wang-g authored
    * Flatbuffers Python Object API
    
    Implement the logic to generate the Python object API that can
    unpack the data from a buf class into an object class, and pack
    the data of an object class to a buf class.
    
    * Fix the build issues
    
    Remove unused parameters and replace auto in the for-loop statement
    with std::string to make it compatible with VS2010.
    
    * Fix the build issues.
    
    * Add support for Array type
    
    Added logic to handle Array type in Python Object API. Updated the
    generated code accordingly.
    
    * Fix the old style casting from int to char
    
    * Fixed another conversion from int to char
    
    * Fixed the import for typing
    
    Importing typing may cause errors when a machine do not have the
    moduel typing installed. This PR fixes the issue by guarding
    "import typing" with the "try/except" statement.
    
    * Fix issue of iterating the vector of import list
    
    * Update the generated examples using generate_code.sh
    
    * Fix the import order for typing
    
    The import list was stored in unordered_set, so that each generated
    codes may have different import order. Therefore, it failed in the
    consistency test where two generated copies need to have exactly the
    same apperance.
    
    * Optimize unpack using numpy
    
    Use numpy to unpack vector whenever it is possible to improve unpack
    performance.
    
    Also, added codegen command for Python specificly in generate_code.sh,
    because --no-includes cannot be turn on for Python.
    
    * Fix the import order
    
    * Update generate_code.bat for windows accordingly
    
    * Replace error message with pass
    
    Avoid printing error message for every Python2 users about typing.
    Replace it with pass.
    65f87035