o
    Ñ­jò  ã                   @   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 )zèBuilds 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 )z‚Builds 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© ú]/var/www/html/CropPilot/venv/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 ]
\}}ˆ |ƒ||< qZdS )zÇBuilds 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                    sV   i }| j  ¡ D ]
\}}ˆ |ƒ||< q| |d< ˆ|d< t | 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   r   r   r%   9   s   ÿ
z4BuildTopDescriptorsAndMessages.<locals>.BuildMessager   Ú_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   r$   r   ÚBuildTopDescriptorsAndMessages0   s   	
ÿ
ÿr0   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   ÚAddHelpersToExtensionsY   s   r1   c              	   C   sv   ddl m} ddl m} | j ¡ D ]'\}}| ||jft||d�¡||< |d }| ||| ft||d�¡||< qdS )zÆBuilds 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   )r/   )Úservice_reflection)r   r   Ú_StubN)	Úgoogle.protobufr/   r2   r,   r	   ÚGeneratedServiceTypeÚServiceÚdictÚGeneratedServiceStubType)r   r   r   Ú_servicer2   r   r/   Ú	stub_namer   r   r   ÚBuildServicesc   s   	
þ


þûr;   N)Ú__doc__Ú
__author__Úgoogle.protobuf.internalr   r   r4   r   r   r   r   r   Ú_symbol_databaseÚDefaultr    r   r0   r1   r;   r   r   r   r   Ú<module>   s   )
