ó
    è*–j–  ã                   ój   • S r SSKJr  SSKrSSKrSSKJr  SSKJr  SSKJr  SSKJ	r	  S r
SS	 jrS
 rg)zDynamic Protobuf class creator.é    )ÚOrderedDictN)Ú
descriptor)Údescriptor_pb2)Údescriptor_pool)Úmessage_factoryc                 óT   • U R                  U5      n[        R                  " U5      nU$ )a  Get a proto class from the MessageFactory by name.

Args:
  pool: a descriptor pool.
  full_name: str, the fully qualified name of the proto type.

Returns:
  A class, for the type identified by full_name.
Raises:
  KeyError, if the proto is not found in the factory's descriptor pool.
)ÚFindMessageTypeByNamer   ÚGetMessageClass)ÚpoolÚ	full_nameÚproto_descriptorÚ	proto_clss       Ú«C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\google/protobuf/proto_builder.pyÚ_GetMessageFromFactoryr      s,   € ð ×/Ñ/°	Ó:ÐÜ×-Ò-Ð.>Ó?€)Ø	Ðó    c                 óŒ  • U=(       d    [         R                  " 5       nUb   [        X15      nU$ U R	                  5       n[        U [        5      (       d  [        U5      n[        R                  " SS9nU HN  u  pxUR                  UR                  S5      5        UR                  [        U5      R                  S5      5        MP     UR                  5       S-   n	Uc!  SUR                  5       -   n [        X15      nU$ UR                  [        X‘U5      5        [        X15      $ ! [         a     GNf = f! [         a     NCf = f)aÓ  Create a Protobuf class whose fields are basic types.

Note: this doesn't validate field names!

Args:
  fields: dict of {name: field_type} mappings for each field in the proto. If
    this is an OrderedDict the order will be maintained, otherwise the fields
    will be sorted by name.
  full_name: optional str, the fully-qualified name of the proto type.
  pool: optional DescriptorPool instance.

Returns:
  a class, the new protobuf class with a FileDescriptor.
F)Úusedforsecurityzutf-8z.protoz6net.proto2.python.public.proto_builder.AnonymousProto_)r   ÚDescriptorPoolr   ÚKeyErrorÚitemsÚ
isinstancer   ÚsortedÚhashlibÚsha1ÚupdateÚencodeÚstrÚ	hexdigestÚAddÚ_MakeFileDescriptorProto)
Úfieldsr   r   Úpool_instancer   Úfield_itemsÚfields_hashÚf_nameÚf_typeÚproto_file_names
             r   ÚMakeSimpleProtoClassr(   $   s@  € ð ×:œ/×8Ò8Ó:€-ØÑðÜ(¨ÓB€iØÐð —‘“€+Ü	�FœK×	(Ñ	(Ü˜Ó%€Kô —’¨UÑ3€+Û#�n€fØ×Ñ�v—}‘} WÓ-Ô.Ø×Ñ”s˜6“{×)Ñ)¨'Ó2Ö3ñ $ð  ×)Ñ)Ó+¨hÑ6€/ð Ñà@Ø
×
Ñ
Ó
!ñ	"ð ðÜ(¨ÓB€iØÐð ×ÑÜ˜¸;ÓGôô 
  Ó	9Ð9øôI ó â
ðûô8 ó á
ðús#   £D% Ã2D6 Ä%
D3Ä2D3Ä6
EÅEc                 ó†  • UR                  SS5      u  p4[        R                  " 5       n[        R                  R                  UR                  SS5      U 5      Ul        X5l        UR                  R                  5       nXFl        [        US5       H¬  u  nu  p‰UR                  R                  5       n
XŠl        U[        R                  R                  :¼  a;  U[        R                  R                   [        R                  R                  -
  S-   -  nXzl        [        R$                  R&                  U
l        Xšl        M®     U$ )zAPopulate FileDescriptorProto for MessageFactory's DescriptorPool.Ú.é   Ú/)Úrsplitr   ÚFileDescriptorProtoÚosÚpathÚjoinÚreplaceÚnameÚpackageÚmessage_typeÚaddÚ	enumerateÚfieldr   ÚFieldDescriptorÚFIRST_RESERVED_FIELD_NUMBERÚLAST_RESERVED_FIELD_NUMBERÚnumberÚFieldDescriptorProtoÚLABEL_OPTIONALÚlabelÚtype)r'   r   r#   r4   r3   Ú
file_protoÚ
desc_protoÚf_numberr%   r&   Úfield_protos              r   r    r    _   s  € à×"Ñ" 3¨Ó*�-€'Ü×1Ò1Ó3€*Ü—G‘G—L‘L §¡°°cÓ!:¸OÓL€*„/ØÔØ×&Ñ&×*Ñ*Ó,€*Ø„/Ü$-¨k¸1Ö$=Ñ €hÑ �Ø×"Ñ"×&Ñ&Ó(€KØÔð ”:×-Ñ-×IÑIÓIØÜ
×
$Ñ
$×
?Ñ
?Ü×&Ñ&×BÑBñCàññ€hð
 "ÔÜ&×;Ñ;×JÑJ€KÔØÖñ %>ð 
Ðr   )NN)Ú__doc__Úcollectionsr   r   r/   Úgoogle.protobufr   r   r   r   r   r(   r    © r   r   Ú<module>rI      s/   ðñ &å #Û Û 	å &Ý *Ý +Ý +òô"8:óvr   