U
��.e� � @ s� d dl mZ d dlT ddlmZ G dd� dedd��ZddlZej�d �r`d d
l m
Z
mZmZ nBzd d
l
m
Z
mZmZ W n( ek
r� d d
l m
Z
mZmZ Y nX dd� Zd
d� Zdd� ZeZeZeZeZdS )� )�version)�*� )�
namedtuplec s e Zd ZdZ� fdd�Z� ZS )�ExtTypez'ExtType represents ext type in msgpack.c sV t |t�std��t |t�s$td��d| kr8dksBn td��tt| ��| ||�S )Nzcode must be intzdata must be bytesr � zcode must be 0~127)�
isinstance�int� TypeError�bytes�
ValueError�superr �__new__)�cls�code�data�� __class__� �@/usr/lib/python3.8/site-packages/pip/_vendor/msgpack/__init__.pyr
s
zExtType.__new__)�__name__�
__module__�__qualname__�__doc__r �
__classcell__r r r r r s r z code dataNZMSGPACK_PUREPYTHON)�Packer�unpackb�Unpackerc K s t f |�}|�|�| �� dS )zX
Pack object `o` and write it to `stream`
See :class:`Packer` for options.
N)r �write�pack)�o�stream�kwargsZpackerr 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_versionr �
exceptions�collectionsr r �os�environ�getZfallbackr r r Z _cmsgpack�ImportErrorr r# r% �load�loads�dump�dumpsr r r r �