ž 7’ReÛ—c@s ddlmZddlZddlZddlZejddkrÓddlmZefZe Z ddl m Z ddlZddlZddlmZddlmZmZmZmZmZdd lmZmZmZmZmZm Z m!Z!d d „Zddl"Z"dd l"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,ddl-Z-ddl.Z.ddl/Z0dd l1m1Z1ddl2Z2e3Z3ddl4m5Z6ddl4m7Z8da:dd„Z;noddl<mZe=fZe=Z ddl<m>Z ddlZddlZddlZddl?mZmZmZm;Z;mZmZmZmZm!Z!ddl@m$Z$mZm#Z#mZmZm'Z'm(Z(m)Z)m*Z*m+Z+m,Z,ddlAm&Z&m%Z%m Z ddlBjCZ-ddl@jDZ"ddlEjCZ.ddl0Z0dd lFm1Z1ddlGjHZ2eIZ3ddl4m8Z8e6Z6yddlJmKZKmLZLWn@eMk ržGdd„deNƒZLdd„ZOdd„ZKYnXyddl mPZQWn(eMk rÝGdd „d eRƒZQYnXydd!lmSZSWn.eMk r"ejTejUBdd"d#„ZSYnXdd$lVmWZXeYeXd%ƒrKeXZWn<dd&lVmZZ[Gd'd(„d(e[ƒZZGd)d*„d*eXƒZWydd+l\m]Z]WneMk r»d,d-„Z]YnXyddl^Z^Wn"eMk rðdd.lm^Z^YnXy e_Z_Wn.e`k r+dd/lambZbd0d1„Z_YnXyejcZcejdZdWnQeek r•ejfƒZgegd2krsd3Zhnd4Zhd5d6„Zcd7d8„ZdYnXydd9limjZjWn[eMk rdd:lkmlZlmmZmddlZejnd;ƒZod<d=„Zpd>d?„ZjYnXydd@lqmrZrWn"eMk r@dd@lsmrZrYnXejddA…dbkrie1ƒjtZtnddClqmtZtyddDlamuZuWnpeMk rÿddElamvZvyddFlwmxZyWn!eMk rädGdHdI„ZyYnXGdJdK„dKevƒZuYnXyddLlzm{Z{Wn!eMk r7ddMdN„Z{YnXyddOlam|Z|Wn–eMk räyddPl}m~ZWn"eMk r”ddPl€m~ZYnXy ddQlm‚Z‚mƒZƒm„Z„WneMk rÉYnXGdRdS„dSe…ƒZ|YnXyddTl†m‡Z‡mˆZˆWnšeMk r›ejndUej‰ƒZŠdVdW„ZˆGdXdY„dYe…ƒZ‹ddZd[„ZŒGd\d]„d]eƒZŽGd^d_„d_eƒZGd`da„daeRƒZ‡YnXdS(ci(uabsolute_importNi(uStringIO(uFileTypei(ushutil(uurlparseu urlunparseuurljoinuurlsplitu urlunsplit(u urlretrieveuquoteuunquoteu url2pathnameu pathname2urluContentTooShortErroru splittypecCs+t|tƒr!|jdƒ}nt|ƒS(Nuutf-8(u isinstanceuunicodeuencodeu_quote(us((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyuquotesuquote( uRequestuurlopenuURLErroru HTTPErroruHTTPBasicAuthHandleruHTTPPasswordMgru HTTPSHandleru HTTPHandleruHTTPRedirectHandleru build_opener(u HTMLParser(uifilter(u ifilterfalsecCsYtdkr*ddl}|jdƒantj|ƒ}|rO|jddƒSd|fS(uJsplituser('user[:passwd]@host[:port]') --> 'user[:passwd]', 'host[:port]'.iNu ^(.*)@(.*)$ii(u _userproguNoneureucompileumatchugroup(uhostureumatch((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu splituser-s  u splituser(u TextIOWrapper( uurlparseu urlunparseuurljoinu splituseruquoteuunquoteuurlsplitu urlunsplitu splittype( uurlopenu urlretrieveuRequestu url2pathnameu pathname2urluHTTPBasicAuthHandleruHTTPPasswordMgru HTTPSHandleru HTTPHandleruHTTPRedirectHandleru build_opener(u HTTPErroruURLErroruContentTooShortError(u filterfalse(umatch_hostnameuCertificateErrorcBs|EeZdZdS(uCertificateErrorN(u__name__u __module__u __qualname__(u __locals__((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyuCertificateErrorUsuCertificateErrorcCsˆg}x[|jdƒD]J}|dkr8|jdƒqtj|ƒ}|j|jddƒƒqWtjddj|ƒdtjƒS( Nu.u*u[^.]+u\*u[^.]*u\Au\.u\Z(usplituappendureuescapeureplaceucompileujoinu IGNORECASE(udnupatsufrag((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu_dnsname_to_patYs u_dnsname_to_patcCsg|stdƒ‚ng}|jdfƒ}xI|D]A\}}|dkr4t|ƒj|ƒredS|j|ƒq4q4W|sëxi|jdfƒD]R}xI|D]A\}}|dkrŸt|ƒj|ƒrÐdS|j|ƒqŸqŸWq’Wnt|ƒdkr(td|d jtt |ƒƒfƒ‚n;t|ƒdkrWtd ||d fƒ‚n td ƒ‚dS( u7Verify that *cert* (in decoded format as returned by SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 rules are mostly followed, but IP addresses are not accepted for *hostname*. CertificateError is raised on failure. On success, the function returns nothing. uempty or no certificateusubjectAltNameuDNSNusubjectu commonNameiu&hostname %r doesn't match either of %su, uhostname %r doesn't match %riu=no appropriate commonName or subjectAltName fields were found( u ValueErrorugetu_dnsname_to_patumatchuappendulenuCertificateErrorujoinumapurepr(ucertuhostnameudnsnamesusanukeyuvalueusub((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyumatch_hostnamegs.  %umatch_hostname(uSimpleNamespacecBs&|EeZdZdZdd„ZdS(u ContaineruR A generic container for when multiple values need to be returned cKs|jj|ƒdS(N(u__dict__uupdate(uselfukwargs((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu__init__—suContainer.__init__N(u__name__u __module__u __qualname__u__doc__u__init__(u __locals__((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu Container“su Container(uwhichc s¢dd„}tjjˆƒr5|ˆ|ƒr1ˆSd S|d kr\tjjdtjƒ}n|sfd S|jtjƒ}t j dkrtj |kr¬|j dtj ƒntjjddƒjtjƒ}t ‡fdd †|Dƒƒrøˆg}q‡fd d †|Dƒ}n ˆg}tƒ}xu|D]m}tjj|ƒ}||kr-|j|ƒx9|D].} tjj|| ƒ} || |ƒre| SqeWq-q-Wd S( uKGiven a command, mode, and a PATH string, return the path which conforms to the given mode on the PATH, or None if there is no such file. `mode` defaults to os.F_OK | os.X_OK. `path` defaults to the result of os.environ.get("PATH"), or can be overridden with a custom search path. cSs5tjj|ƒo4tj||ƒo4tjj|ƒ S(N(uosupathuexistsuaccessuisdir(ufnumode((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu _access_check¬s$uwhich.._access_checkuPATHuwin32iuPATHEXTuc3s*|] }ˆjƒj|jƒƒVqdS(N(uloweruendswith(u.0uext(ucmd(u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu Ésuwhich..csg|]}ˆ|‘qS(((u.0uext(ucmd(u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu Ìs uwhich..N(uosupathudirnameuNoneuenvironugetudefpathusplitupathsepusysuplatformucurdiruinsertuanyusetunormcaseuaddujoin( ucmdumodeupathu _access_checkupathextufilesuseenudirunormdiruthefileuname((ucmdu3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyuwhichŸs8  !       uwhich(uZipFileu __enter__(u ZipExtFilecBs8|EeZdZdd„Zdd„Zdd„ZdS(u ZipExtFilecCs|jj|jƒdS(N(u__dict__uupdate(uselfubase((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu__init__èsuZipExtFile.__init__cCs|S(N((uself((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu __enter__ësuZipExtFile.__enter__cGs|jƒdS(N(uclose(uselfuexc_info((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu__exit__îsuZipExtFile.__exit__N(u__name__u __module__u __qualname__u__init__u __enter__u__exit__(u __locals__((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu ZipExtFileçs  u ZipExtFilecBs8|EeZdZdd„Zdd„Zdd„ZdS(uZipFilecCs|S(N((uself((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu __enter__ósuZipFile.__enter__cGs|jƒdS(N(uclose(uselfuexc_info((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu__exit__ösuZipFile.__exit__cOstj|||Ž}t|ƒS(N(u BaseZipFileuopenu ZipExtFile(uselfuargsukwargsubase((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyuopenúsu ZipFile.openN(u__name__u __module__u __qualname__u __enter__u__exit__uopen(u __locals__((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyuZipFileòs  uZipFile(upython_implementationcCs@dtjkrdStjdkr&dStjjdƒr<dSdS(u6Return a string identifying the Python implementation.uPyPyujavauJythonu IronPythonuCPython(usysuversionuosunameu startswith(((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyupython_implementationsupython_implementation(u sysconfig(uCallablecCs t|tƒS(N(u isinstanceuCallable(uobj((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyucallablesucallableumbcsustrictusurrogateescapecCsOt|tƒr|St|tƒr2|jttƒStdt|ƒjƒ‚dS(Nuexpect bytes or str, not %s( u isinstanceubytesu text_typeuencodeu _fsencodingu _fserrorsu TypeErrorutypeu__name__(ufilename((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyufsencode#s ufsencodecCsOt|tƒr|St|tƒr2|jttƒStdt|ƒjƒ‚dS(Nuexpect bytes or str, not %s( u isinstanceu text_typeubytesudecodeu _fsencodingu _fserrorsu TypeErrorutypeu__name__(ufilename((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyufsdecode,s ufsdecode(udetect_encoding(uBOM_UTF8ulookupucoding[:=]\s*([-\w.]+)cCsd|dd…jƒjddƒ}|dks=|jdƒrAdS|d ks\|jdƒr`dS|S(u(Imitates get_normal_name in tokenizer.c.Ni u_u-uutf-8uutf-8-ulatin-1u iso-8859-1u iso-latin-1ulatin-1-u iso-8859-1-u iso-latin-1-(ulatin-1u iso-8859-1u iso-latin-1(ulatin-1-u iso-8859-1-u iso-latin-1-(ulowerureplaceu startswith(uorig_encuenc((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu_get_normal_name=s" u_get_normal_namec syˆjj‰Wntk r*d‰YnXd ‰d}d}‡fdd†}‡‡fdd†}|ƒ}|jtƒr›d ‰|dd…}d}n|s«|gfS||ƒ}|rÊ||gfS|ƒ}|sæ||gfS||ƒ}|r|||gfS|||gfS( u> The detect_encoding() function is used to detect the encoding that should be used to decode a Python source file. It requires one argment, readline, in the same way as the tokenize() generator. It will call readline a maximum of twice, and return the encoding used (as a string) and a list of any lines (left as bytes) it has read in. It detects the encoding from the presence of a utf-8 bom or an encoding cookie as specified in pep-0263. If both a bom and a cookie are present, but disagree, a SyntaxError will be raised. If the encoding cookie is an invalid charset, raise a SyntaxError. Note that if a utf-8 bom is found, 'utf-8-sig' is returned. If no encoding is specified, then the default of 'utf-8' will be returned. uutf-8c s(y ˆƒSWntk r#dSYnXdS(Ns(u StopIteration((ureadline(u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu read_or_stop`s  u%detect_encoding..read_or_stopcs9y|jdƒ}WnEtk rZd}ˆdk rJdj|ˆƒ}nt|ƒ‚YnXtj|ƒ}|stdSt|dƒ}yt|ƒ}WnIt k r߈dkr½d|}ndjˆ|ƒ}t|ƒ‚YnXˆr5|j dkr(ˆdkr d}ndjˆƒ}t|ƒ‚n|d 7}n|S( Nuutf-8u'invalid or missing encoding declarationu {} for {!r}iuunknown encoding: uunknown encoding for {!r}: {}uencoding problem: utf-8u encoding problem for {!r}: utf-8u-sig( udecodeuUnicodeDecodeErroruNoneuformatu SyntaxErroru cookie_reufindallu_get_normal_nameulookupu LookupErroruname(ulineu line_stringumsgumatchesuencodingucodec(u bom_foundufilename(u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu find_cookiefs6          u$detect_encoding..find_cookieiNu utf-8-sigFT(u__self__unameuAttributeErroruNoneuFalseu startswithuBOM_UTF8uTrue(ureadlineuencodingudefaultu read_or_stopu find_cookieufirstusecond((u bom_foundufilenameureadlineu3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyudetect_encodingHs4  &        udetect_encoding(uescapeii(uunescape(uChainMap(uMutableMapping(urecursive_repru...cs‡fdd†}|S(um Decorator to make a repr function return fillvalue for a recursive call csptƒ‰‡‡‡fdd†}tˆdƒ|_tˆdƒ|_tˆdƒ|_tˆdiƒ|_|S(Nc sWt|ƒtƒf}|ˆkr%ˆSˆj|ƒzˆ|ƒ}Wdˆj|ƒX|S(N(uidu get_identuaddudiscard(uselfukeyuresult(u fillvalueu repr_runningu user_function(u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyuwrapper½s  u=_recursive_repr..decorating_function..wrapperu __module__u__doc__u__name__u__annotations__(usetugetattru __module__u__doc__u__name__u__annotations__(u user_functionuwrapper(u fillvalue(u repr_runningu user_functionu3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyudecorating_functionºs  u,_recursive_repr..decorating_function((u fillvalueudecorating_function((u fillvalueu3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu_recursive_repr´su_recursive_reprcBs|EeZdZdZdd„Zdd„Zdd„Zd&dd „Zd d „Z d d „Z dd„Z dd„Z e ƒdd„ƒZedd„ƒZdd„ZeZdd„Zedd„ƒZdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&S('uChainMapuÍ A ChainMap groups multiple dicts (or other mappings) together to create a single, updateable view. The underlying mappings are stored in a list. That list is public and can accessed or updated using the *maps* attribute. There is no other state. Lookups search the underlying mappings successively until a key is found. In contrast, writes, updates, and deletions only operate on the first mapping. cGst|ƒpig|_dS(u˜Initialize a ChainMap by setting *maps* to the given mappings. If no mappings are provided, a single empty dictionary is used. N(ulistumaps(uselfumaps((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu__init__ÞsuChainMap.__init__cCst|ƒ‚dS(N(uKeyError(uselfukey((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu __missing__åsuChainMap.__missing__c CsBx2|jD]'}y ||SWq tk r0Yq Xq W|j|ƒS(N(umapsuKeyErroru __missing__(uselfukeyumapping((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu __getitem__ès    uChainMap.__getitem__cCs||kr||S|S(N((uselfukeyudefault((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyugetðsu ChainMap.getcCsttƒj|jŒƒS(N(ulenusetuunionumaps(uself((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu__len__ósuChainMap.__len__cCsttƒj|jŒƒS(N(uiterusetuunionumaps(uself((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu__iter__ösuChainMap.__iter__cs t‡fdd†|jDƒƒS(Nc3s|]}ˆ|kVqdS(N((u.0um(ukey(u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu úsu(ChainMap.__contains__..(uanyumaps(uselfukey((ukeyu3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu __contains__ùsuChainMap.__contains__cCs t|jƒS(N(uanyumaps(uself((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu__bool__üsuChainMap.__bool__cCs%dj|djtt|jƒƒƒS(Nu{0.__class__.__name__}({1})u, (uformatujoinumapureprumaps(uself((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu__repr__ÿsuChainMap.__repr__cGs|tj||ŒƒS(u?Create a ChainMap with a single dict created from the iterable.(udictufromkeys(uclsuiterableuargs((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyufromkeyssuChainMap.fromkeyscCs*|j|jdjƒ|jdd…ŒS(uHNew ChainMap or subclass with a new copy of maps[0] and refs to maps[1:]iiN(u __class__umapsucopy(uself((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyucopy su ChainMap.copycCs|ji|jŒS(u;New ChainMap with a new dict followed by all previous maps.(u __class__umaps(uself((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu new_childsuChainMap.new_childcCs|j|jdd…ŒS(uNew ChainMap from maps[1:].iN(u __class__umaps(uself((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyuparentssuChainMap.parentscCs||jd| od[i]=yiiN(u_OrderedDict__rootu_OrderedDict__map(uselfukeyuvalueu dict_setitemurootulast((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu __setitem__ms    )uOrderedDict.__setitem__cCs@|||ƒ|jj|ƒ\}}}||d<||d del od[y]iiN(u_OrderedDict__mapupop(uselfukeyu dict_delitemu link_prevu link_next((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu __delitem__ws  uOrderedDict.__delitem__ccs=|j}|d}x#||k r8|dV|d}qWdS(uod.__iter__() <==> iter(od)iiN(u_OrderedDict__root(uselfurootucurr((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu__iter__€s    uOrderedDict.__iter__ccs=|j}|d}x#||k r8|dV|d}qWdS(u#od.__reversed__() <==> reversed(od)iiN(u_OrderedDict__root(uselfurootucurr((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu __reversed__ˆs    uOrderedDict.__reversed__c Cs€yZx$|jjƒD]}|dd…=qW|j}||dg|dd…<|jjƒWntk rnYnXtj|ƒdS(u.od.clear() -> None. Remove all items from od.N(u_OrderedDict__mapu itervaluesu_OrderedDict__rootuNoneuclearuAttributeErrorudict(uselfunodeuroot((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyuclears  uOrderedDict.clearcCs§|stdƒ‚n|j}|rO|d}|d}||d<||d (k, v), return and remove a (key, value) pair. Pairs are returned in LIFO order if last is true or FIFO order if false. udictionary is emptyiii(uKeyErroru_OrderedDict__rootu_OrderedDict__mapudictupop(uselfulasturootulinku link_prevu link_nextukeyuvalue((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyupopitemœs            uOrderedDict.popitemcCs t|ƒS(uod.keys() -> list of keys in od(ulist(uself((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyukeysµsuOrderedDict.keyscs‡fdd†ˆDƒS(u#od.values() -> list of values in odcsg|]}ˆ|‘qS(((u.0ukey(uself(u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu »s u&OrderedDict.values..((uself((uselfu3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyuvalues¹suOrderedDict.valuescs‡fdd†ˆDƒS(u.od.items() -> list of (key, value) pairs in odcs g|]}|ˆ|f‘qS(((u.0ukey(uself(u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu ¿s u%OrderedDict.items..((uself((uselfu3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyuitems½suOrderedDict.itemscCs t|ƒS(u0od.iterkeys() -> an iterator over the keys in od(uiter(uself((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyuiterkeysÁsuOrderedDict.iterkeysccsx|D]}||VqWdS(u2od.itervalues -> an iterator over the values in odN((uselfuk((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu itervaluesÅs uOrderedDict.itervaluesccs$x|D]}|||fVqWdS(u=od.iteritems -> an iterator over the (key, value) items in odN((uselfuk((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu iteritemsÊs uOrderedDict.iteritemscOs&t|ƒdkr.tdt|ƒfƒ‚n|sCtdƒ‚n|d}f}t|ƒdkrr|d}nt|tƒr£xw|D]}|||| None. Update od from dict/iterable E and F. If E is a dict instance, does: for k in E: od[k] = E[k] If E has a .keys() method, does: for k in E.keys(): od[k] = E[k] Or if E is an iterable of items, does: for k, v in E: od[k] = v In either case, this is followed by: for k, v in F.items(): od[k] = v iu8update() takes at most 2 positional arguments (%d given)u,update() takes at least 1 argument (0 given)iiukeysN(ulenu TypeErroru isinstanceudictuhasattrukeysuitems(uargsukwdsuselfuotherukeyuvalue((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyuupdateÏs&    uOrderedDict.updatecCsC||kr!||}||=|S||jkr?t|ƒ‚n|S(u±od.pop(k[,d]) -> v, remove specified key and return the corresponding value. If key is not found, d is returned if given, otherwise KeyError is raised. (u_OrderedDict__markeruKeyError(uselfukeyudefaulturesult((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyupopòs  uOrderedDict.popcCs"||kr||S|||<|S(uDod.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od((uselfukeyudefault((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu setdefaultÿs  uOrderedDict.setdefaultc Cs‚|si}nt|ƒtƒf}||kr4dSd|| repr(od)u...iu%s()u%s(%r)N(uidu _get_identu __class__u__name__uitems(uselfu _repr_runningucall_key((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu__repr__s   uOrderedDict.__repr__cs~‡fdd†ˆDƒ}tˆƒjƒ}x'ttƒƒD]}|j|dƒq;W|rnˆj|f|fSˆj|ffS(u%Return state information for picklingcs g|]}|ˆ|g‘qS(((u.0uk(uself(u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu s u*OrderedDict.__reduce__..N(uvarsucopyu OrderedDictupopuNoneu __class__(uselfuitemsu inst_dictuk((uselfu3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu __reduce__suOrderedDict.__reduce__cCs |j|ƒS(u!od.copy() -> a shallow copy of od(u __class__(uself((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyucopysuOrderedDict.copycCs(|ƒ}x|D]}||| New ordered dictionary with keys from S and values equal to v (which defaults to None). ((uclsuiterableuvalueudukey((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyufromkeys"s  uOrderedDict.fromkeyscCsMt|tƒr=t|ƒt|ƒko<|jƒ|jƒkStj||ƒS(u›od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive while comparison to a regular mapping is order-insensitive. (u isinstanceu OrderedDictulenuitemsudictu__eq__(uselfuother((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu__eq__-s.uOrderedDict.__eq__cCs ||k S(N((uselfuother((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu__ne__6suOrderedDict.__ne__cCs t|ƒS(u@od.viewkeys() -> a set-like object providing a view on od's keys(uKeysView(uself((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyuviewkeys;suOrderedDict.viewkeyscCs t|ƒS(u<od.viewvalues() -> an object providing a view on od's values(u ValuesView(uself((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu viewvalues?suOrderedDict.viewvaluescCs t|ƒS(uBod.viewitems() -> a set-like object providing a view on od's items(u ItemsView(uself((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu viewitemsCsuOrderedDict.viewitemsNT($u__name__u __module__u __qualname__u__doc__u__init__udictu __setitem__u __delitem__u__iter__u __reversed__uclearuTrueupopitemukeysuvaluesuitemsuiterkeysu itervaluesu iteritemsuupdateu_OrderedDict__updateuobjectu_OrderedDict__markerupopuNoneu setdefaultu__repr__u __reduce__ucopyu classmethodufromkeysu__eq__u__ne__uviewkeysu viewvaluesu viewitems(u __locals__((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu OrderedDictQs:                  u OrderedDict(uBaseConfiguratoru valid_identu^[a-z_][a-z0-9_]*$cCs,tj|ƒ}|s(td|ƒ‚ndS(Nu!Not a valid Python identifier: %rT(u IDENTIFIERumatchu ValueErroruTrue(usum((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu valid_identMsu valid_identcBs5|EeZdZdZdd„Zddd„ZdS(uConvertingDictu A converting dictionary wrapper.cCsqtj||ƒ}|jj|ƒ}||k rm|||[a-z]+)://(?P.*)$u ^\s*(\w+)\s*u^\.\s*(\w+)\s*u^\[\s*(\w+)\s*\]\s*u^\d+$u ext_convertuextu cfg_convertucfgcCst|ƒ|_||j_dS(N(uConvertingDictuconfigu configurator(uselfuconfig((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu__init__¹suBaseConfigurator.__init__c Csü|jdƒ}|jdƒ}yz|j|ƒ}x`|D]X}|d|7}yt||ƒ}Wq7tk rŽ|j|ƒt||ƒ}Yq7Xq7W|SWn]tk r÷tjƒdd…\}}td||fƒ}|||_ |_ |‚YnXdS(ul Resolve strings to objects using standard import and attribute syntax. u.iiNuCannot resolve %r: %s( usplitupopuimporterugetattruAttributeErroru ImportErrorusysuexc_infou ValueErroru __cause__u __traceback__( uselfusunameuusedufoundufragueutbuv((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyuresolve½s"    uBaseConfigurator.resolvecCs |j|ƒS(u*Default converter for the ext:// protocol.(uresolve(uselfuvalue((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu ext_convertÔsuBaseConfigurator.ext_convertc Cs\|}|jj|ƒ}|dkr7td|ƒ‚n!||jƒd…}|j|jƒd}xñ|rW|jj|ƒ}|rœ||jƒd}nƒ|jj|ƒ}|r|jƒd}|j j|ƒsã||}qyt |ƒ}||}Wqt k r||}YqXn|r>||jƒd…}qgtd||fƒ‚qgW|S(u*Default converter for the cfg:// protocol.uUnable to convert %rNiuUnable to convert %r at %r( u WORD_PATTERNumatchuNoneu ValueErroruenduconfigugroupsu DOT_PATTERNu INDEX_PATTERNu DIGIT_PATTERNuintu TypeError(uselfuvalueurestumuduidxun((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu cfg_convertØs2     uBaseConfigurator.cfg_convertcCs/t|tƒ r7t|tƒr7t|ƒ}||_nôt|tƒ rnt|tƒrnt|ƒ}||_n½t|tƒ r¥t|tƒr¥t|ƒ}||_n†t|tƒr+|j j |ƒ}|r+|j ƒ}|d}|j j |dƒ}|r(|d}t||ƒ}||ƒ}q(q+n|S(uù Convert values to an appropriate type. dicts, lists and tuples are replaced by their converting alternatives. Strings are checked to see if they have a conversion format and are converted if they do. uprefixusuffixN(u isinstanceuConvertingDictudictu configuratoruConvertingListulistuConvertingTupleutupleu string_typesuCONVERT_PATTERNumatchu groupdictuvalue_convertersugetuNoneugetattr(uselfuvalueumuduprefixu converterusuffix((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyuconvertús*         uBaseConfigurator.convertcs¤ˆjdƒ}t|ƒs-|j|ƒ}nˆjddƒ}t‡fdd†ˆDƒƒ}||}|r x-|jƒD]\}}t|||ƒq}Wn|S(u1Configure an object with a user-supplied factory.u()u.cs,g|]"}t|ƒr|ˆ|f‘qS((u valid_ident(u.0uk(uconfig(u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu s u5BaseConfigurator.configure_custom..N(upopucallableuresolveuNoneudictuitemsusetattr(uselfuconfigucupropsukwargsuresultunameuvalue((uconfigu3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyuconfigure_customs  u!BaseConfigurator.configure_customcCs"t|tƒrt|ƒ}n|S(u0Utility function which converts lists to tuples.(u isinstanceulistutuple(uselfuvalue((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyuas_tuple$suBaseConfigurator.as_tupleN(u__name__u __module__u __qualname__u__doc__ureucompileuCONVERT_PATTERNu WORD_PATTERNu DOT_PATTERNu INDEX_PATTERNu DIGIT_PATTERNuvalue_convertersu staticmethodu __import__uimporteru__init__uresolveu ext_convertu cfg_convertuconvertuconfigure_customuas_tuple(u __locals__((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyuBaseConfigurator¥s"      "  uBaseConfigurator(ii(‘u __future__uabsolute_importuosureusysu version_infouStringIOu basestringu string_typesuunicodeu text_typeutypesuFileTypeu file_typeu __builtin__ubuiltinsu ConfigParseru configparseru _backportushutiluurlparseu urlunparseuurljoinuurlsplitu urlunsplituurllibu urlretrieveuquoteu_quoteuunquoteu url2pathnameu pathname2urluContentTooShortErroru splittypeuurllib2uRequestuurlopenuURLErroru HTTPErroruHTTPBasicAuthHandleruHTTPPasswordMgru HTTPSHandleru HTTPHandleruHTTPRedirectHandleru build_openeruhttplibu xmlrpclibuQueueuqueueu HTMLParseruhtmlentitydefsu raw_inputu itertoolsuifilterufilteru ifilterfalseu filterfalseuNoneu _userprogu splituseruioustru TextIOWrapperu urllib.parseuurllib.requestu urllib.erroru http.clientuclienturequestu xmlrpc.clientu html.parseru html.entitiesuentitiesuinputusslumatch_hostnameuCertificateErroru ImportErroru ValueErroru_dnsname_to_patuSimpleNamespaceu ContaineruobjectuwhichuF_OKuX_OKuzipfileuZipFileu BaseZipFileuhasattru ZipExtFileuBaseZipExtFileuplatformupython_implementationu sysconfigucallableu NameErroru collectionsuCallableufsencodeufsdecodeuAttributeErrorugetfilesystemencodingu _fsencodingu _fserrorsutokenizeudetect_encodingucodecsuBOM_UTF8ulookupucompileu cookie_reu_get_normal_nameuhtmluescapeucgiuunescapeuChainMapuMutableMappingureprliburecursive_repru_recursive_repruimpucache_from_sourceu OrderedDictuthreadu get_identu _get_identu dummy_threadu_abcolluKeysViewu ValuesViewu ItemsViewudictulogging.configuBaseConfiguratoru valid_identuIu IDENTIFIERuConvertingDictupopulistuConvertingListutupleuConvertingTuple(((u3/tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyus      (4  F         @L   )  !A                   [   b      ö