o ]Lb@sddlmZddlmZddlmZejZGdddeZeZ eZ eZ ej rddl Ze ejde ejd d e ejd d e ejd dddlZe ejdddlZe ejdddlZe ejdddlZe ejdd.ddZd/ddZee _ee _ddZddZddZdd Z d!d"Z!dSddl"Z"ddl#Z#ddl$Z$ddl%Z%ddlZddl&Z&e ed#e e%d$e e&d%e e&d d e e&d d e e%de e"d&e e$d'e e#d(d)dZd*dZd+dZd,d Z d-d"Z!dS)0)absolute_import)getattr)pycompatc@s,eZdZddZddZddZddZd S) _pycompatstubcCs i|_dSN)_aliases)selfr 8/usr/lib/python3/dist-packages/mercurial/urllibcompat.py__init__ z_pycompatstub.__init__cs(tt|}|jfdd|DdS)z4Add items that will be populated at the first accessc3s(|]}|dd|ffVqdS)_N)replacelower).0itemoriginr r s z1_pycompatstub._registeraliases..N)map_sysstrrupdate)r ritemsr rr _registeraliasess  z_pycompatstub._registeraliasescCs|t|f|jt|<dS)z%Alias ``origin``.``attr`` as ``name``N)rr)r rattrnamer r r _registeraliassz_pycompatstub._registeraliascCsBz |j|\}}Wn tyt|wt|||j|<}|Sr)rKeyErrorAttributeErrorr__dict__)r rrrobjr r r __getattr__s z_pycompatstub.__getattr__N)__name__ __module__ __qualname__r rrr#r r r r rs  rN) splitattr splitpasswd splitport splituserurlparse urlunparsesparse_qssparseqss parse_qslsparseqslsunquote_to_bytesunquote)AbstractHTTPHandler BaseHandler build_opener FileHandler FTPHandler ftpwrapper HTTPHandler HTTPSHandlerinstall_opener pathname2urlHTTPBasicAuthHandlerHTTPDigestAuthHandlerHTTPPasswordMgrWithDefaultRealm ProxyHandlerRequest url2pathnameurlopen) addclosehook addinfourl)s HTTPErrorsURLError) HTTPServerBaseHTTPRequestHandlerSimpleHTTPRequestHandlerCGIHTTPRequestHandler/cCs0t|tjr t|}tjj||d}|ddS)N)safeasciistrict) isinstancerbytestrbytesurllibparsequote_from_bytesencode)srFr r r quoteus  rQFcCstjj||d}|dS)N)doseqrG)rLrM urlencoderO)queryrRrPr r r rSs rScC|jSr)full_urlreqr r r getfullurlrYcCrUr)hostrWr r r gethostrZr\cCrUr)selectorrWr r r getselectorrZr^cCrUrdatarWr r r getdatarZracCs |jduSrr_rWr r r hasdatar rb) r?r@r3r7squoter'r(r)r*r-r=s urlencode)r.r/r0r1r2r8r9r4r:r5r6r;r<r>)r+r,)rArB)rC)rDcC|Sr)get_hostrWr r r r\cCrcr) get_selectorrWr r r r^recCrcr) get_full_urlrWr r r rYrecCrcr)get_datarWr r r rarecCrcr)has_datarWr r r rbre)rE)F)' __future__rrrrsysstrrobjectr httpserverurlrequrlerrispy3 urllib.parserLrrMrurllib.requestrequesturllib.responseresponse urllib.errorerror http.serverhttpserverrQrSrYr\r^rarbBaseHTTPServer CGIHTTPServerSimpleHTTPServerurllib2urlparser r r r s