B
    Wc`\’  ã               @   sN  d Z ddlZddlZddlZyddlmZmZ W n$ ek
rT   ddlmZmZ Y nX ej	d dkZ
e
rÈeZddlmZ ddlmZ ddlmZmZmZmZmZ ddlmZmZ efZefZe d	¡Z nrdd
l!m"Z ddlm#Z ddl$mZmZmZmZ ddl%mZmZ ddl&Z&dd„ Ze'Zee(fZe d¡Z ddl)mZ dd„ Zdd„ Z*dS )zK
Python 2/3 compatibility helpers.

Note: This module is *not* public API.
é    N)ÚMutableMappingÚSequenceé   )Ú	lru_cache)ÚStringIO)ÚunquoteÚurljoinÚ
urlunsplitÚSplitResultÚurlsplit)Úpathname2urlÚurlopenÚitems)Úizip)ÚBytesIO)r   r	   r
   r   )r   r   c              O   s   t  tj| |Ž¡S )N)Ú
contextlibÚclosingÚurllib2r   )ÚargsÚkwargs© r   ú0lib/python3.7/site-packages/jsonschema/compat.pyr   %   s    r   Ú	iteritemsc             C   s:   t | ƒ\}}}}}d|kr*| dd¡\}}t|||||ƒS )Nú#é   )Ú	_urlsplitÚsplitr
   )ÚurlZschemeZnetlocÚpathZqueryZfragmentr   r   r   r   0   s    r   c             C   s>   d| kr.t | ƒ\}}}}}t||||dfƒ}n| }d}||fS )Nr   Ú )r   r	   )r   ÚsÚnÚpÚqZfragZdefragr   r   r   Ú	urldefrag7   s    r$   )+Ú__doc__r   ÚoperatorÚsysZcollections.abcr   r   ÚImportErrorÚcollectionsÚversion_infoZPY3ÚzipÚ	functoolsr   Úior   ZNativeIOZurllib.parser   r   r	   r
   r   r   Zurllib.requestr   r   ÚstrZ	str_typesÚintZ	int_typesÚmethodcallerr   Ú	itertoolsr   r   ZurlparseZurllibr   Z
basestringZlongZfunctools32r$   r   r   r   r   Ú<module>   s:   
