3
O6b
                 @   sx  d Z ddlZejd dkZerddlZddljZddlZddlm	Z	m
Z
 ddlmZ dd ZejZeZdd	 Zd
d Zdd Zdd Zd!ddZd"ddZdd ZeZeZeZnddlZddlZddlm Z mZ ddl!mZ yddl"mZ W n" e#k
r   ddlmZ Y nX e de$fi Z	ej%Zdd	 Zdd Zdd Zdd Zd#ddZd$ddZe&d  e'Ze(Ze'Zee)fZdS )%z<Utility functions and definitions for python3 compatibility.    N   )ABCabstractmethod)BytesIOc             C   s   t t| S )N)propertyr   )func r   M/var/www/html/sandeepIITI/myenv/lib/python3.6/site-packages/bson/py3compat.pyabstractproperty   s    r
   c             C   s   t j| d S )Nr   )codecslatin_1_encode)sr   r   r	   b#   s    r   c             C   s
   t j| S )N)bytesfromhex)hr   r   r	   bytes_from_hex+   s    r   c             C   s   t | j S )N)iteritems)dr   r   r	   	iteritems.   s    r   c             C   s   t | j S )N)r   values)r   r   r   r	   
itervalues1   s    r   c             C   s   | t |j|d S )N)strwith_traceback)exctypevaluetracer   r   r	   reraise4   s    r   c             C   s   | j |d S )N)r   )exc_instancer   r   r   r	   reraise_instance7   s    r    c             C   s   | S )Nr   )r   r   r   r	   _unicode:   s    r!   )ABCMetar
   )imap)StringIOr   c             C   s   | S )Nr   )r   r   r   r	   r   O   s    c             C   s
   | j dS )Nhex)decode)r   r   r   r	   r   S   s    c             C   s   | j  S )N)r   )r   r   r   r	   r   V   s    c             C   s   | j  S )N)r   )r   r   r   r	   r   Y   s    c             C   s   t | t|| d S )N)_reraiser   )r   r   r   r   r   r	   r   \   s    c             C   s   t | d | d S )N)r'   )r   r   r   r   r	   r    _   s    z=def _reraise(exc, value, trace):
    raise exc, value, trace
)N)N)N)N)*__doc__sysversion_infoPY3r   collections.abcabc_threadthreadr   r   ior   r$   r
   maxsizeMAXSIZEmapr#   r   r   r   r   r   r    r!   r   	text_typeZstring_typeintinteger_typescollectionsr"   	itertools	cStringIOImportErrorobjectZmaxintexecunicode
basestringlongr   r   r   r	   <module>   sV   




