o
    ~j6h                     @   s   d Z ddlZddlZddlmZ ddlZddlmZ ddlmZ G dd de	dd	ej
Zd
d Zdd ZddgZejd dkrUejd dkrWddlmZ ed dS dS dS )z;Reference implementation for status mapping in gRPC Python.    N)
status_pb2   )GRPC_DETAILS_METADATA_KEY)code_to_grpc_status_codec                   @   s   e Zd ZdS )_StatusN)__name__
__module____qualname__ r
   r
   e/var/www/html/chefvision.cloud.itp360.com/venv/lib/python3.10/site-packages/grpc_status/rpc_status.pyr      s    r   codedetailstrailing_metadatac                 C   s   |   du rdS |   D ];\}}|tkrGtj|}|  jd |jkr1tdt|j|  f | 	 |j
krCtd|j
| 	 f |  S qdS )a  Returns a google.rpc.status.Status message corresponding to a given grpc.Call.

    This is an EXPERIMENTAL API.

    Args:
      call: A grpc.Call instance.

    Returns:
      A google.rpc.status.Status message representing the status of the RPC.

    Raises:
      ValueError: If the gRPC call's code or details are inconsistent with the
        status code and message inside of the google.rpc.status.Status.
    Nr   z8Code in Status proto (%s) doesn't match status code (%s)z>Message in Status proto (%s) doesn't match status details (%s))r   r   r   Status
FromStringr   value
ValueErrorr   r   message)callkeyr   rich_statusr
   r
   r   	from_call!   s(   r   c                 C   s    t t| j| jt|  ffdS )ad  Convert a google.rpc.status.Status message to grpc.Status.

    This is an EXPERIMENTAL API.

    Args:
      status: a google.rpc.status.Status message representing the non-OK status
        to terminate the RPC with and communicate it to the client.

    Returns:
      A grpc.Status instance representing the input google.rpc.status.Status message.
    r   )r   r   r   r   r   SerializeToString)statusr
   r
   r   	to_statusC   s   
r         )_asyncaio)__doc__collectionssys
google.rpcr   grpc_commonr   r   
namedtupler   r   r   r   __all__version_info r   r   appendr
   r
   r
   r   <module>   s(   

"