Viewing File: /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pyc

ó
“tÆ_c@sûddlZddlZddlZddlmZddlmZddlm	Z	m
Z
mZddlm
Z
ddlmZddlmZmZeráddlmZmZmZmZdd	lmZdd
lmZnde
fd„ƒYZdS(
iÿÿÿÿN(tparse(tWHEEL_EXTENSION(tredact_auth_from_urltsplit_auth_from_netloctsplitext(tKeyBasedCompareMixin(tMYPY_CHECK_RUNNING(tpath_to_urlturl_to_path(tOptionaltTexttTupletUnion(tHTMLPage(tHashestLinkcBs£eZdZddddddgZd"d"d"ed„Zd„Zd	„Ze	d
„ƒZ
e	d„ƒZe	d„ƒZe	d
„ƒZ
e	d„ƒZe	d„ƒZd„Ze	d„ƒZe	d„ƒZejdƒZe	d„ƒZejdƒZe	d„ƒZejdƒZe	d„ƒZe	d„ƒZe	d„ƒZe	d„ƒZd„Ze	d„ƒZe	d„ƒZ e	d„ƒZ!e	d „ƒZ"d!„Z#RS(#s?Represents a parsed link from a Package Index's simple URL
    t_parsed_urlt_urlt
comes_fromtrequires_pythont
yanked_reasontcache_link_parsingcCsŒ|jdƒrt|ƒ}ntj|ƒ|_||_||_|rN|nd|_||_	t
t|ƒjd|dtƒ||_
dS(s½
        :param url: url of the resource pointed to (href of the link)
        :param comes_from: instance of HTMLPage where the link was found,
            or string.
        :param requires_python: String containing the `Requires-Python`
            metadata field, specified in PEP 345. This may be specified by
            a data-requires-python attribute in the HTML link tag, as
            described in PEP 503.
        :param yanked_reason: the reason the file has been yanked, if the
            file has been yanked, or None if the file hasn't been yanked.
            This is the value of the "data-yanked" attribute, if present, in
            a simple repository HTML link. If the file has been yanked but
            no reason was provided, this should be the empty string. See
            PEP 592 for more information and the specification.
        :param cache_link_parsing: A flag that is used elsewhere to determine
                                   whether resources retrieved from this link
                                   should be cached. PyPI index urls should
                                   generally have this set to False, for
                                   example.
        s\\tkeytdefining_classN(t
startswithRturllib_parseturlsplitRRRtNoneRRtsuperRt__init__R(tselfturlRRRR((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pyR$s			cCsc|jrdj|jƒ}nd}|jrLdjt|jƒ|j|ƒStt|jƒƒSdS(Ns (requires-python:{})ts{} (from {}){}(RtformatRRRtstr(Rtrp((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pyt__str__Ss		cCs
dj|ƒS(Ns	<Link {}>(R!(R((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pyt__repr___scCs|jS(N(R(R((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pyRcscCsq|jjdƒ}tj|ƒ}|s@t|jƒ\}}|Stj|ƒ}|smtdj	t
ƒƒ‚|S(Nt/s&URL {self._url!r} produced no filename(tpathtrstript	posixpathtbasenameRtnetlocRtunquotetAssertionErrorR!tlocals(RR'tnameR+t	user_pass((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pytfilenamehs	cCs
t|jƒS(N(RR(R((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pyt	file_pathxscCs
|jjS(N(Rtscheme(R((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pyR3}scCs
|jjS(s4
        This can contain auth information.
        (RR+(R((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pyR+‚scCstj|jjƒS(N(RR,RR'(R((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pyR'ŠscCsttj|jjdƒƒƒS(NR&(RR)R*R'R((R((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pyRscCs|jƒdS(Ni(R(R((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pytext“scCs4|j\}}}}}tj||||dfƒS(N(RRt
urlunsplitR(RR3R+R'tquerytfragment((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pyturl_without_fragment˜ss[#&]egg=([^&]*)cCs,|jj|jƒ}|sdS|jdƒS(Ni(t_egg_fragment_retsearchRRtgroup(Rtmatch((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pytegg_fragment ss[#&]subdirectory=([^&]*)cCs,|jj|jƒ}|sdS|jdƒS(Ni(t_subdirectory_fragment_reR:RRR;(RR<((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pytsubdirectory_fragmentªss2(sha1|sha224|sha384|sha256|sha512|md5)=([a-f0-9]+)cCs,|jj|jƒ}|r(|jdƒSdS(Ni(t_hash_reR:RR;R(RR<((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pythash¶s
cCs,|jj|jƒ}|r(|jdƒSdS(Ni(R@R:RR;R(RR<((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pyt	hash_name¾s
cCs0tj|jjddƒdjddƒdƒS(Nt#iit?(R)R*Rtsplit(R((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pytshow_urlÆscCs
|jdkS(Ntfile(R3(R((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pytis_fileËscCs|jotjj|jƒS(N(RHtosR'tisdirR2(R((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pytis_existing_dirÐscCs
|jtkS(N(R4R(R((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pytis_wheelÔscCs ddlm}|j|jkS(Niÿÿÿÿ(tvcs(tpip._internal.vcsRMR3tall_schemes(RRM((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pytis_vcsÙscCs
|jdk	S(N(RR(R((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pyt	is_yankedàscCs
|jdk	S(N(RBR(R((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pythas_hashåscCs]|dks|jrtS|jdk	s/t‚|jdk	sDt‚|j|jd|jƒS(sG
        Return True if the link has a hash and it is allowed.
        t
hex_digestN(RRRtFalseRBR-RAtis_hash_allowed(Rthashes((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pyRUês
N($t__name__t
__module__t__doc__t	__slots__RtTrueRR$R%tpropertyRR1R2R3R+R'RR4R8tretcompileR9R=R>R?R@RARBRFRHRKRLRPRQRRRU(((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pyRsL	)					(RIR)R]tpip._vendor.six.moves.urllibRRtpip._internal.utils.filetypesRtpip._internal.utils.miscRRRtpip._internal.utils.modelsRtpip._internal.utils.typingRtpip._internal.utils.urlsRRttypingR	R
RRtpip._internal.index.collectorR
tpip._internal.utils.hashesRR(((sJ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/link.pyt<module>s"
Back to Directory File Manager