aboutsummaryrefslogtreecommitdiff
path: root/math/py-keras/files/patch-keras_protobuf_protobuf.bzl
diff options
context:
space:
mode:
Diffstat (limited to 'math/py-keras/files/patch-keras_protobuf_protobuf.bzl')
-rw-r--r--math/py-keras/files/patch-keras_protobuf_protobuf.bzl220
1 files changed, 0 insertions, 220 deletions
diff --git a/math/py-keras/files/patch-keras_protobuf_protobuf.bzl b/math/py-keras/files/patch-keras_protobuf_protobuf.bzl
deleted file mode 100644
index 0ffcff335127..000000000000
--- a/math/py-keras/files/patch-keras_protobuf_protobuf.bzl
+++ /dev/null
@@ -1,220 +0,0 @@
---- /dev/null 2022-09-08 10:18:38.049755000 +0100
-+++ third_party/protobuf.bzl 2022-09-08 10:17:38.840977000 +0100
-@@ -0,0 +1,217 @@
-+def _GetPath(ctx, path):
-+ if ctx.label.workspace_root:
-+ return ctx.label.workspace_root + "/" + path
-+ else:
-+ return path
-+
-+def _IsNewExternal(ctx):
-+ # Bazel 0.4.4 and older have genfiles paths that look like:
-+ # bazel-out/local-fastbuild/genfiles/external/repo/foo
-+ # After the exec root rearrangement, they look like:
-+ # ../repo/bazel-out/local-fastbuild/genfiles/foo
-+ return ctx.label.workspace_root.startswith("../")
-+
-+def _GenDir(ctx):
-+ if _IsNewExternal(ctx):
-+ # We are using the fact that Bazel 0.4.4+ provides repository-relative paths
-+ # for ctx.genfiles_dir.
-+ return ctx.genfiles_dir.path + (
-+ "/" + ctx.attr.includes[0] if ctx.attr.includes and ctx.attr.includes[0] else ""
-+ )
-+
-+ # This means that we're either in the old version OR the new version in the local repo.
-+ # Either way, appending the source path to the genfiles dir works.
-+ return ctx.var["GENDIR"] + "/" + _SourceDir(ctx)
-+
-+def _SourceDir(ctx):
-+ if not ctx.attr.includes:
-+ return ctx.label.workspace_root
-+ if not ctx.attr.includes[0]:
-+ return _GetPath(ctx, ctx.label.package)
-+ if not ctx.label.package:
-+ return _GetPath(ctx, ctx.attr.includes[0])
-+ return _GetPath(ctx, ctx.label.package + "/" + ctx.attr.includes[0])
-+
-+def _PyOuts(srcs, use_grpc_plugin = False):
-+ ret = [s[:-len(".proto")] + "_pb2.py" for s in srcs]
-+ if use_grpc_plugin:
-+ ret += [s[:-len(".proto")] + "_pb2_grpc.py" for s in srcs]
-+ return ret
-+
-+def _proto_gen_impl(ctx):
-+ """General implementation for generating protos"""
-+ srcs = ctx.files.srcs
-+ deps = []
-+ deps += ctx.files.srcs
-+ source_dir = _SourceDir(ctx)
-+ gen_dir = _GenDir(ctx)
-+ if source_dir:
-+ import_flags = ["-I" + source_dir, "-I" + gen_dir]
-+ else:
-+ import_flags = ["-I."]
-+
-+ for dep in ctx.attr.deps:
-+ import_flags += dep.proto.import_flags
-+ deps += dep.proto.deps
-+ import_flags = depset(import_flags).to_list()
-+ deps = depset(deps).to_list()
-+
-+ args = []
-+ if ctx.attr.gen_cc:
-+ args += ["--cpp_out=" + gen_dir]
-+ if ctx.attr.gen_py:
-+ args += ["--python_out=" + gen_dir]
-+
-+ inputs = srcs + deps
-+ tools = [ctx.executable.protoc]
-+ if ctx.executable.plugin:
-+ plugin = ctx.executable.plugin
-+ lang = ctx.attr.plugin_language
-+ if not lang and plugin.basename.startswith("protoc-gen-"):
-+ lang = plugin.basename[len("protoc-gen-"):]
-+ if not lang:
-+ fail("cannot infer the target language of plugin", "plugin_language")
-+
-+ outdir = gen_dir
-+ if ctx.attr.plugin_options:
-+ outdir = ",".join(ctx.attr.plugin_options) + ":" + outdir
-+ args += ["--plugin=protoc-gen-%s=%s" % (lang, plugin.path)]
-+ args += ["--%s_out=%s" % (lang, outdir)]
-+ tools.append(plugin)
-+
-+ if args:
-+ ctx.actions.run(
-+ inputs = inputs,
-+ outputs = ctx.outputs.outs,
-+ arguments = args + import_flags + [s.path for s in srcs],
-+ executable = ctx.executable.protoc,
-+ mnemonic = "ProtoCompile",
-+ tools = tools,
-+ use_default_shell_env = True,
-+ )
-+
-+ return struct(
-+ proto = struct(
-+ srcs = srcs,
-+ import_flags = import_flags,
-+ deps = deps,
-+ ),
-+ )
-+
-+proto_gen = rule(
-+ attrs = {
-+ "srcs": attr.label_list(allow_files = True),
-+ "deps": attr.label_list(providers = ["proto"]),
-+ "includes": attr.string_list(),
-+ "protoc": attr.label(
-+ cfg = "host",
-+ executable = True,
-+ allow_single_file = True,
-+ mandatory = True,
-+ ),
-+ "plugin": attr.label(
-+ cfg = "host",
-+ allow_files = True,
-+ executable = True,
-+ ),
-+ "plugin_language": attr.string(),
-+ "plugin_options": attr.string_list(),
-+ "gen_cc": attr.bool(),
-+ "gen_py": attr.bool(),
-+ "outs": attr.output_list(),
-+ },
-+ output_to_genfiles = True,
-+ implementation = _proto_gen_impl,
-+)
-+"""Generates codes from Protocol Buffers definitions.
-+
-+This rule helps you to implement Skylark macros specific to the target
-+language. You should prefer more specific `cc_proto_library `,
-+`py_proto_library` and others unless you are adding such wrapper macros.
-+
-+Args:
-+ srcs: Protocol Buffers definition files (.proto) to run the protocol compiler
-+ against.
-+ deps: a list of dependency labels; must be other proto libraries.
-+ includes: a list of include paths to .proto files.
-+ protoc: the label of the protocol compiler to generate the sources.
-+ plugin: the label of the protocol compiler plugin to be passed to the protocol
-+ compiler.
-+ plugin_language: the language of the generated sources
-+ plugin_options: a list of options to be passed to the plugin
-+ gen_cc: generates C++ sources in addition to the ones from the plugin.
-+ gen_py: generates Python sources in addition to the ones from the plugin.
-+ outs: a list of labels of the expected outputs from the protocol compiler.
-+"""
-+
-+def py_proto_library(
-+ name,
-+ srcs = [],
-+ deps = [],
-+ py_libs = [],
-+ py_extra_srcs = [],
-+ include = None,
-+ default_runtime = None,
-+ protoc = "//third_party:protoc",
-+ use_grpc_plugin = False,
-+ **kwargs):
-+ """Bazel rule to create a Python protobuf library from proto source files
-+
-+ NOTE: the rule is only an internal workaround to generate protos. The
-+ interface may change and the rule may be removed when bazel has introduced
-+ the native rule.
-+
-+ Args:
-+ name: the name of the py_proto_library.
-+ srcs: the .proto files of the py_proto_library.
-+ deps: a list of dependency labels; must be py_proto_library.
-+ py_libs: a list of other py_library targets depended by the generated
-+ py_library.
-+ py_extra_srcs: extra source files that will be added to the output
-+ py_library. This attribute is used for internal bootstrapping.
-+ include: a string indicating the include path of the .proto files.
-+ default_runtime: the implicitly default runtime which will be depended on by
-+ the generated py_library target.
-+ protoc: the label of the protocol compiler to generate the sources.
-+ use_grpc_plugin: a flag to indicate whether to call the Python C++ plugin
-+ when processing the proto files.
-+ **kwargs: other keyword arguments that are passed to py_library.
-+
-+ """
-+ outs = _PyOuts(srcs, use_grpc_plugin)
-+
-+ includes = []
-+ if include != None:
-+ includes = [include]
-+
-+ grpc_python_plugin = None
-+ if use_grpc_plugin:
-+ grpc_python_plugin = "//external:grpc_python_plugin"
-+ # Note: Generated grpc code depends on Python grpc module. This dependency
-+ # is not explicitly listed in py_libs. Instead, host system is assumed to
-+ # have grpc installed.
-+
-+ proto_gen(
-+ name = name + "_genproto",
-+ srcs = srcs,
-+ deps = [s + "_genproto" for s in deps],
-+ includes = includes,
-+ protoc = protoc,
-+ gen_py = 1,
-+ outs = outs,
-+ visibility = ["//visibility:public"],
-+ plugin = grpc_python_plugin,
-+ plugin_language = "grpc",
-+ )
-+
-+ if default_runtime and not default_runtime in py_libs + deps:
-+ py_libs = py_libs + [default_runtime]
-+
-+ native.py_library(
-+ name = name,
-+ srcs = outs + py_extra_srcs,
-+ deps = py_libs + deps,
-+ imports = includes,
-+ **kwargs
-+ )
-+