3
Šãdeü   ã               @   s¨  d Z dZddlZddlmZ ddlmZ dZde> d ZdZdZ	dZ
dZd	Zd
Zd
ZedMƒZedOƒZdQZdSZdUZdWZdZdZdZdZejeƒd	kršedƒ‚ejeƒdkr°edƒ‚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(d)„ Z%d*d+„ Z&d,d-„ Z'd.d/„ Z(d0d1„ Z)d2d3„ Z*d4d5„ Z+d6d7„ Z,d8d9„ Z-d:d;„ Z.d<d=„ Z/d>d?„ Z0d@dA„ Z1dBdC„ Z2dDdE„ Z3dFdG„ Z4dHdI„ Z5ej6j7ej6j8ej6j9ej6j:fZ;dJdK„ Z<dS )XzFConstants and static functions to support protocol buffer wire format.z#robinson@google.com (Will Robinson)é    N)Ú
descriptor)Úmessageé   é   é   é   é   é   é    é?   é@   z<Iz<Qz<fz<dz"Format "I" is not a 32-bit number.é   z"Format "Q" is not a 64-bit number.c             C   s2   d|  kot kn  s&tjd| ƒ‚| t> |B S )a  Returns an unsigned 32-bit integer that encodes the field number and
  wire type information in standard protocol message wire format.

  Args:
    field_number: Expected to be an integer in the range [1, 1 << 29)
    wire_type: One of the WIRETYPE_* constants.
  r   zUnknown wire type: %d)Ú_WIRETYPE_MAXr   ÚEncodeErrorÚTAG_TYPE_BITS)Úfield_numberZ	wire_type© r   ú[/var/www/agendate/envp3/lib/python3.6/site-packages/google/protobuf/internal/wire_format.pyÚPackTagP   s    r   c             C   s   | t ? | t@ fS )zkThe inverse of PackTag().  Given an unsigned 32-bit number,
  returns a (field_number, wire_type) tuple.
  )r   ÚTAG_TYPE_MASK)Útagr   r   r   Ú	UnpackTag]   s    r   c             C   s   | dkr| d> S | d> dA S )z‘ZigZag Transform:  Encodes signed integers so that they can be
  effectively used with varint encoding.  See wire_format.h for
  more details.
  r   r   éÿÿÿÿr   )Úvaluer   r   r   ÚZigZagEncoded   s    r   c             C   s   | d@ s| d? S | d? dA S )zInverse of ZigZagEncode().r   r   r   r   )r   r   r   r   ÚZigZagDecoden   s    r   c             C   s
   t | |ƒS )N)ÚInt64ByteSize)r   Úint32r   r   r   ÚInt32ByteSizez   s    r   c             C   s   t d| @ ƒS )Nl   ÿÿÿÿ )Ú_VarUInt64ByteSizeNoTag)r   r   r   r   ÚInt32ByteSizeNoTag~   s    r    c             C   s   t | d|@ ƒS )Nl   ÿÿÿÿ )ÚUInt64ByteSize)r   Úint64r   r   r   r   ‚   s    r   c             C   s
   t | |ƒS )N)r!   )r   Zuint32r   r   r   ÚUInt32ByteSize‡   s    r#   c             C   s   t | ƒt|ƒ S )N)ÚTagByteSizer   )r   Úuint64r   r   r   r!   ‹   s    r!   c             C   s   t | t|ƒƒS )N)r#   r   )r   r   r   r   r   ÚSInt32ByteSize�   s    r&   c             C   s   t | t|ƒƒS )N)r!   r   )r   r"   r   r   r   ÚSInt64ByteSize“   s    r'   c             C   s   t | ƒd S )Nr   )r$   )r   Zfixed32r   r   r   ÚFixed32ByteSize—   s    r(   c             C   s   t | ƒd S )Nr   )r$   )r   Zfixed64r   r   r   ÚFixed64ByteSize›   s    r)   c             C   s   t | ƒd S )Nr   )r$   )r   Zsfixed32r   r   r   ÚSFixed32ByteSizeŸ   s    r*   c             C   s   t | ƒd S )Nr   )r$   )r   Zsfixed64r   r   r   ÚSFixed64ByteSize£   s    r+   c             C   s   t | ƒd S )Nr   )r$   )r   Zfltr   r   r   ÚFloatByteSize§   s    r,   c             C   s   t | ƒd S )Nr   )r$   )r   Údoubler   r   r   ÚDoubleByteSize«   s    r.   c             C   s   t | ƒd S )Nr   )r$   )r   Úbr   r   r   ÚBoolByteSize¯   s    r0   c             C   s
   t | |ƒS )N)r#   )r   Úenumr   r   r   ÚEnumByteSize³   s    r2   c             C   s   t | |jdƒƒS )Nzutf-8)ÚBytesByteSizeÚencode)r   Ústringr   r   r   ÚStringByteSize·   s    r6   c             C   s   t | ƒtt|ƒƒ t|ƒ S )N)r$   r   Úlen)r   r/   r   r   r   r3   »   s    r3   c             C   s   dt | ƒ |jƒ  S )Nr   )r$   ÚByteSize)r   r   r   r   r   ÚGroupByteSizeÁ   s    
r9   c             C   s   t | ƒt|jƒ ƒ |jƒ  S )N)r$   r   r8   )r   r   r   r   r   ÚMessageByteSizeÆ   s    r:   c             C   sH   dt dƒ t dƒ t dƒ }|t| ƒ7 }|jƒ }|t|ƒ7 }||7 }|S )Nr   r   r   )r$   r   r8   )r   ÚmsgZ
total_sizeZmessage_sizer   r   r   ÚMessageSetItemByteSizeÌ   s    r<   c             C   s   t t| dƒƒS )zEReturns the bytes required to serialize a tag with this field number.r   )r   r   )r   r   r   r   r$   à   s    r$   c             C   s†   | dkrdS | dkrdS | dkr$dS | dkr0dS | d	kr<d
S | dkrHdS | dkrTdS | dkr`dS | dkrldS | t kr‚tjd|  ƒ‚dS )z©Returns the number of bytes required to serialize a single varint
  using boundary value comparisons. (unrolled loop optimization -WPierce)
  uint64 must be unsigned.
  é   r   iÿ?  r   iÿÿ r   iÿÿÿr   l   ÿÿ r   l   ÿÿÿé   l   ÿÿÿ é   l   ÿÿÿÿr   l   ÿÿÿÿ é	   zValue out of range: %dé
   )Ú
UINT64_MAXr   r   )r%   r   r   r   r   è   s*             r   c             C   s   | t kS )z·Return true iff packable = true is valid for fields of this type.

  Args:
    field_type: a FieldDescriptor::Type value.

  Returns:
    True iff fields of this type are packable.
  )ÚNON_PACKABLE_TYPES)Z
field_typer   r   r   ÚIsTypePackable  s    	rD   l        iÿÿÿl        i   €l        l   ÿÿ l            l   ÿÿÿÿ l            lûÿÿÿ         l            l   ÿÿÿÿ )=Ú__doc__Ú
__author__ÚstructZgoogle.protobufr   r   r   r   ZWIRETYPE_VARINTZWIRETYPE_FIXED64ZWIRETYPE_LENGTH_DELIMITEDZWIRETYPE_START_GROUPZWIRETYPE_END_GROUPZWIRETYPE_FIXED32r   ÚintZ	INT32_MAXZ	INT32_MINZ
UINT32_MAXZ	INT64_MAXZ	INT64_MINrB   ZFORMAT_UINT32_LITTLE_ENDIANZFORMAT_UINT64_LITTLE_ENDIANZFORMAT_FLOAT_LITTLE_ENDIANZFORMAT_DOUBLE_LITTLE_ENDIANÚcalcsizeÚAssertionErrorr   r   r   r   r   r    r   r#   r!   r&   r'   r(   r)   r*   r+   r,   r.   r0   r2   r6   r3   r9   r:   r<   r$   r   ZFieldDescriptorZTYPE_STRINGZ
TYPE_GROUPZTYPE_MESSAGEZ
TYPE_BYTESrC   rD   r   r   r   r   Ú<module>   st   

