
    Ng                         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j                    Zd Zd	 Zd
 Z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                     fd| j                                         D ]0\  }}d|                                z   }||<    ||dz              1dS )zBuilds message and enum descriptors.

  Args:
    file_des: FileDescriptor of the .proto file
    module: Generated _pb2 module
  c                     | j                                         D ]0\  }}||                                z   }||<    ||dz              1| j        D ]!}|||j                                        z   <   "d S )N_)nested_types_by_nameitemsupper
enum_typesname)msg_desprefixr   
nested_msgmodule_nameenum_desBuildNestedDescriptorsmodules         \/var/www/html/ai-engine/env/lib/python3.11/site-packages/google/protobuf/internal/builder.pyr   z>BuildMessageAndEnumDescriptors.<locals>.BuildNestedDescriptors"   s    %:@@BB < <zTZZ\\)k&f[Zs):;;;;& 8 8/7fVhm))+++,,8 8    r
   N)message_types_by_namer   r   )file_desr   r   r   r   r   s    `   @r   BuildMessageAndEnumDescriptorsr      s    8 8 8 8 8 8 "7==?? 7 7otW

$K!F;7K#$566667 7r   c                 :  	 	fd	| j                                         D ]O\  }}||d|                                z   <   t          j        |          ||<   |j        D ]}|j        ||j        <   P| j                                        D ])\  }}|j        ||                                dz   <   |||<   *| j	                                        D ]\  }}||d|                                z   <    | j
                                        D ]\  }} 	|          ||<   d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                     i }| j                                         D ]\  }} |          ||<   | |d<   |d<   t          j        | j        t
          j        f|          }t                              |           |S )N
DESCRIPTOR
__module__)	r   r   _reflectionGeneratedProtocolMessageTyper   _messageMessage_sym_dbRegisterMessage)r   create_dictr   r   message_classBuildMessager   s        r   r(   z4BuildTopDescriptorsAndMessages.<locals>.BuildMessage9   s    K%:@@BB 3 3z&,z22k$ 'K +K<x');8 8MM***r   r
   _FIELD_NUMBERN)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(   s
    `       @r   BuildTopDescriptorsAndMessagesr3   0   se   	 	 	 	 	 	 #5;;== 2 2tX!)F3$4X>>F4Lo 2 2
 * 1fZ_2  (:@@BB ! !t]-:-AF4::<</)* F4LL "288:: ) )otW!(F3 "7==?? ) )otW<((F4LL) )r   c                     dS )zsno-op to keep old generated code work with new runtime.

  Args:
    file_des: FileDescriptor of the .proto file
  N )r   s    r   AddHelpersToExtensionsr6   Y   s	     	&r   c           	         ddl m} | j                                        D ]c\  }}|                    |dt          ||                    ||<   |dz   }|                    |||         ft          ||                    ||<   dd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_reflectionr5   )r   r   _StubN)google.protobufr8   r/   r   GeneratedServiceTypedictGeneratedServiceStubType)r   r   r   r8   r   r2   	stub_names          r   BuildServicesr?   c   s     100000!288:: : :otW%::bK888: :F4L wI*CCF4L?K888: :F9: :r   N)__doc__
__author__google.protobuf.internalr   r   r:   r   r"   r   r    r   _symbol_databaseDefaultr$   r   r3   r6   r?   r5   r   r   <module>rE      s     +
 6 6 6 6 6 6 3 3 3 3 3 3 / / / / / / 5 5 5 5 5 5 ? ? ? ? ? ?
"

"
$
$7 7 7,&) &) &)R	 	 	: : : : :r   