o
    ?8¾\ÿ
  ã                   @   sx  d Z ddlZejd dkZerZddlZddlm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dS ddlZddlZddlm Z mZ ddl!mZ zddl"mZ W n e#y‡   ddlmZ Y nw 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	   ú@/var/www/html/env/lib/python3.10/site-packages/bson/py3compat.pyÚabstractproperty   ó   r   c                 C   s   t  | ¡d S )Nr   )ÚcodecsÚlatin_1_encode©Úsr	   r	   r
   Úb#   s   r   c                 C   s
   t  | ¡S r   )ÚbytesÚfromhex©Úhr	   r	   r
   Úbytes_from_hex+   ó   
r   c                 C   ó   t |  ¡ ƒS r   )ÚiterÚitems©Údr	   r	   r
   Ú	iteritems.   r   r   c                 C   r   r   )r   Úvaluesr   r	   r	   r
   Ú
itervalues1   r   r   c                 C   s   | t |ƒƒ |¡‚r   )ÚstrÚwith_traceback©ÚexctypeÚvalueÚtracer	   r	   r
   Úreraise4   s   r&   c                 C   s
   |   |¡‚r   )r!   ©Úexc_instancer%   r	   r	   r
   Úreraise_instance7   r   r)   c                 C   ó   | S r   r	   r   r	   r	   r
   Ú_unicode:   s   r+   )ÚABCMetar   )Úimap)ÚStringIOr   c                 C   r*   r   r	   r   r	   r	   r
   r   O   s   c                 C   s
   |   d¡S )NÚhex)Údecoder   r	   r	   r
   r   S   r   c                 C   ó   |   ¡ S r   )r   r   r	   r	   r
   r   V   ó   c                 C   r1   r   )r   r   r	   r	   r
   r   Y   r2   c                 C   s   t | t|ƒ|ƒ d S r   )Ú_reraiser    r"   r	   r	   r
   r&   \   s   c                 C   s   t | d |ƒ d S r   )r3   r'   r	   r	   r
   r)   _   s   z=def _reraise(exc, value, trace):
    raise exc, value, trace
r   )*Ú__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_typeÚstring_typeÚintÚinteger_typesÚcollectionsr,   Ú	itertoolsÚ	cStringIOÚImportErrorÚobjectÚmaxintÚexecÚunicodeÚ
basestringÚlongr	   r	   r	   r
   Ú<module>   sX   

ÿ

