
    pj^                     <    S r SSKJr  SSKJr  S r " S S\5      rg)z6Contains _ExtensionDict class to represent extensions.    )FieldDescriptor)type_checkersc           	         [        U[        5      (       d  [        SU-  5      eUR                  (       d  [        SUR                  -  5      eUR
                  (       d  [        SUR                  -  5      eUR
                  U R                  LaJ  [        SUR                  < SUR
                  R                  < SU R                  R                  < S35      eg)	z0Verify that the given extension handle is valid.z3HasExtension() expects an extension handle, got: %sz"%s" is not an extension.z""%s" is missing a containing_type.zExtension "z" extends message type "z ", but this message is of type "z".N)
isinstancer   KeyErroris_extension	full_namecontaining_type
DESCRIPTOR)messageextension_handles     c/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/google/protobuf/internal/extension_dict.py_VerifyExtensionHandler      s     
$o	6	6
=@PP  
	&	&
.1A1K1KK
LL		)	)
,/?/I/II  %%W-?-??
 &&,,66((	
  @    c                   `    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rSrg)_ExtensionDict,   zDict-like container for Extension fields on proto instances.

Note that in all cases we expect extension handles to be
FieldDescriptors.
c                     Xl         g)zPArgs:

extended_message: Message instance for which we are the Extensions dict.
N_extended_message)selfextended_messages     r   __init___ExtensionDict.__init__3   s
    
 .r   c                 V   [        U R                  U5        U R                  R                  R                  U5      nUb  U$ UR                  (       a  UR                  U R                  5      nOUR                  [        R                  :X  a  UR                  n[        US5      (       d  SSKJn  UR                  U5        [        UR                  S5      (       d!  SSKJn  UR                  UR                  5        UR                  R                  5       n UR                  U R                  R                   5        OUR$                  $ U R                  R&                  (       a  UR)                  5         U R                  R                  R+                  X5      nU$ ! ["         a     N^f = f)z8Returns the current value of the given extension handle._concrete_classr   )message_factory)r   r   _fieldsgetis_repeated_default_constructorcpp_typer   CPPTYPE_MESSAGEmessage_typehasattrgoogle.protobufr   GetMessageClassr   _SetListener_listener_for_childrenReferenceErrordefault_value_frozen
_SetFrozen
setdefault)r   r   resultr$   r   s        r   __getitem___ExtensionDict.__getitem__:   s[    4113CD##++//0@AFm##44T5K5KLf		"	"o&E&E	E%22l\#4553''5%224EFF3''(8(E(EF,,<<>fD22IIJ +++ %%##++667GPFM#  s   %F 
F('F(c                 L   [        XR                  5      (       d  gU R                  R                  5       nUR                  R                  5       nU Vs/ s H  oDR                  (       d  M  UPM     nnU Vs/ s H  oDR                  (       d  M  UPM     nnX#:H  $ s  snf s  snf )NF)r   	__class__r   
ListFieldsr   )r   other	my_fieldsother_fieldsfields        r   __eq___ExtensionDict.__eq__f   s    e^^,,&&113I**557L %.DI51C1CIID'3J|e7I7IE|LJ$$ EJs   B,B8B!B!c                     X:X  + $ N )r   r5   s     r   __ne___ExtensionDict.__ne__s   s    r   c                     U R                   R                  5       nU Vs/ s H  o"S   R                  (       d  M  UPM     nn[        U5      $ s  snf )Nr   )r   r4   r   len)r   fieldsr8   extension_fieldss       r   __len___ExtensionDict.__len__v   sG    ##..0F+1K6%1X5J5J6K   Ls
   AAc                     [        S5      e)Nzunhashable object)	TypeErrorr   s    r   __hash___ExtensionDict.__hash__|   s    
'
((r   c                    [        U R                  U5        U R                  R                  5         UR                  (       d  UR                  [
        R                  :X  a  [        SUR                  -  5      e[        R                  " U5      nUR                  U5      U R                  R                  U'   U R                  R                  5         g)zeIf extension_handle specifies a non-repeated, scalar extension

field, sets the value of that field.
zKCannot assign to extension "%s" because it is a repeated or composite type.N)r   r   _AssureWritabler    r"   r   r#   rG   r	   r   GetTypeChecker
CheckValuer   	_Modified)r   r   valuetype_checkers       r   __setitem___ExtensionDict.__setitem__   s     4113CD**, 	$$$$(G(GG&&'  !//0@AL7C7N7N8D""#34 	$$&r   c                 :    U R                   R                  U5        g r<   )r   ClearExtension)r   r   s     r   __delitem___ExtensionDict.__delitem__   s    ))*:;r   c                     U R                   R                  nUR                  R                  R                  U   nUR                  US5      $ )zTries to find a known extension with the specified name.

Args:
  name: Extension full name.

Returns:
  Extension field descriptor.
N)r   r   filepool_extensions_by_namer   )r   name
descriptor
extensionss       r   _FindExtensionByName#_ExtensionDict._FindExtensionByName   s@     ''22J%%99*EJ>>$%%r   c                     U R                   R                  nUR                  R                  R                  U   nUR                  US5      $ )zTries to find a known extension with the field number.

Args:
  number: Extension field number.

Returns:
  Extension field descriptor.
N)r   r   rY   rZ   _extensions_by_numberr   )r   numberr]   r^   s       r   _FindExtensionByNumber%_ExtensionDict._FindExtensionByNumber   s@     ''22J%%;;JGJ>>&$''r   c                 D    S U R                   R                  5        5       $ )Nc              3   V   #    U  H  oS    R                   (       d  M  US    v   M!     g7f)r   N)r   ).0fs     r   	<genexpr>*_ExtensionDict.__iter__.<locals>.<genexpr>   s$      9qT=N=N!9s   )))r   r4   rH   s    r   __iter___ExtensionDict.__iter__   s#    ,,779 r   c                    [        U R                  U5        XR                  R                  ;  a  gUR                  (       a.  [	        U R                  R                  R                  U5      5      $ UR                  [        R                  :X  a<  U R                  R                  R                  U5      nUS L=(       a    UR                  $ g)NFT)
r   r   r   r    boolr   r"   r   r#   _is_present_in_parent)r   r   rP   s      r   __contains___ExtensionDict.__contains__   s    4113CD55===##$((00445EFGG  O$C$CC$$,,001ABe$>5#>#>>r   r   N)__name__
__module____qualname____firstlineno____doc__r   r0   r9   r>   rD   rI   rR   rV   r_   rd   rl   rq   __static_attributes__r=   r   r   r   r   ,   sD    .*X%!)':<&(r   r   N)rw   google.protobuf.descriptorr   google.protobuf.internalr   r   objectr   r=   r   r   <module>r|      s#    = 6 2>eV er   