B
    S\"                 @   s   d dl mZ d dlT d dlmZ G dd deddZd dlZejdr`d d	l	m
Z
mZmZ nByd d	lm
Z
mZmZ W n( ek
r   d d	l	m
Z
mZmZ Y nX d
d Zdd Zdd ZeZeZeZeZdS )    )version)*)
namedtuplec                   s    e Zd ZdZ fddZ  ZS )ExtTypez'ExtType represents ext type in msgpack.c                sV   t |tstdt |ts$tdd|  kr8dksBn tdtt| | ||S )Nzcode must be intzdata must be bytesr      zcode must be 0~127)
isinstanceint	TypeErrorbytes
ValueErrorsuperr   __new__)clscodedata)	__class__ /lib/python3.7/site-packages/msgpack/__init__.pyr   
   s    

zExtType.__new__)__name__
__module____qualname____doc__r   __classcell__r   r   )r   r   r      s   r   z	code dataNZMSGPACK_PUREPYTHON)PackerunpackbUnpackerc             K   s   t f |}|||  dS )zX
    Pack object `o` and write it to `stream`

    See :class:`Packer` for options.
    N)r   writepack)ostreamkwargsZpackerr   r   r   r      s    
r   c             K   s   t f || S )zW
    Pack object `o` and return packed bytes

    See :class:`Packer` for options.
    )r   r   )r   r    r   r   r   packb(   s    r!   c             K   s   |   }t|f|S )z
    Unpack an object from `stream`.

    Raises `ExtraData` when `stream` contains extra bytes.
    See :class:`Unpacker` for options.
    )readr   )r   r    r   r   r   r   unpack1   s    r#   )Zmsgpack._versionr   Zmsgpack.exceptionscollectionsr   r   osenvirongetZmsgpack.fallbackr   r   r   Zmsgpack._cmsgpackImportErrorr   r!   r#   loadloadsdumpdumpsr   r   r   r   <module>   s"   
	