mirror of
https://github.com/wassname/ray.git
synced 2026-06-28 17:50:55 +08:00
Support to auto-generate Java files from flatbuffer (#3749)
* auto gen flatbuffers for Java * Add auto_gen_tool.py * Refine * Add a comment * address comments. * Address comments. * Addressed * Refine * Address comments * Fix typo * Add exception * Address comments. * Refine * Fix lint * Fix * Fix lint and address comment. * Fix lint error
This commit is contained in:
committed by
Philipp Moritz
parent
d2cf8561f2
commit
8674606e26
@@ -0,0 +1,55 @@
|
||||
from __future__ import absolute_import
|
||||
from __future__ import division
|
||||
from __future__ import print_function
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
"""
|
||||
This script is used for modifying the generated java flatbuffer
|
||||
files for the reason: The package declaration in Java is different
|
||||
from python and C++, and there is no option in the flatc command
|
||||
to specify package(namepsace) for Java specially.
|
||||
|
||||
USAGE:
|
||||
python modify_generated_java_flatbuffers_file.py RAY_HOME
|
||||
|
||||
RAY_HOME: The root directory of Ray project.
|
||||
"""
|
||||
|
||||
# constants declarations
|
||||
PACKAGE_DECLARATION = "package org.ray.runtime.generated;"
|
||||
|
||||
|
||||
def add_new_line(file, line_num, text):
|
||||
with open(file, "r") as file_handler:
|
||||
lines = file_handler.readlines()
|
||||
if (line_num <= 0) or (line_num > len(lines) + 1):
|
||||
return False
|
||||
|
||||
lines.insert(line_num - 1, text + os.linesep)
|
||||
with open(file, "w") as file_handler:
|
||||
for line in lines:
|
||||
file_handler.write(line)
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def add_package_declarations(generated_root_path):
|
||||
file_names = os.listdir(generated_root_path)
|
||||
for file_name in file_names:
|
||||
if not file_name.endswith(".java"):
|
||||
continue
|
||||
full_name = os.path.join(generated_root_path, file_name)
|
||||
success = add_new_line(full_name, 2, PACKAGE_DECLARATION)
|
||||
if not success:
|
||||
raise RuntimeError("Failed to add package declarations, "
|
||||
"file name is %s" % full_name)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
ray_home = sys.argv[1]
|
||||
root_path = os.path.join(
|
||||
ray_home,
|
||||
"java/runtime/src/main/java/org/ray/runtime/generated")
|
||||
add_package_declarations(root_path)
|
||||
Reference in New Issue
Block a user