o
    j?                     @   s   d Z dZddlmZ ddlmZ ddlmZ ddlmZ	 ddlm
Z e Zdd	 Zd
d Zdd Zdd Zdd Zdd ZdS )zBuilds descriptors, message classes and services for generated _pb2.py.

This file is only called in python generated _pb2.py files. It builds
descriptors, message classes and services that users can directly use
in generated code.
zjieluo@google.com (Jie Luo)    )enum_type_wrapper)python_message)message)
reflection)symbol_databasec                 C   sZ   |j  D ]\}}||  }|| |< t| ||d  q|jD ]}|| ||j  < qd S )N_)nested_types_by_nameitemsupper_BuildNestedDescriptors
enum_typesname)modulemsg_desprefixr   
nested_msgmodule_nameenum_des r   a/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/google/protobuf/internal/builder.pyr      s   
r   c                 C   s<   | j  D ]\}}d|  }|||< t|||d  qdS )zBuilds message and enum descriptors.

  Args:
    file_des: FileDescriptor of the .proto file
    module: Generated _pb2 module
  r   N)message_types_by_namer	   r
   r   )file_desr   r   r   r   r   r   r   BuildMessageAndEnumDescriptors#   s
   r   c                 C   sr   i }|j  D ]\}}t| |||j d ||< q||d< | |d< ||j |d< t|jtjf|}t	| |S )N.
DESCRIPTOR
__module____qualname__)
r   r	   _BuildMessager   _reflectionZGeneratedProtocolMessageType_messageMessage_sym_dbZRegisterMessage)r   r   r   Zcreate_dictr   r   Zmessage_classr   r   r   r   0   s   

r   c           	      C   s   | j  D ]\}}||d|  < t|||< |jD ]}|j||j< qq| j D ]\}}|j|| d < |||< q*| j	 D ]\}}||d|  < qA| j
 D ]\}}t||d||< qSdS )zBuilds top level descriptors and message classes.

  Args:
    file_des: FileDescriptor of the .proto file
    module_name: str, the name of generated _pb2 module
    module: Generated _pb2 module
  r   Z_FIELD_NUMBER N)Zenum_types_by_namer	   r
   r   ZEnumTypeWrappervaluesnumberr   Zextensions_by_nameservices_by_namer   r   )	r   r   r   r   r   Z
enum_valueZextension_desservicer   r   r   r   BuildTopDescriptorsAndMessages@   s   


r'   c                 C   s   dS )zsno-op to keep old generated code work with new runtime.

  Args:
    file_des: FileDescriptor of the .proto file
  Nr   )r   r   r   r   AddHelpersToExtensions^   s   r(   c              	   C   sf   ddl m} | j D ]%\}}||dt||d||< |d }|||| ft||d||< qdS )zBuilds services classes and services stub class.

  Args:
    file_des: FileDescriptor of the .proto file
    module_name: str, the name of generated _pb2 module
    module: Generated _pb2 module
  r   )service_reflectionr   )r   r   Z_StubN)google.protobufr)   r%   r	   ZGeneratedServiceTypedictZGeneratedServiceStubType)r   r   r   r)   r   r&   Z	stub_namer   r   r   BuildServicesh   s   	



r,   N)__doc__
__author__Zgoogle.protobuf.internalr   r   r*   r   r   r   r   r   Z_symbol_databaseZDefaultr!   r   r   r   r'   r(   r,   r   r   r   r   <module>   s   	
