|  | @@ -304,6 +304,7 @@ def py_proto_library(
 | 
	
		
			
				|  |  |          include=None,
 | 
	
		
			
				|  |  |          default_runtime="//:protobuf_python",
 | 
	
		
			
				|  |  |          protoc="//:protoc",
 | 
	
		
			
				|  |  | +        use_grpc_plugin=False,
 | 
	
		
			
				|  |  |          **kargs):
 | 
	
		
			
				|  |  |    """Bazel rule to create a Python protobuf library from proto source files
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -323,6 +324,8 @@ def py_proto_library(
 | 
	
		
			
				|  |  |      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.
 | 
	
		
			
				|  |  |      **kargs: other keyword arguments that are passed to cc_library.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    """
 | 
	
	
		
			
				|  | @@ -332,6 +335,13 @@ def py_proto_library(
 | 
	
		
			
				|  |  |    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,
 | 
	
	
		
			
				|  | @@ -341,6 +351,8 @@ def py_proto_library(
 | 
	
		
			
				|  |  |        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:
 |