
    g                         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y)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                   j                         D ])  \  }}d|j                         z   }||<    ||dz          + y)zBuilds message and enum descriptors.

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

$K!F;7K#$56 @r   c                 `  	 	fd	| j                   j                         D ]]  \  }}||d|j                         z   <   t        j                  |      ||<   |j
                  D ]  }|j                  ||j                  <    _ | j                  j                         D ]*  \  }}|j                  ||j                         dz   <   |||<   , | j                  j                         D ]  \  }}||d|j                         z   <    | j                  j                         D ]  \  }} 	|      ||<    y)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                   j                         D ]  \  }} |      ||<    | |d<   |d<   t        j                  | j                  t
        j                  f|      }t        j                  |       |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z&z2k$ C 'K +K<<x'');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   s   	 #55;;=tX!)F3$44X>F4Loo
 * 1 1fZ__ & >  (::@@Bt]-:-A-AF4::</)* F4L  C
 "2288:otW!(F3 ; "77==?otW(F4L @r   c                      y)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                  j                         D ]P  \  }}|j	                  |dt        ||            ||<   |dz   }|j                  |||   ft        ||            ||<   R y)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!2288:otW%::bK8:F4L wI*CCF4L?K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      sF    +
 6 3 / 5 ?
"

"
"
$7,&)R	:r   