o
    ïT·jd  ã                   @   sV  d Z ddlZddlZddlZddlZddlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZ edƒZedƒZedƒZddlmZ ddlmZ d	ed
eddfdd„ZG dd„ dee ƒZejj e¡ G dd„ dee ee ƒZ G dd„ dee ee ƒZ!G dd„ deeef ƒZ"G dd„ deeef ƒZ#G dd„ dƒZ$G dd„ dƒZ%G dd„ dƒZ&dS )aé  Contains container classes to represent different protocol buffer types.

This file defines container classes which represent categories of protocol
buffer field types which need extra maintenance. Currently these categories
are:

-   Repeated scalar fields - These are all repeated fields which aren't
    composite (e.g. they are of simple types like int32, string, etc).
-   Repeated composite fields - Repeated fields which are composite. This
    includes groups and nested messages.
é    N)ÚAnyÚIterableÚIteratorÚListÚMutableMappingÚMutableSequenceÚNoReturnÚOptionalÚSequenceÚTypeVarÚUnionÚoverloadÚ_TÚ_KÚ_V)ÚFieldDescriptor)ÚmessageÚ	is_frozenÚmsgÚreturnc                 C   s   | rt jdtdd� d S d S )NzwMutating messages or containers returned by GetOptions() is deprecated and will raise an exception in a future release.é   )ÚcategoryÚ
stacklevel)ÚwarningsÚwarnÚFutureWarning)r   r   © r   úf/home/dinkstrade/pdmp-scanner/venv/lib/python3.10/site-packages/google/protobuf/internal/containers.pyÚ_CheckFrozen.   s   
üÿr   c                   @   s¼   e Zd ZdZg d¢Zdeddfdd„Zedede	fd	d
„ƒZ
ededee	 fdd
„ƒZ
dd
„ Z
defdd„Zdedefdd„ZdZdefdd„Zddd„Zddd„Zddd„Zddd„ZdS )ÚBaseContainerzBase container class.©Ú_message_listenerÚ_valuesÚ_frozenÚmessage_listenerr   Nc                 C   s   || _ g | _d| _dS )z¯Args:

    message_listener: A MessageListener implementation.
      The RepeatedScalarFieldContainer will call this object's
      Modified() method when it is modified.
    FNr    )Úselfr$   r   r   r   Ú__init__>   s   
zBaseContainer.__init__Úkeyc                 C   ó   d S ©Nr   ©r%   r'   r   r   r   Ú__getitem__I   ó   zBaseContainer.__getitem__c                 C   r(   r)   r   r*   r   r   r   r+   M   r,   c                 C   ó
   | j | S )z$Retrieves item by the specified key.©r"   r*   r   r   r   r+   Q   ó   
c                 C   ó
   t | jƒS )z0Returns the number of elements in the container.©Úlenr"   ©r%   r   r   r   Ú__len__U   r/   zBaseContainer.__len__Úotherc                 C   s
   | |k S )z3Checks if another instance isn't equal to this one.r   ©r%   r5   r   r   r   Ú__ne__Y   s   
zBaseContainer.__ne__c                 C   r0   r)   ©Úreprr"   r3   r   r   r   Ú__repr__`   ó   
zBaseContainer.__repr__c                 C   ó
   d| _ d S ©NT©r#   r3   r   r   r   Ú
_SetFrozenc   r;   zBaseContainer._SetFrozenúBaseContainer[_T]c                 C   ó   t | jdƒ | S )NzContainer is immutable©r   r#   r3   r   r   r   Ú_AssureWritablef   ó   zBaseContainer._AssureWritablec                 O   s4   |   ¡  d|v r| d¡|d< | jj|i |¤Ž d S )NÚsort_functionÚcmp)rC   Úpopr"   Úsort)r%   ÚargsÚkwargsr   r   r   rH   j   s   zBaseContainer.sortc                 C   s   |   ¡  | j ¡  d S r)   )rC   r"   Úreverser3   r   r   r   rK   s   s   zBaseContainer.reverse©r   N)r   r@   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   r&   r   Úintr   r+   Úslicer   r4   Úboolr7   Ú__hash__Ústrr:   r?   rC   rH   rK   r   r   r   r   r   8   s"    


	r   c                	       s\  e Zd ZdZddgZ	d-dedededdf‡ fd	d
„Zdeddfdd„Zde	deddfdd„Z
dee ddfdd„Zdedee f ddfdd„Zdefdd„Zd.dee	 defdd„Zede	deddfdd„ƒZededee ddfd d„ƒZd/d!d„Zdee	ef ddfd"d#„Zdedefd$d%„Z	d-d&eddfd'd(„Zdefd)d*„Zd0d+d,„Z‡  ZS )1ÚRepeatedScalarFieldContainerzGSimple, type-checked, list-like container for holding repeated scalars.Ú_type_checkerÚ_fieldNr$   Útype_checkerÚfieldr   c                    s   t ƒ  |¡ || _|| _dS )a  Args:

    message_listener: A MessageListener implementation. The
    RepeatedScalarFieldContainer will call this object's Modified() method
    when it is modified.
    type_checker: A type_checkers.ValueChecker instance to run on elements
    inserted into this container.
    N)Úsuperr&   rX   rY   )r%   r$   rZ   r[   ©Ú	__class__r   r   r&   ƒ   s   
z%RepeatedScalarFieldContainer.__init__Úvaluec                 C   s6   |   ¡  | j | j |¡¡ | jjs| j ¡  dS dS )z6Appends an item to the list. Similar to list.append().N)rC   r"   ÚappendrX   Ú
CheckValuer!   ÚdirtyÚModified©r%   r_   r   r   r   r`   •   s
   ÿz#RepeatedScalarFieldContainer.appendr'   c                 C   s8   |   ¡  | j || j |¡¡ | jjs| j ¡  dS dS )zEInserts the item at the specified position. Similar to list.insert().N)rC   r"   ÚinsertrX   ra   r!   rb   rc   ©r%   r'   r_   r   r   r   re   œ   s
   ÿz#RepeatedScalarFieldContainer.insertÚelem_seqc                    s@   ˆ   ¡  t|ƒ}‡ fdd„|D ƒ}|rˆ j |¡ ˆ j ¡  dS )zBExtends by appending the given iterable. Similar to list.extend().c                    s   g | ]}ˆ j  |¡‘qS r   )rX   ra   )Ú.0Úelemr3   r   r   Ú
<listcomp>§   s    z7RepeatedScalarFieldContainer.extend.<locals>.<listcomp>N)rC   Úiterr"   Úextendr!   rc   )r%   rg   Úelem_seq_iterÚ
new_valuesr   r3   r   rl   £   s   z#RepeatedScalarFieldContainer.extendr5   z RepeatedScalarFieldContainer[_T]c                 C   ó"   |   ¡  | j |¡ | j ¡  dS )zŠAppends the contents of another repeated field of the same type to this

    one. We do not check the types of the individual fields.
    N)rC   r"   rl   r!   rc   r6   r   r   r   Ú	MergeFrom¬   s   z&RepeatedScalarFieldContainer.MergeFromri   c                 C   ro   ©z8Removes an item from the list. Similar to list.remove().N©rC   r"   Úremover!   rc   ©r%   ri   r   r   r   rs   ¸   ó   z#RepeatedScalarFieldContainer.removeéÿÿÿÿc                 C   ó    |   ¡  | j| }|  |¡ |S ©zDRemoves and returns an item at a given index. Similar to list.pop().©rC   r"   Ú__delitem__rf   r   r   r   rG   ¾   ó   

z RepeatedScalarFieldContainer.popc                 C   r(   r)   r   rf   r   r   r   Ú__setitem__Å   r,   z(RepeatedScalarFieldContainer.__setitem__c                 C   r(   r)   r   rf   r   r   r   r|   É   r,   c                 C   sf   |   ¡  t|tƒr#|jdurtdƒ‚t| jj|ƒ| j|< | j	 
¡  dS | j |¡| j|< | j	 
¡  dS )z(Sets the item on the specified position.NzExtended slices not supported)rC   Ú
isinstancerS   ÚstepÚ
ValueErrorÚmaprX   ra   r"   r!   rc   rf   r   r   r   r|   Í   s   

c                 C   ó   |   ¡  | j|= | j ¡  dS ©z+Deletes the item at the specified position.N©rC   r"   r!   rc   r*   r   r   r   rz   Ù   ó   z(RepeatedScalarFieldContainer.__delitem__c                 C   s.   | |u rdS t || jƒr|j| jkS || jkS )ú/Compares the current instance with another one.T)r}   r^   r"   r6   r   r   r   Ú__eq__ß   s
   
z#RepeatedScalarFieldContainer.__eq__Úunused_memoc                 C   s&   t t | j¡| j| jƒ}| | ¡ |S r)   )rW   ÚcopyÚdeepcopyr!   rX   rY   rp   )r%   r‡   Úcloner   r   r   Ú__deepcopy__é   s
   ÿ
z)RepeatedScalarFieldContainer.__deepcopy__c                 K   s
   t  d¡‚)Nz:Can't pickle repeated scalar fields, convert to list first)ÚpickleÚPickleError)r%   rJ   r   r   r   Ú
__reduce__ó   s   ÿz'RepeatedScalarFieldContainer.__reduce__c                 C   sê   dd l }|d u rl| jj}|tjkr|j}nW|tjkr|j}nN|tjkr'|j	}nE|tj
kr0|j}n<|tjkr9|j}n3|tjkrB|j}n*|tjkrK|j}n!|tjkrT|j}n| jjtjkr^d}n| jjtjkrht}ntdƒ‚|j| j|dd�S )Nr   ÚSzSCode should never reach here: message type detected in RepeatedScalarFieldContainerT)Údtyperˆ   )ÚnumpyrY   Úcpp_typer   ÚCPPTYPE_INT32Úint32ÚCPPTYPE_INT64Úint64ÚCPPTYPE_UINT32Úuint32ÚCPPTYPE_UINT64Úuint64ÚCPPTYPE_DOUBLEÚfloat64ÚCPPTYPE_FLOATÚfloat32ÚCPPTYPE_BOOLrT   ÚCPPTYPE_ENUMÚtypeÚ
TYPE_BYTESÚTYPE_STRINGrV   ÚSystemErrorÚarrayr"   )r%   r�   rˆ   Únpr’   r   r   r   Ú	__array__ø   s6   







ÿz&RepeatedScalarFieldContainer.__array__r)   ©rv   rL   )NN)rM   rN   rO   rP   rQ   r   r&   r   r`   rR   re   r   rl   r   rp   rs   r	   rG   r   r|   rS   rz   rT   r†   r‹   r   rŽ   r§   Ú__classcell__r   r   r]   r   rW   }   sL    üþýüû	þ
ý
þþ
ý
rW   c                       sF  e Zd ZdZdgZdededdf‡ fdd„Zd)‡ fd	d
„Zdedefdd„Z	deddfdd„Z
dededdfdd„Zdee ddfdd„Zdedee f ddfdd„Zdeddfdd„Zd*dee defdd „Zedededdfd!d"„ƒZededee ddfd#d"„ƒZd$d"„ Zdeeef ddfd%d&„Zdedefd'd(„Z‡  ZS )+ÚRepeatedCompositeFieldContainerzBSimple, list-like container for holding repeated composite fields.Ú_message_descriptorr$   Úmessage_descriptorr   Nc                    s   t ƒ  |¡ || _dS )a…  Note that we pass in a descriptor instead of the generated directly,

    since at the time we construct a _RepeatedCompositeFieldContainer we
    haven't yet necessarily initialized the type that will be contained in the
    container.

    Args:
      message_listener: A MessageListener implementation. The
        RepeatedCompositeFieldContainer will call this object's Modified()
        method when it is modified.
      message_descriptor: A Descriptor instance describing the protocol type
        that should be present in this container.  We'll use the _concrete_class
        field of this descriptor when the client calls add().
    N)r\   r&   r«   )r%   r$   r¬   r]   r   r   r&      s   
z(RepeatedCompositeFieldContainer.__init__c                    s"   t ƒ  ¡  | jD ]}| ¡  qd S r)   )r\   r?   r"   ©r%   Úvalr]   r   r   r?   2  s   


ÿz*RepeatedCompositeFieldContainer._SetFrozenrJ   c                 K   sH   |   ¡  | jjdi |¤Ž}| | j¡ | j |¡ | jjs"| j ¡  |S )z|Adds a new element at the end of the list and returns it.

    Keyword arguments may be used to initialize the element.
    Nr   )	rC   r«   Ú_concrete_classÚ_SetListenerr!   r"   r`   rb   rc   )r%   rJ   Únew_elementr   r   r   Úadd7  s   
z#RepeatedCompositeFieldContainer.addr_   c                 C   sN   |   ¡  | j ¡ }| | j¡ | |¡ | j |¡ | jjs%| j 	¡  dS dS )z+Appends one element by copying the message.N)
rC   r«   r¯   r°   r!   ÚCopyFromr"   r`   rb   rc   )r%   r_   r±   r   r   r   r`   D  s   

ÿz&RepeatedCompositeFieldContainer.appendr'   c                 C   sP   |   ¡  | j ¡ }| | j¡ | |¡ | j ||¡ | jjs&| j 	¡  dS dS )z6Inserts the item at the specified position by copying.N)
rC   r«   r¯   r°   r!   r³   r"   re   rb   rc   )r%   r'   r_   r±   r   r   r   re   N  s   

ÿz&RepeatedCompositeFieldContainer.insertrg   c                 C   sV   |   ¡  | jj}| j}| j}|D ]}|ƒ }| |¡ | |¡ | |¡ q| ¡  dS )z|Extends by appending the given sequence of elements of the same type

    as this one, copying each individual message.
    N)	rC   r«   r¯   r!   r"   r°   rp   r`   rc   )r%   rg   Úmessage_classÚlistenerÚvaluesr   r±   r   r   r   rl   X  s   

z&RepeatedCompositeFieldContainer.extendr5   z#RepeatedCompositeFieldContainer[_T]c                 C   s   |   ¡  |  |¡ dS )zwAppends the contents of another repeated field of the same type to this

    one, copying each individual message.
    N)rC   rl   r6   r   r   r   rp   h  s   z)RepeatedCompositeFieldContainer.MergeFromri   c                 C   ro   rq   rr   rt   r   r   r   rs   s  ru   z&RepeatedCompositeFieldContainer.removerv   c                 C   rw   rx   ry   rf   r   r   r   rG   y  r{   z#RepeatedCompositeFieldContainer.popc                 C   r(   r)   r   rf   r   r   r   r|   €  r,   z+RepeatedCompositeFieldContainer.__setitem__c                 C   r(   r)   r   rf   r   r   r   r|   „  r,   c                 C   s   t | jj› d�ƒ‚)Nz( object does not support item assignment)Ú	TypeErrorr^   rM   rf   r   r   r   r|   ˆ  s   ÿc                 C   r�   r‚   rƒ   r*   r   r   r   rz   �  r„   z+RepeatedCompositeFieldContainer.__delitem__c                 C   s,   | |u rdS t || jƒstdƒ‚| j|jkS )r…   TzSCan only compare repeated composite fields against other repeated composite fields.)r}   r^   r·   r"   r6   r   r   r   r†   –  s   ÿz&RepeatedCompositeFieldContainer.__eq__rL   r¨   )rM   rN   rO   rP   rQ   r   r&   r?   r   r²   r`   rR   re   r   rl   r   rp   rs   r	   rG   r   r|   rS   rz   rT   r†   r©   r   r   r]   r   rª     s.    

þ
ýrª   c                
   @   sR  e Zd ZdZg d¢Zdededededdf
d	d
„Zd1dd„Zd2dd„Zde	de
fdd„Zde	defdd„Zede	dee
 fdd„ƒZede	dedee
ef fdd„ƒZd3dd„Zde	de
defdd„Zde	ddfdd„Zdefd d!„Zdee	 fd"d#„Zdefd$d%„Zd3de	dee
 de
fd&d'„Zd4d)d*„Zd1d+d,„Zd1d-d.„Zdefd/d0„ZdS )5Ú	ScalarMapzGSimple, type-checked, dict-like container for holding repeated scalars.)Ú_key_checkerÚ_value_checkerr"   r!   Ú_entry_descriptorr#   r$   Úkey_checkerÚvalue_checkerÚentry_descriptorr   Nc                 C   ó(   || _ || _|| _|| _i | _d| _dS ©a¿  Args:

    message_listener: A MessageListener implementation.
      The ScalarMap will call this object's Modified() method when it
      is modified.
    key_checker: A type_checkers.ValueChecker instance to run on keys
      inserted into this container.
    value_checker: A type_checkers.ValueChecker instance to run on values
      inserted into this container.
    entry_descriptor: The MessageDescriptor of a map entry: key and value.
    FN)r!   r¹   rº   r»   r"   r#   )r%   r$   r¼   r½   r¾   r   r   r   r&   ¯  ó   
zScalarMap.__init__c                 C   r<   r=   r>   r3   r   r   r   r?   È  r;   zScalarMap._SetFrozenúScalarMap[_K, _V]c                 C   rA   ©NzMap is immutablerB   r3   r   r   r   rC   Ë  rD   zScalarMap._AssureWritabler'   c                 C   sL   | j  |¡}z| j| W S  ty%   |  ¡  | j ¡ }|| j|< | Y S w r)   )r¹   ra   r"   ÚKeyErrorrC   rº   ÚDefaultValue)r%   r'   r®   r   r   r   r+   Ï  s   

üzScalarMap.__getitem__Úitemc                 C   ó   | j  |¡}|| jv S r)   ©r¹   ra   r"   ©r%   rÆ   r   r   r   Ú__contains__Ù  s   
zScalarMap.__contains__c                 C   r(   r)   r   r*   r   r   r   Úgetß  r,   zScalarMap.getÚdefaultc                 C   r(   r)   r   ©r%   r'   rÌ   r   r   r   rË   ã  r,   c                 C   s"   | j  |¡}|| jv r| | S |S r)   rÈ   )r%   r'   rÌ   Úchecked_keyr   r   r   rË   ê  s   
r_   c                 C   s8   |   ¡  | j |¡}| j |¡}|| j|< | j ¡  d S r)   )rC   r¹   ra   rº   r"   r!   rc   )r%   r'   r_   rÎ   Úchecked_valuer   r   r   r|   ñ  s
   
zScalarMap.__setitem__c                 C   s*   |   ¡  | j |¡}| j|= | j ¡  d S r)   ©rC   r¹   ra   r"   r!   rc   )r%   r'   rÎ   r   r   r   rz   ø  ó   zScalarMap.__delitem__c                 C   r0   r)   r1   r3   r   r   r   r4   þ  r;   zScalarMap.__len__c                 C   r0   r)   ©rk   r"   r3   r   r   r   Ú__iter__  r;   zScalarMap.__iter__c                 C   r0   r)   r8   r3   r   r   r   r:     r;   zScalarMap.__repr__c                 C   sB   |   ¡  | j |¡}|d krtdƒ‚|| jvr|  ||¡ | | S )Nz0The value for scalar map setdefault must be set.)rC   r¹   ra   r   r"   r|   )r%   r'   r_   rÎ   r   r   r   Ú
setdefault  s   
zScalarMap.setdefaultr5   c                 C   s$   |   ¡  | j |j¡ | j ¡  d S r)   )rC   r"   Úupdater!   rc   r6   r   r   r   rp     s   zScalarMap.MergeFromc                 C   ó   | j }| ¡ | _ d |d < d S r)   ©r"   rˆ   ©r%   Úoriginalr   r   r   ÚInvalidateIterators  ó   
zScalarMap.InvalidateIteratorsc                 C   ó    |   ¡  | j ¡  | j ¡  d S r)   ©rC   r"   Úclearr!   rc   r3   r   r   r   rÞ     ó   
zScalarMap.clearc                 C   ó   | j jS r)   ©r»   r¯   r3   r   r   r   ÚGetEntryClass"  ó   zScalarMap.GetEntryClassrL   )r   rÂ   r)   )r5   rÂ   r   N) rM   rN   rO   rP   rQ   r   r&   r?   rC   r   r   r+   rT   rÊ   r   r	   rË   r   r   r|   rz   rR   r4   r   rÓ   rV   r:   rÔ   rp   rÚ   rÞ   râ   r   r   r   r   r¸   ¢  sB    	þýüû
ú


 

	

r¸   c                
   @   sd  e Zd ZdZg d¢Zdededededdf
d	d
„Zd3dd„Zd4dd„Zde	de
fdd„Zde	de
fdd„Zede	dee
 fdd„ƒZede	dedee
ef fdd„ƒZd5dd„Zde	defdd„Zde	de
defdd„Zde	ddfd d!„Zdefd"d#„Zdee	 fd$d%„Zdefd&d'„Zd5de	dee
 de
fd(d)„Zd6d+d,„Zd3d-d.„Zd3d/d0„Z defd1d2„Z!dS )7Ú
MessageMapzESimple, type-checked, dict-like container for with submessage values.)r¹   r"   r!   r«   r»   r#   r$   r¬   r¼   r¾   r   Nc                 C   r¿   rÀ   )r!   r«   r¹   r»   r"   r#   )r%   r$   r¬   r¼   r¾   r   r   r   r&   3  rÁ   zMessageMap.__init__c                 C   s"   d| _ | j ¡ D ]}| ¡  qd S r=   )r#   r"   r¶   r?   r­   r   r   r   r?   L  s   
ÿzMessageMap._SetFrozenúMessageMap[_K, _V]c                 C   rA   rÃ   rB   r3   r   r   r   rC   Q  rD   zMessageMap._AssureWritabler'   c                 C   sb   | j  |¡}z| j| W S  ty0   |  ¡  | j ¡ }| | j¡ || j|< | j 	¡  | Y S w r)   )
r¹   ra   r"   rÄ   rC   r«   r¯   r°   r!   rc   )r%   r'   r±   r   r   r   r+   U  s   


úzMessageMap.__getitem__c                 C   s   | | S )aa  get_or_create() is an alias for getitem (ie. map[key]).

    Args:
      key: The key to get or create in the map.

    This is useful in cases where you want to be explicit that the call is
    mutating the map.  This can avoid lint errors for statements like this
    that otherwise would appear to be pointless statements:

      msg.my_map[key]
    r   r*   r   r   r   Úget_or_createa  s   zMessageMap.get_or_createc                 C   r(   r)   r   r*   r   r   r   rË   o  r,   zMessageMap.getrÌ   c                 C   r(   r)   r   rÍ   r   r   r   rË   s  r,   c                 C   s   || v r| | S |S r)   r   rÍ   r   r   r   rË   z  s   rÆ   c                 C   rÇ   r)   rÈ   rÉ   r   r   r   rÊ   €  s   
zMessageMap.__contains__r_   c                 C   ó   |   ¡  tdƒ‚)Nz5May not set values directly, call my_map[key].foo = 5)rC   r   rf   r   r   r   r|   „  s   zMessageMap.__setitem__c                 C   s*   |   ¡  | j |¡}| j|= | j ¡  d S r)   rÐ   r*   r   r   r   rz   ˆ  rÑ   zMessageMap.__delitem__c                 C   r0   r)   r1   r3   r   r   r   r4   Ž  r;   zMessageMap.__len__c                 C   r0   r)   rÒ   r3   r   r   r   rÓ   ‘  r;   zMessageMap.__iter__c                 C   r0   r)   r8   r3   r   r   r   r:   ”  r;   zMessageMap.__repr__c                 C   rç   )NzISet message map value directly is not supported, call my_map[key].foo = 5)rC   ÚNotImplementedErrorrf   r   r   r   rÔ   —  s   ÿzMessageMap.setdefaultr5   c                 C   s8   |   ¡  |jD ]}|| v r| |= | |  || ¡ qd S r)   )rC   r"   r³   )r%   r5   r'   r   r   r   rp   ž  s   
ûzMessageMap.MergeFromc                 C   rÖ   r)   r×   rØ   r   r   r   rÚ   ª  rÛ   zMessageMap.InvalidateIteratorsc                 C   rÜ   r)   rÝ   r3   r   r   r   rÞ   ²  rß   zMessageMap.clearc                 C   rà   r)   rá   r3   r   r   r   râ   ·  rã   zMessageMap.GetEntryClassrL   )r   rå   r)   )r5   rå   r   N)"rM   rN   rO   rP   rQ   r   r&   r?   rC   r   r   r+   ræ   r   r	   rË   r   r   rT   rÊ   r   r|   rz   rR   r4   r   rÓ   rV   r:   rÔ   rp   rÚ   rÞ   râ   r   r   r   r   rä   &  sD    	þýüû
ú

 



rä   c                   @   s0   e Zd ZdZg d¢Zdd„ Zdd„ Zdd„ Zd	S )
Ú_UnknownFieldzA parsed unknown field.©Ú_field_numberÚ
_wire_typeÚ_datac                 C   s   || _ || _|| _d S r)   rê   )r%   Úfield_numberÚ	wire_typeÚdatar   r   r   r&   Á  s   z_UnknownField.__init__c                 C   s   | j |j k S r)   )rë   r6   r   r   r   Ú__lt__Ç  s   z_UnknownField.__lt__c                 C   s0   | |u rdS | j |j ko| j|jko| j|jkS r=   rê   r6   r   r   r   r†   Ë  s   
ÿ
ýz_UnknownField.__eq__N)rM   rN   rO   rP   rQ   r&   rñ   r†   r   r   r   r   ré   »  s    ré   c                   @   s@   e Zd Zdd„ Zdd„ Zedd„ ƒZedd„ ƒZed	d
„ ƒZdS )ÚUnknownFieldRefc                 C   s   || _ || _d S r)   )Ú_parentÚ_index)r%   ÚparentÚindexr   r   r   r&   Ø  s   
zUnknownFieldRef.__init__c                 C   s*   | j stdƒ‚| jt| j ƒkrtdƒ‚d S )NzAUnknownField does not exist. The parent message might be cleared.)ró   r   rô   r2   r3   r   r   r   Ú_check_validÜ  s   ÿÿÿzUnknownFieldRef._check_validc                 C   ó   |   ¡  | j | j¡jS r)   )r÷   ró   Ú_internal_getrô   rë   r3   r   r   r   rî   æ  ó   zUnknownFieldRef.field_numberc                 C   rø   r)   )r÷   ró   rù   rô   rì   r3   r   r   r   rï   ì  rú   zUnknownFieldRef.wire_typec                 C   rø   r)   )r÷   ró   rù   rô   rí   r3   r   r   r   rð   ò  rú   zUnknownFieldRef.dataN)	rM   rN   rO   r&   r÷   Úpropertyrî   rï   rð   r   r   r   r   rò   Ö  s    


rò   c                   @   s^   e Zd ZdZdgZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )ÚUnknownFieldSetzUnknownField containerr"   c                 C   s
   g | _ d S r)   r.   r3   r   r   r   r&   ÿ  r;   zUnknownFieldSet.__init__c                 C   sP   | j d u r	tdƒ‚t| j ƒ}|dk r||7 }|dk s||kr#tdjƒ‚t| |ƒS )NúBUnknownFields does not exist. The parent message might be cleared.r   zindex %d out of range)r"   r   r2   Ú
IndexErrorrö   rò   )r%   rö   Úsizer   r   r   r+     s   
ÿ


zUnknownFieldSet.__getitem__c                 C   r-   r)   r.   )r%   rö   r   r   r   rù     r;   zUnknownFieldSet._internal_getc                 C   s   | j d u r	tdƒ‚t| j ƒS )Nrý   )r"   r   r2   r3   r   r   r   r4     s
   
ÿ
zUnknownFieldSet.__len__c                 C   s   t |||ƒ}| j |¡ |S r)   )ré   r"   r`   )r%   rî   rï   rð   Úunknown_fieldr   r   r   Ú_add  s   zUnknownFieldSet._addc                 c   s$   � t t| ƒƒD ]}t| |ƒV  qd S r)   )Úranger2   rò   )r%   Úir   r   r   rÓ     s   €ÿzUnknownFieldSet.__iter__c                 C   s   |d u rd S | j  |j ¡ d S r)   )r"   rl   r6   r   r   r   Ú_extend"  s   zUnknownFieldSet._extendc                 C   s>   | |u rdS t | jƒ}|d u r| S | ¡  t|jƒ}||kS r=   )Úlistr"   rH   Úsorted)r%   r5   r¶   Úother_valuesr   r   r   r†   (  s   

zUnknownFieldSet.__eq__c                 C   s,   | j D ]}t|jtƒr|j ¡  qd | _ d S r)   )r"   r}   rí   rü   Ú_clearrd   r   r   r   r  5  s
   

€
zUnknownFieldSet._clearN)rM   rN   rO   rP   rQ   r&   r+   rù   r4   r  rÓ   r  r†   r  r   r   r   r   rü   ù  s    rü   )'rP   Úcollections.abcÚcollectionsrˆ   rŒ   r   Útypingr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   Úgoogle.protobuf.descriptorr   Úgoogle.protobufr   rT   rV   r   r   ÚabcÚregisterrW   rª   r¸   rä   ré   rò   rü   r   r   r   r   Ú<module>   s2   8
B  	  #