1515import starlark as sl
1616
1717
18+ _PY_CALLABLES = (
19+ "py_gapic_assembly_pkg" ,
20+ "py_gapic_library" ,
21+ "py_test" ,
22+ "py_proto_library" ,
23+ "py_grpc_library" ,
24+ "py_import" ,
25+ )
26+
27+ _JAVA_CALLABLES = (
28+ "java_gapic_assembly_gradle_pkg" ,
29+ "java_gapic_library" ,
30+ "java_gapic_test" ,
31+ "java_grpc_library" ,
32+ "java_proto_library" ,
33+ )
34+
35+ _GO_CALLABLES = (
36+ "go_gapic_assembly_pkg" ,
37+ "go_gapic_library" ,
38+ "go_proto_library" ,
39+ "go_grpc_library" ,
40+ )
41+
42+ _PHP_CALLABLES = (
43+ "php_gapic_assembly_pkg" ,
44+ "php_gapic_library" ,
45+ "php_grpc_library" ,
46+ "php_proto_library" ,
47+ )
48+
49+ _NODEJS_CALLABLES = ("nodejs_gapic_assembly_pkg" , "nodejs_gapic_library" )
50+
51+ _RUBY_CALLABLES = (
52+ "ruby_ads_gapic_library" ,
53+ "ruby_cloud_gapic_library" ,
54+ "ruby_gapic_assembly_pkg" ,
55+ "ruby_grpc_library" ,
56+ "ruby_proto_library" ,
57+ )
58+
59+ _CSHARP_CALLABLES = (
60+ "csharp_gapic_assembly_pkg" ,
61+ "csharp_gapic_library" ,
62+ "csharp_grpc_library" ,
63+ "csharp_proto_library" ,
64+ )
65+
66+ _CC_CALLABLES = ("cc_grpc_library" , "cc_gapic_library" , "cc_proto_library" )
67+
68+ _MISC_CALLABLES = (
69+ "moved_proto_library" ,
70+ "proto_library" ,
71+ "proto_library_with_info" ,
72+ "upb_c_proto_library" ,
73+ )
74+
75+ _CALLABLE_MAP = {
76+ "@rules_proto//proto:defs.bzl" : ("proto_library" ,),
77+ "@com_google_googleapis_imports//:imports.bzl" : (
78+ _PY_CALLABLES
79+ + _JAVA_CALLABLES
80+ + _GO_CALLABLES
81+ + _PHP_CALLABLES
82+ + _NODEJS_CALLABLES
83+ + _RUBY_CALLABLES
84+ + _CSHARP_CALLABLES
85+ + _CC_CALLABLES
86+ + _MISC_CALLABLES
87+ ),
88+ }
89+
90+
1891def parse_content (content : str ) -> dict :
1992 """Parses content from BUILD.bazel and returns a dictionary
2093 containing bazel rules and arguments.
@@ -36,51 +109,6 @@ def bazel_target(**args):
36109 def noop_bazel_rule (** args ):
37110 pass
38111
39- def load (name ):
40- mod = sl .Module ()
41- if name == "@rules_proto//proto:defs.bzl" :
42- mod .add_callable ("proto_library" , bazel_target )
43- elif name == "@com_google_googleapis_imports//:imports.bzl" :
44- mod .add_callable ("py_gapic_assembly_pkg" , bazel_target )
45- mod .add_callable ("py_gapic_library" , bazel_target )
46- mod .add_callable ("py_test" , bazel_target )
47- mod .add_callable ("py_proto_library" , bazel_target )
48- mod .add_callable ("py_grpc_library" , bazel_target )
49- mod .add_callable ("py_import" , bazel_target )
50-
51- mod .add_callable ("proto_library_with_info" , bazel_target )
52- mod .add_callable ("java_gapic_assembly_gradle_pkg" , bazel_target )
53- mod .add_callable ("java_gapic_library" , bazel_target )
54- mod .add_callable ("java_gapic_test" , bazel_target )
55- mod .add_callable ("java_grpc_library" , bazel_target )
56- mod .add_callable ("java_proto_library" , bazel_target )
57- mod .add_callable ("go_gapic_assembly_pkg" , bazel_target )
58- mod .add_callable ("go_gapic_library" , bazel_target )
59- mod .add_callable ("go_proto_library" , bazel_target )
60- mod .add_callable ("go_grpc_library" , bazel_target )
61- mod .add_callable ("php_gapic_assembly_pkg" , bazel_target )
62- mod .add_callable ("php_gapic_library" , bazel_target )
63- mod .add_callable ("php_grpc_library" , bazel_target )
64- mod .add_callable ("php_proto_library" , bazel_target )
65- mod .add_callable ("nodejs_gapic_assembly_pkg" , bazel_target )
66- mod .add_callable ("nodejs_gapic_library" , bazel_target )
67- mod .add_callable ("ruby_ads_gapic_library" , bazel_target )
68- mod .add_callable ("ruby_cloud_gapic_library" , bazel_target )
69- mod .add_callable ("ruby_gapic_assembly_pkg" , bazel_target )
70- mod .add_callable ("ruby_grpc_library" , bazel_target )
71- mod .add_callable ("ruby_proto_library" , bazel_target )
72- mod .add_callable ("csharp_gapic_assembly_pkg" , bazel_target )
73- mod .add_callable ("csharp_gapic_library" , bazel_target )
74- mod .add_callable ("csharp_grpc_library" , bazel_target )
75- mod .add_callable ("csharp_proto_library" , bazel_target )
76- mod .add_callable ("cc_grpc_library" , bazel_target )
77- mod .add_callable ("cc_gapic_library" , bazel_target )
78- mod .add_callable ("cc_proto_library" , bazel_target )
79- mod .add_callable ("moved_proto_library" , bazel_target )
80- mod .add_callable ("proto_library" , bazel_target )
81- mod .add_callable ("upb_c_proto_library" , bazel_target )
82- return mod .freeze ()
83-
84112 mod .add_callable ("package" , noop_bazel_rule )
85113 mod .add_callable ("alias" , noop_bazel_rule )
86114 mod .add_callable ("py_test" , noop_bazel_rule )
@@ -89,6 +117,12 @@ def load(name):
89117 mod .add_callable ("java_proto_library" , noop_bazel_rule )
90118 mod .add_callable ("genrule" , noop_bazel_rule )
91119
120+ def load (name ):
121+ mod = sl .Module ()
122+ for callable_name in _CALLABLE_MAP .get (name , []):
123+ mod .add_callable (callable_name , bazel_target )
124+ return mod .freeze ()
125+
92126 ast = sl .parse ("BUILD.bazel" , content )
93127
94128 sl .eval (mod , ast , glb , sl .FileLoader (load ))
0 commit comments