
                             d dl mZ d dlmZmZmZ d dlZd dlZd dlm	Z	  ej                  e      Z G d de      ZdefdZdd	ee   deeef   fd
Zy)    )	b64encode)MappingOptional
NamedTupleN)
struct_pb2c                   "    e Zd ZU eed<   eed<   y)_SemvermajorminorN)__name__
__module____qualname__int__annotations__     Glib/third_party/google/cloud/pubsublite/internal/wire/pubsub_context.pyr	   r	      s    JJr   r	   returnc                     	 t        j                  d      j                  } | j                  d      }t        |      dk7  r%t        j                  d|  d       t        dd      S t        t        |d         t        |d               S # t         j                  $ r$ t        j                  d       t        dd      cY S w xY w)Nzgoogle-cloud-pubsublitezSFailed to extract the google-cloud-pubsublite semver version. DistributionNotFound.r   .   zFailed to extract semver from    )
pkg_resourcesget_distributionversionDistributionNotFound_LOGGERinfor	   splitlenr   )r   splitss     r   _versionr"      s    001JKSS ]]3F
6{a5gYa@Aq!}3vay>3vay>22 -- a	
 q!}	s   B	 	4C ?C 	frameworkc                 b   t        j                         }d|j                  d   _        | r| |j                  d   _        t	               }|j
                  |j                  d   _        |j                  |j                  d   _        t        |j                               j                  d      }d|iS )z=Construct the pubsub context mapping for the given framework.PYTHONlanguager#   major_versionminor_versionzutf-8zx-goog-pubsub-context)r   Structfieldsstring_valuer"   r
   number_valuer   r   SerializeToStringdecode)r#   contextr   encodeds       r   pubsub_contextr1   .   s    !G.6GNN:+3<{#0jG3:==GNN?#03:==GNN?#01134;;GDG#W--r   )N)base64r   typingr   r   r   loggingr   cloudsdk.google.protobufr   	getLoggerr   r   r	   r"   strr1   r   r   r   <module>r8      se     0 0   / '

H
%j 
3' 3
.hsm 
.wsCx7H 
.r   