
    (ph                     $   S r SSKrSSKrSSKJr  SSKrSSKJr  SSKJr   " S S\R                  " SS	5      \R                  5      rS
 rS rSS/r\R                  S   S:  a,  \R                  S   S:  a  SSKJr  \R'                  S5        ggg)z;Reference implementation for status mapping in gRPC Python.    N)
status_pb2   )GRPC_DETAILS_METADATA_KEY)code_to_grpc_status_codec                       \ rS rSrSrg)_Status    N)__name__
__module____qualname____firstlineno____static_attributes__r
       I/var/www/html/venv/lib/python3.13/site-packages/grpc_status/rpc_status.pyr   r      s     	r   r   codedetailstrailing_metadatac                    U R                  5       c  gU R                  5        H  u  pU[        :X  d  M  [        R                  R	                  U5      nU R                  5       R                  S   UR
                  :w  a5  [        S[        UR
                  5      < SU R                  5       < S35      eU R                  5       UR                  :w  a,  [        SUR                  < SU R                  5       < S35      eUs  $    g)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   zCode in Status proto (z) doesn't match status code ()zMessage in Status proto (z ) doesn't match status details ()r   r   r   Status
FromStringr   value
ValueErrorr   r   message)callkeyr   rich_statuss       r   	from_callr    !   s     ',,.
++$++66u=Kyy{  #{'7'77 /0@0@A499;P  ||~!4!44 *22DLLND   / r   c                 |    [        [        U R                  5      U R                  [        U R                  5       44S9$ )aH  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)statuss    r   	to_statusr$   C   s:     %fkk2&(@(@(BC
 r   r    r$         )_asyncaio)__doc__collectionssys
google.rpcr   grpc_commonr   r   
namedtupler   r   r    r$   __all__version_info r'   r(   appendr
   r   r   <module>r4      s    B  
 !  . -	9&NOKK	D, 
 A! 0 0 3q 8NN5 !9r   