ó ďRec@sűddlZddlZddlZddlmZddlmZddlm Z m Z m Z ddl m Z ddlmZddlmZmZeráddlmZmZmZmZdd lmZdd lmZnd e fd „ƒYZdS( i˙˙˙˙N(tparse(tWHEEL_EXTENSION(tredact_auth_from_urltsplit_auth_from_netloctsplitext(tKeyBasedCompareMixin(tMYPY_CHECK_RUNNING(t path_to_urlt url_to_path(tOptionaltTexttTupletUnion(tHTMLPage(tHashestLinkcBsŁeZdZddddddgZd"d"d"ed„Zd„Zd „Ze d „ƒZ e d „ƒZ e 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((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/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((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pyt__str__Ss  cCs dj|ƒS(Ns (R!(R((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pyt__repr___scCs|jS(N(R(R((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/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((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pytfilenamehs cCs t|jƒS(N(RR(R((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pyt file_pathxscCs |jjS(N(Rtscheme(R((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pyR3}scCs |jjS(s4 This can contain auth information. (RR+(R((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pyR+‚scCstj|jjƒS(N(RR,RR'(R((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pyR'ŠscCsttj|jjdƒƒƒS(NR&(RR)R*R'R((R((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pyRscCs|jƒdS(Ni(R(R((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pytext“scCs4|j\}}}}}tj||||dfƒS(N(RRt urlunsplitR(RR3R+R'tquerytfragment((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pyturl_without_fragment˜ss[#&]egg=([^&]*)cCs,|jj|jƒ}|sdS|jdƒS(Ni(t_egg_fragment_retsearchRRtgroup(Rtmatch((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pyt egg_fragment ss[#&]subdirectory=([^&]*)cCs,|jj|jƒ}|sdS|jdƒS(Ni(t_subdirectory_fragment_reR:RRR;(RR<((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/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<((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pythashśs cCs,|jj|jƒ}|r(|jdƒSdS(Ni(R@R:RR;R(RR<((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pyt hash_namežs cCs0tj|jjddƒdjddƒdƒS(Nt#iit?(R)R*Rtsplit(R((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pytshow_urlĆscCs |jdkS(Ntfile(R3(R((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pytis_fileËscCs|jotjj|jƒS(N(RHtosR'tisdirR2(R((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pytis_existing_dirĐscCs |jtkS(N(R4R(R((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pytis_wheelÔscCs ddlm}|j|jkS(Ni˙˙˙˙(tvcs(tpip._internal.vcsRMR3t all_schemes(RRM((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pytis_vcsŮscCs |jdk S(N(RR(R((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pyt is_yankedŕscCs |jdk S(N(RBR(R((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/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((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/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(((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/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 R R tpip._internal.index.collectorR tpip._internal.utils.hashesRR(((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/models/link.pyts   "