o
    Hh                     @   sp   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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                    sH    fdd | j  D ]\}}d|  }||<  ||d  qdS )zBuilds message and enum descriptors.

  Args:
    file_des: FileDescriptor of the .proto file
    module: Generated _pb2 module
  c                    sX   | j  D ]\}}||  }||<  ||d  q| jD ]}|||j  < qd S )N_)nested_types_by_nameitemsupper
enum_typesname)msg_desprefixr   
nested_msgmodule_nameenum_desBuildNestedDescriptorsmodule a/var/www/html/Persson_Maskin/env/lib/python3.10/site-packages/google/protobuf/internal/builder.pyr   "   s   
z>BuildMessageAndEnumDescriptors.<locals>.BuildNestedDescriptorsr   N)message_types_by_namer	   r
   )file_desr   r   r   r   r   r   r   BuildMessageAndEnumDescriptors   s   r   c           	         s    fdd | j  D ]\}}||d|  < t|||< |jD ]}|j||j< q"q| j D ]\}}|j|| d < |||< q1| j	 D ]\}}||d|  < qH| j
 D ]\}} |d||< qZd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
  c                    sp   i }| j  D ]\}} ||| j d ||< q| |d< |d< || j |d< t| jtjf|}t| |S )N.
DESCRIPTOR
__module____qualname__)	r   r	   r   _reflectionGeneratedProtocolMessageType_messageMessage_sym_dbRegisterMessage)r   r   create_dictr   r   message_classBuildMessager   r   r   r'   9   s   
z4BuildTopDescriptorsAndMessages.<locals>.BuildMessager   _FIELD_NUMBER N)enum_types_by_namer	   r
   r   EnumTypeWrappervaluesnumberr   extensions_by_nameservices_by_namer   )	r   r   r   r   r   
enum_valueextension_desservicer   r   r&   r   BuildTopDescriptorsAndMessages0   s   	

r3   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   AddHelpersToExtensionsZ   s   r4   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   _StubN)google.protobufr5   r/   r	   GeneratedServiceTypedictGeneratedServiceStubType)r   r   r   r5   r   r2   	stub_namer   r   r   BuildServicesd   s   	



r<   N)__doc__
__author__google.protobuf.internalr   r   r7   r   r    r   r   r   _symbol_databaseDefaultr"   r   r3   r4   r<   r   r   r   r   <module>   s   *
