a
    &0_k                     @   s  d dl mZ ddlmZ ddlmZ ejZG dd deZe Z	e Z
e Zejr<d dlZe
ejd e
ejd	d
 e
ejdd e
ejdd d dlZe
ejd d dlZe
ejd d dlZeejd d dlZe	ejd d.ddZd/ddZee
_ee
_dd Zdd Zdd Zdd  Z d!d" Z!nd dl"Z"d dl#Z#d dl$Z$d dl%Z%d dlZd dl&Z&e
ed# e
e%d$ e
e&d% e
e&d	d
 e
e&dd ee%d e	e"d& e	e$d' e	e#d( d)d Zd*d Zd+d Zd,d  Z d-d" Z!dS )0    )absolute_import   )getattr)pycompatc                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
_pycompatstubc                 C   s
   i | _ d S N)_aliases)self r
   8/usr/lib/python3/dist-packages/mercurial/urllibcompat.py__init__   s    z_pycompatstub.__init__c                    s(   t t|}| j fdd|D  dS )z4Add items that will be populated at the first accessc                 3   s&   | ]}| d d  |ffV  qdS )_ N)replacelower).0itemoriginr
   r   	<genexpr>   s   z1_pycompatstub._registeraliases.<locals>.<genexpr>N)map_sysstrr   update)r	   r   itemsr
   r   r   _registeraliases   s    
z_pycompatstub._registeraliasesc                 C   s   |t |f| jt |< dS )z%Alias ``origin``.``attr`` as ``name``N)r   r   )r	   r   attrnamer
   r
   r   _registeralias   s    z_pycompatstub._registeraliasc                 C   sF   z| j | \}}W n ty,   t|Y n0 t|| | j|< }|S r   )r   KeyErrorAttributeErrorr   __dict__)r	   r   r   r   objr
   r
   r   __getattr__   s    z_pycompatstub.__getattr__N)__name__
__module____qualname__r   r   r   r"   r
   r
   r
   r   r      s   r   N)	   splitattr   splitpasswd	   splitport	   splituser   urlparse
   urlunparses   parse_qss   parseqss	   parse_qsls   parseqsls   unquote_to_bytes   unquote)   AbstractHTTPHandler   BaseHandler   build_opener   FileHandler
   FTPHandler
   ftpwrapper   HTTPHandler   HTTPSHandler   install_opener   pathname2url   HTTPBasicAuthHandler   HTTPDigestAuthHandler   HTTPPasswordMgrWithDefaultRealm   ProxyHandler   Request   url2pathname   urlopen)   addclosehook
   addinfourl)s	   HTTPErrors   URLError)
   HTTPServer   BaseHTTPRequestHandler   SimpleHTTPRequestHandler   CGIHTTPRequestHandler/c                 C   s0   t | tjrt| } tjj| |d} | ddS )N)safeasciistrict)
isinstancer   ZbytestrbytesurllibparseZquote_from_bytesencode)srE   r
   r
   r   quotei   s    rN   Fc                 C   s   t jj| |d}|dS )N)doseqrF   )rJ   rK   	urlencoderL   )ZqueryrO   rM   r
   r
   r   rP   s   s    rP   c                 C   s   | j S r   )Zfull_urlZreqr
   r
   r   
getfullurlz   s    rR   c                 C   s   | j S r   )ZhostrQ   r
   r
   r   gethost}   s    rS   c                 C   s   | j S r   )ZselectorrQ   r
   r
   r   getselector   s    rT   c                 C   s   | j S r   datarQ   r
   r
   r   getdata   s    rW   c                 C   s
   | j d uS r   rU   rQ   r
   r
   r   hasdata   s    rX   )r>   r?   r2   r6   s   quoter&   r'   r(   r)   r,   r<   s	   urlencode)r-   r.   r/   r0   r1   r7   r8   r3   r9   r4   r5   r:   r;   r=   )r*   r+   )r@   rA   )rB   )rC   c                 C   s   |   S r   )Zget_hostrQ   r
   r
   r   rS      s    c                 C   s   |   S r   )Zget_selectorrQ   r
   r
   r   rT      s    c                 C   s   |   S r   )Zget_full_urlrQ   r
   r
   r   rR      s    c                 C   s   |   S r   )get_datarQ   r
   r
   r   rW      s    c                 C   s   |   S r   )Zhas_datarQ   r
   r
   r   rX      s    )rD   )F)'Z
__future__r   r   r   r   Zsysstrr   objectr   Z
httpserverZurlreqZurlerrZispy3Zurllib.parserJ   r   rK   r   Zurllib.requestZrequestZurllib.responseZresponseZurllib.errorerrorZhttp.serverZhttpZserverrN   rP   rR   rS   rT   rW   rX   ZBaseHTTPServerZCGIHTTPServerZSimpleHTTPServerZurllib2Zurlparser
   r
   r
   r   <module>   s   



