U ʗReT@sddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z m Z mZmZddlmZddlmZddlmZddlmZddlmZdd lmZdd lmZdd lm Z dd l!m"Z"dd l#m$Z$ddl%m&Z&ddl'm(Z(m)Z)ddl*m+Z+m,Z,m-Z-ddl.m/Z/dZ0e1e2Z3e4e4dddZ5GdddZ6e GdddZ7e4e8dddZ9e$ej:e4dddZ;e6eje e ge4fee7d d!d"Zr.dumpsrwriterrr r0)r3r;r9statetextfr!r!r"setVs  zSelfCheckState.set) __name__ __module__ __qualname__strr5propertyrr<rrBrNr!r!r!r"r$+s r$c@s,eZdZUeed<eed<edddZdS) UpgradePromptoldnewr6c Cs\trtd}nt}d}ttt|d|jd|jdt|dt|dS)Nz -m pipz/[bold][[reset][blue]notice[reset][bold]][reset]z& A new release of pip available: [red]z[reset] -> [green]z[reset]z To update, run: [green]z install --upgrade pip) rrrrr from_markuprUrVr )r3pip_cmdnoticer!r!r"__rich__~szUpgradePrompt.__rich__N)rOrPrQrR__annotations__rrZr!r!r!r"rTys rT)pkgrcCst|}|dk od|jkS)zChecks whether pkg was installed by pip This is used not to display the upgrade message when pip is in fact installed by system package manager, such as dnf on Fedora. Npip)r get_distribution installer)r\distr!r!r"was_installed_by_pips ra)sessionoptionsrcCsLtj||dd}tddd}tj||d}|dj}|dkrBdSt|jS)NT)rcsuppress_no_indexF) allow_yankedallow_all_prereleases)link_collectorselection_prefsr])r createrr find_best_candidatebest_candidaterRversion)rbrcrgrhfinderrkr!r!r"_get_current_remote_pip_versions" rn)rKr9 local_versionget_remote_versionrcCs||}|dkr$|}|||t|}td|td|td}td||s`dS||kor|j|jk}|rtt||dSdS)NzRemote version of pip: %szLocal version of pip: %sr]zWas pip installed by pip? %s)rUrV) rBrN parse_versionloggerdebugra base_versionrTrR)rKr9rorpremote_version_strremote_versionpip_installed_by_piplocal_version_is_olderr!r!r"_self_version_check_logics"      ryc Cstd}|sdSzBtt|jdtj|jt t ||d}|dk rTt d|Wn,t k rt dt jddd YnXdS) zCheck for an update for pip. Limit the frequency of checks to once per week. State is stored either in the active virtualenv or in the user's USER_CACHE_DIR keyed off the prefix of the pip script path. r]N)r%)rKr9rorpz[present-rich] %sz6There was an error checking the latest version of pip.zSee below for errorT)exc_info)r r^ryr$r%r<utcnowrl functoolspartialrnrrwarning Exceptionrs)rbrcinstalled_distupgrade_promptr!r!r"pip_self_version_checks&   r)>r<r|rr.loggingoptparseos.pathr*r7 dataclassesrtypingrrrrZpip._vendor.packaging.versionrrqpip._vendor.rich.consolerZpip._vendor.rich.markupr pip._vendor.rich.textr pip._internal.index.collectorr "pip._internal.index.package_finderr pip._internal.metadatar Zpip._internal.metadata.baser$pip._internal.models.selection_prefsrpip._internal.network.sessionrpip._internal.utils.compatrpip._internal.utils.entrypointsrrpip._internal.utils.filesystemrrrpip._internal.utils.miscrr> getLoggerrOrrrRr#r$rTboolraValuesrnryrr!r!r!r"sR              N