o
    ei                     @   s^   d Z ddlmZ ejdurejjZdS ddlmZ ddlmZ G dd dZG dd	 d	ZdS )
a  Contains Unknown Fields APIs.

Simple usage example:
  unknown_field_set = UnknownFieldSet(message)
  for unknown_field in unknown_field_set:
    wire_type = unknown_field.wire_type
    field_number = unknown_field.field_number
    data = unknown_field.data
    )api_implementationN)decoder)wire_formatc                   @   sD   e Zd ZdZg dZdd Zedd Zedd Zed	d
 Z	dS )UnknownFieldzA parsed unknown field._field_number
_wire_type_datac                 C   s   || _ || _|| _d S Nr   )selffield_number	wire_typedata r   ]/var/www/html/pca-backend/venv/lib/python3.10/site-packages/google/protobuf/unknown_fields.py__init__8   s   zUnknownField.__init__c                 C      | j S r
   )r   r   r   r   r   r   >      zUnknownField.field_numberc                 C   r   r
   )r   r   r   r   r   r   B   r   zUnknownField.wire_typec                 C   r   r
   )r	   r   r   r   r   r   F   r   zUnknownField.dataN)
__name__
__module____qualname____doc__	__slots__r   propertyr   r   r   r   r   r   r   r   2   s    

r   c                   @   s6   e Zd ZdZdgZdd Zdd Zdd Zd	d
 ZdS )UnknownFieldSetzUnknownField container._valuesc                    s    fdd}g  _ |j}|j}|jr3| jr3t }|D ]\}}|t|\}}	||t	j
|	 qd S |D ],\}
}t|
d\}}t	|\}}|dkrPtdtt|d|\}	}||||	 q5d S )Nc                    s   t | ||} j| d S r
   )r   r   append)r   r   r   unknown_fieldr   r   r   InternalAddR   s   z-UnknownFieldSet.__init__.<locals>.InternalAddr   zField number 0 is illegal.)r   
DESCRIPTOR_unknown_fieldshas_options
GetOptionsmessage_set_wire_formatr   UnknownMessageSetItemDecoder
memoryviewr   WIRETYPE_LENGTH_DELIMITED_DecodeVarint	UnpackTagRuntimeError_DecodeUnknownField)r   msgr   msg_desunknown_fieldslocal_decoder_bufferr   r   	tag_bytestagr   r   r   r   r   P   s,   
zUnknownFieldSet.__init__c                 C   s>   t | j}|dk r||7 }|dk s||krtdj| j| S )Nr   zindex %d out of range)lenr   
IndexErrorindex)r   r6   sizer   r   r   __getitem__k   s   


zUnknownFieldSet.__getitem__c                 C   
   t | jS r
   )r4   r   r   r   r   r   __len__t      
zUnknownFieldSet.__len__c                 C   r9   r
   )iterr   r   r   r   r   __iter__w   r;   zUnknownFieldSet.__iter__N)	r   r   r   r   r   r   r8   r:   r=   r   r   r   r   r   J   s    	r   )r   google.protobuf.internalr   	_c_moduler   r   r   r   r   r   r   r   <module>   s   
