Ë
    >²Xj�  ã                   ó„   — d Z dZddlmZmZmZ ddlZ G d„ de«      Z G d„ de«      Z	 G d	„ d
e
«      Zdddedee   fd„Zy)z*Provides a container for DescriptorProtos.z"matthewtoia@google.com (Matt Toia)é    )ÚDictÚIteratorÚOptionalNc                   ó   — e Zd Zy)ÚErrorN)Ú__name__Ú
__module__Ú__qualname__© ó    úi/var/www/html/content_generation/venv/lib/python3.12/site-packages/google/protobuf/descriptor_database.pyr   r      s   „ Ør   r   c                   ó   — e Zd ZdZy)Ú,DescriptorDatabaseConflictingDefinitionErrorzGRaised when a proto is added with the same name & different descriptor.N)r   r	   r
   Ú__doc__r   r   r   r   r      s   „ ÚOr   r   c                   ó„   — e Zd ZdZdd„Zdd„Zdeddfd	„Zd
eddfd„Zdede	de
d   fd„Zdedee	   fd„Zdeddddfd„Zy)ÚDescriptorDatabasezEA container accepting FileDescriptorProtos and maps DescriptorProtos.ÚreturnNc                 ó    — i | _         i | _        y ©N)Ú_file_desc_protos_by_fileÚ_file_desc_protos_by_symbol)Úselfs    r   Ú__init__zDescriptorDatabase.__init__   s   € ð 	ð 	Ô"ð
 	ð 	Õ$r   Úfile_desc_protoú"descriptor_pb2.FileDescriptorProtoc                 ót  — |j                   }|| j                  vr|| j                  |<   n!| j                  |   |k7  rt        d|z  «      ‚y|j                  }|j                  D ]%  }t        ||«      D ]  }| j                  ||«       Œ Œ' |j                  D ]†  }| j                  |rdj                  ||j                   f«      n|j                   |«       |j                  D ]:  }|| j                  |rdj                  ||j                   f«      n|j                   <   Œ< Œˆ |j                  D ]=  }| j                  |rdj                  ||j                   f«      n|j                   |«       Œ? |j                  D ]=  }	| j                  |rdj                  ||	j                   f«      n|	j                   |«       Œ? y)aL  Adds the FileDescriptorProto and its types to this database.

    Args:
      file_desc_proto: The FileDescriptorProto to add.
    Raises:
      DescriptorDatabaseConflictingDefinitionError: if an attempt is made to
        add a proto with the same name but different definition than an
        existing proto in the database.
    z0%s already added, but with different descriptor.NÚ.)Únamer   r   ÚpackageÚmessage_typeÚ_ExtractSymbolsÚ
_AddSymbolÚ	enum_typeÚjoinÚvaluer   Ú	extensionÚservice)
r   r   Ú
proto_namer   Úmessager   ÚenumÚ
enum_valuer&   r'   s
             r   ÚAddzDescriptorDatabase.Add#   s”  € ð !×%Ñ%€JØ˜×7Ñ7Ñ7Ø3B€d×$Ñ$ ZÒ0Ø	×	'Ñ	'¨
Ñ	3°Ò	FÜ8Ø
<¸zÑ
IóKð Kð ð ×%Ñ%€GØ"×/Ô/ˆÜ! '¨7Ö3ˆ$Ø�‰˜˜oÕ.ñ 4ð 0ð  ×)Ô)ˆØ
‡o�oÙ-4ˆ3�8‰8�W˜dŸi™iÐ(Ô)¸$¿)¹)Ø
ôð Ÿ
œ
ˆ*ð ð 	×(Ñ(Ù4;ˆC�H‰H�g˜zŸ™Ð/Ô0ÀÇÁò	
ñ #ð *ð %×.Ô.ˆ	Ø
‡o�oÙ29ˆ3�8‰8�W˜iŸn™nÐ-Ô.¸y¿~¹~Ø
õð /ð
 #×*Ô*ˆØ
‡o�oÙ07ˆ3�8‰8�W˜gŸl™lÐ+Ô,¸W¿\¹\Ø
õñ +r   r   c                 ó    — | j                   |   S )a¸  Finds the file descriptor proto by file name.

    Typically the file name is a relative path ending to a .proto file. The
    proto with the given name will have to have been added to this database
    using the Add method or else an error will be raised.

    Args:
      name: The file name to find.

    Returns:
      The file descriptor proto matching the name.

    Raises:
      KeyError if no file by the given name was added.
    )r   )r   r   s     r   ÚFindFileByNamez!DescriptorDatabase.FindFileByNameO   s   € ð" ×)Ñ)¨$Ñ/Ð/r   Úsymbolc                 óH  — |j                  d«      dk(  r3|d   dk(  r+|j                  d«      }t        j                  dt        «       	 | j
                  |   S # t        $ r@ |j                  d«      \  }}}	 | j
                  |   cY S # t        $ r t        |«      ‚w xY ww xY w)a¢  Finds the file descriptor proto containing the specified symbol.

    The symbol should be a fully qualified name including the file descriptor's
    package and any containing messages. Some examples:

    'some.package.name.Message'
    'some.package.name.Message.NestedEnum'
    'some.package.name.Message.some_field'

    The file descriptor proto containing the specified symbol must be added to
    this database using the Add method or else an error will be raised.

    Args:
      symbol: The fully qualified symbol name.

    Returns:
      The file descriptor proto containing the symbol.

    Raises:
      KeyError if no file contains the specified symbol.
    r   é   r   zaPlease remove the leading "." when FindFileContainingSymbol, this will turn to error in 2026 Jan.)ÚcountÚlstripÚwarningsÚwarnÚRuntimeWarningr   ÚKeyErrorÚ
rpartition)r   r/   Ú	top_levelÚ_s       r   ÚFindFileContainingSymbolz+DescriptorDatabase.FindFileContainingSymbolb   s±   € ð0 ‡|�|�CÓ˜AÒ &¨¡)¨sÒ"2Ø�}‰}˜SÓ!€fÜ‡m�mðô ô	ðØ×-Ñ-¨fÑ5Ð5øÜò ð ×)Ñ)¨#Ó.�o€i��AðØ×/Ñ/°	Ñ:Ò:øÜò ä�vÓÐðúðús$   Á	A ÁB!Á7BÂB!ÂBÂB!Úextendee_nameÚextension_numberc                  ó   — y r   r   )r   r<   r=   s      r   ÚFindFileContainingExtensionz.DescriptorDatabase.FindFileContainingExtension‘   s   € ð r   c                 ó   — g S r   r   )r   r<   s     r   ÚFindAllExtensionNumbersz*DescriptorDatabase.FindAllExtensionNumbers—   s   € à€Ir   c                 óÜ   — || j                   v rOd|j                  z   dz   |z   dz   | j                   |   j                  z   dz   }t        j                  |t        «       || j                   |<   y )NzConflict register for file "z": z is already defined in file "Ú")r   r   r4   r5   r6   )r   r   r   Úwarn_msgs       r   r"   zDescriptorDatabase._AddSymbol›   s‚   € ð ˆt×/Ñ/Ñ/Ø0°?×3GÑ3GÑGØñØñà1ñ2ð ×2Ñ2°4Ñ8×=Ñ=ñ>ð ADñD€hô ‡m�m�HœnÔ-Ø-<€D×$Ñ$ TÒ*r   )r   N)r   r   r   N)r   r	   r
   r   r   r,   Ústrr.   r;   Úintr   r?   ÚlistrA   r"   r   r   r   r   r      s‘   „ ÙMóó*ðX0 ð 0Ð)Mó 0ð&-Øð-à+ó-ð^ØðØ25ðàÐ4Ñ5óð°3ð ¸4À¹9ó ð	=Øð	=Ø(Lð	=àô	=r   r   Ú
desc_protozdescriptor_pb2.DescriptorProtor   r   c              #   ó   K  — |r|dz   | j                   z   n| j                   }|–— | j                  D ]  }t        ||«      D ]  }|–— Œ Œ | j                  D ]!  }dj	                  ||j                   f«      –— Œ# y­w)zëPulls out all the symbols from a descriptor proto.

  Args:
    desc_proto: The proto to extract symbols from.
    package: The package containing the descriptor type.

  Yields:
    The fully qualified name found in the descriptor.
  r   N)r   Únested_typer!   r#   r$   )rH   r   Úmessage_namerJ   r/   r#   s         r   r!   r!   §   sx   è ø€ ñ 5<�˜3‘ §¡Ò0ÀÇÁ€,ØÒØ×+Ô+€kÜ! +¨|Ö<ˆØƒlñ =ð ,ð ×'Ô'€iØ
�(‰(�L )§.¡.Ð1Ó
2Ó2ñ (ùs   ‚A<A>)r   Ú
__author__Útypingr   r   r   r4   Ú	Exceptionr   r   Úobjectr   rE   r!   r   r   r   Ú<module>rP      sb   ðñ 1à1€
ç +Ñ +Û ôˆIô ôP°5ô PôL=˜ô L=ð^3Ø0ð3Ø;>ð3àˆc�]ô3r   