
    	^c                        d dl Zd dlZd dlZd dlZd dlZddlmZ ddl	mZ ej
        Z G d d          Z e            Z e            Z e            Ze                    ej        d           e                    ej        dd	           e                    ej        d
d           e                    ej        dd           e                    ej        d           e                    ej        d           e                    ej        d           e                    ej        d           ddZddZee_        ee_        d Zd Zd Zd Zd ZdS )    N   )getattr)pycompatc                   &    e Zd Zd Zd Zd Zd ZdS )_pycompatstubc                     i | _         d S N)_aliases)selfs    8/usr/lib/python3/dist-packages/mercurial/urllibcompat.py__init__z_pycompatstub.__init__   s        c                 ~    t          t          |          }| j                            fd|D                        dS )z4Add items that will be populated at the first accessc              3   p   K   | ]0}|                     d d                                          |ffV  1dS )_ N)replacelower).0itemorigins     r   	<genexpr>z1_pycompatstub._registeraliases.<locals>.<genexpr>   sW       
 
@DT\\#r""((**VTN;
 
 
 
 
 
r   N)map_sysstrr
   update)r   r   itemss    ` r   _registeraliasesz_pycompatstub._registeraliases   s\    GU## 
 
 
 
HM
 
 
 	
 	
 	
 	
 	
r   c                 R    |t          |          f| j        t          |          <   dS )z%Alias ``origin``.``attr`` as ``name``N)r   r
   )r   r   attrnames       r   _registeraliasz_pycompatstub._registeralias   s%    (.'>gdmm$$$r   c                     	 | j         |         \  }}n# t          $ r t          |          w xY wt          ||          x| j        |<   }|S r	   )r
   KeyErrorAttributeErrorr   __dict__)r   r    r   r   objs        r   __getattr__z_pycompatstub.__getattr__#   sb    	'=.LFDD 	' 	' 	' &&&	'$+FD$9$99dc
s    -N)__name__
__module____qualname__r   r   r!   r'    r   r   r   r      sP          
 
 
? ? ?    r   r   )s	   splitattrs   splitpasswds	   splitports	   splitusers   urlparses
   urlunparses   parse_qss   parseqss	   parse_qsls   parseqsls   unquote_to_bytess   unquote)s   AbstractHTTPHandlers   BaseHandlers   build_openers   FileHandlers
   FTPHandlers
   ftpwrappers   HTTPHandlers   HTTPSHandlers   install_openers   pathname2urls   HTTPBasicAuthHandlers   HTTPDigestAuthHandlers   HTTPPasswordMgrWithDefaultRealms   ProxyHandlers   Requests   url2pathnames   urlopen)s   addclosehooks
   addinfourl)s	   HTTPErrors   URLError)s
   HTTPServers   BaseHTTPRequestHandlers   SimpleHTTPRequestHandlers   CGIHTTPRequestHandler/c                     t          | t          j                  rt          |           } t          j                            | |          } |                     dd          S )N)safeasciistrict)
isinstancer   bytestrbytesurllibparsequote_from_bytesencode)sr.   s     r   quoter9   t   sR     !X%&& !HH%%ad%33A88GX&&&r   Fc                 n    t           j                            | |          }|                    d          S )N)doseqr/   )r4   r5   	urlencoder7   )queryr;   r8   s      r   r<   r<      s.    uE22A88Gr   c                     | j         S r	   )full_urlreqs    r   
getfullurlrB      
    <r   c                     | j         S r	   )hostr@   s    r   gethostrF      	    8Or   c                     | j         S r	   )selectorr@   s    r   getselectorrJ      rC   r   c                     | j         S r	   datar@   s    r   getdatarN      rG   r   c                     | j         d uS r	   rL   r@   s    r   hasdatarP      s    84r   )r,   )F)http.serverhttpurllib.errorr4   urllib.parseurllib.requesturllib.responser   r   r   sysstrr   r   
httpserverurlrequrlerrr   r5   r!   requestresponseerrorserverr9   r<   rB   rF   rJ   rN   rP   r+   r   r   <module>r_      sH                                  
/       0 ]__
		   
L
 
 
   flK < < <   flL+ > > >   fl$7 D D D   
N  0   
O     
L     K  ' ' ' '   
                   r   