¿Cómo enviar un encabezado personalizado (metadatos) con Python gRPC?

Quiero saber cómo enviar encabezados personalizados (o metadatos) usando PyRon gRPC. Busqué en documentos y no pude encontrar nada.

Me di cuenta de leer el código. Puede enviar un parámetro de metadata a la llamada de función, donde los metadata son una tupla de 2-tuplas:

 metadata = (('md-key', 'some value'), ('some-md-key', 'another value')) response = stub.YourFunctionCall(request=request, metadata=metadata) 

Por favor lea el ejemplo en github . Por ejemplo:

  response, call = stub.SayHello.with_call( helloworld_pb2.HelloRequest(name='you'), metadata=( ('initial-metadata-1', 'The value should be str'), ('binary-metadata-bin', b'With -bin surffix, the value can be bytes'), ('accesstoken', 'gRPC Python is great'), )) 

O si quieres definir un interceptor

  metadata = [] if client_call_details.metadata is not None: metadata = list(client_call_details.metadata) metadata.append(( header, value, )) client_call_details = _ClientCallDetails( client_call_details.method, client_call_details.timeout, metadata, client_call_details.credentials) 

Algo importante es que la clave de los metadatos no puede tener mayúsculas (me ha preocupado durante mucho tiempo).