YCddlmZddlZddlZddlZddlZddlZddlZddlZ ddl Z ddl m Z ddl mZmZddlmZddlmZddlmZddlmZdd lmZdd lmZdd lmZdd lmZdd l m!Z!ddl"m#Z#ddl$m%Z%ddl&m'Z'm(Z(ddl)m*Z*m+Z+m,Z,m-Z-ddl.m/Z/m0Z0m1Z1ej2dZ3ej4e5Z6d3dZ7d4dZ8GddZ9e GddZ:d5d"Z;d6d(ZdS)9) annotationsN) dataclass)AnyCallable)Version)parse)Group)escape)Text) LinkCollector) PackageFinder)get_default_environment)SelectionPreferences) PipSession)WINDOWS) get_best_invocation_for_this_pip#get_best_invocation_for_this_python)adjacent_tmp_filecheck_path_ownercopy_directory_permissionsreplace)ExternallyManagedEnvironmentcheck_externally_managed ensure_dir)dayskeystrreturncz|}tj|}|SN)encodehashlibsha224 hexdigest)r key_bytesnames s/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/pip/_internal/self_outdated_check.py_get_statefile_namer)/s/ I >) $ $ . . 0 0D Kisodatedatetime.datetimechtj|ddS)zConvert an ISO format string to a date. Handles the format 2020-01-22T14:24:01Z (trailing Z) which is not supported by older versions of fromisoformat. Zz+00:00)datetime fromisoformatr)r+s r( _convert_dater15s)   * *7??3+I+I J JJr*c>eZdZddZeddZdd Zdd Zd S)SelfCheckState cache_dirrrNonechi|_d|_|rtj|dt |j|_ t|jd5}tj ||_ddddS#1swxYwYdS#tttf$rYdSwxYwdS)N selfcheckzutf-8)encoding) _state_statefile_pathospathjoinr)ropenjsonloadOSError ValueErrorKeyError)selfr4 statefiles r(__init__zSelfCheckState.__init__?s&( #  #%7<<;(;DH(E(E$$D  $.AAA7Y"&)I"6"6DK777777777777777777Z2      s6 B B: BB  BB BB/.B/ctjSr!)sysprefix)rDs r(rzSelfCheckState.keyPs zr* current_timer, str | Nonec|jsdSd|jvrdSd|jvrdSt|jd}||z }|tkrdS|jdS)z7Check if we have a not-outdated version loaded already.N last_check pypi_version)r9r1_WEEK)rDrJrMtime_since_last_checks r(getzSelfCheckState.getTss{ 4 t{ * *4  , ,4#4;|#<== ,z 9 5 ( (4{>**r*rNc&|jsdStj|j}t |sdSt ||j||d}tj |dd}t|j5}| | t||dddn #1swxYwY t|j|jdS#t $rYdSwxYw)N)rrMrNT),:) sort_keys separators)r:r;r<dirnamerrr isoformatr?dumpsrwriter"rrr'rA)rDrNrJstatefile_directorystatetextfs r(setzSelfCheckState.setgsa#  F good.BCC 344  F &''' 8&0022(   z%4JGGG t3 4 4 ? GGDKKMM " " " &':A > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?  AFD0 1 1 1 1 1    DD s$8CC!C&D DDN)r4rrr5)rr)rJr,rrK)rNrrJr,rr5)__name__ __module__ __qualname__rFpropertyrrQr_r*r(r3r3>sp"X++++&######r*r3c,eZdZUded<ded<ddZdS) UpgradePromptroldnewrr c "trtd}nt}d}tt t j|d|jd|jdt j|dt|dS)Nz -m pipz/[bold][[reset][blue]notice[reset][bold]][reset]z) A new release of pip is available: [red]z[reset] -> [green]z[reset]z To update, run: [green]z install --upgrade pip) rrrr r from_markuprgrhr )rDpip_cmdnotices r(__rich__zUpgradePrompt.__rich__s  9<>>GGGGG688GB FF  FFFF48HFFF    BB //BBB     r*N)rr )r`rarb__annotations__rmrdr*r(rfrfs< HHH HHH      r*rfpkgboolcbt|}|duo d|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)rget_distribution installer)rodists r(was_installed_by_piprvs4 # $ $ 5 5c : :D t  7 77r*sessionroptionsoptparse.ValuesrKctj||d}tdd}tj||}|dj}|dSt |jS)NT)rxsuppress_no_indexF) allow_yankedallow_all_prereleases)link_collectorselection_prefsrr)r createrr find_best_candidatebest_candidaterversion)rwrxr~rfinderrs r(_get_current_remote_pip_versionrs#)N+#O  !%'F//66ENt ~% & &&r*r\rJ local_versionrget_remote_versionCallable[[], str | None]UpgradePrompt | Nonec||}|>|}|tddS|||t |}td|td|t d}td||sdS||ko|j|jk}|rtt||SdS)NzNo remote pip version foundzRemote version of pip: %szLocal version of pip: %srrzWas pip installed by pip? %s)rgrh) rQloggerdebugr_ parse_versionrv base_versionrfr)r\rJrrremote_version_strremote_versionpip_installed_by_piplocal_version_is_olders r(_self_version_check_logicrs<00!//11  % LL6 7 7 74 $l333"#566N LL,n=== LL,m<<</66 LL/1EFFF t & F  &.*E EM]!3!39KLLLL 4r*r5c td}|sdS tn#t$rYdSwxYwt t |jtjtj j |j tj t||}|!td|ddidSdS) 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. rrN)r4)r\rJrrz%srichT)extra)rrsrrrr3r4r/nowtimezoneutcr functoolspartialrrwarning)rwrxinstalled_distupgrade_prompts r(pip_self_version_checkrs-..??FFN  """" '/w'8999&**8+<+@AA$,$, +Wg  N!t^FD>BBBBB"!s6 AA)rrrr)r+rrr,)rorrrp)rwrrxryrrK) r\r3rJr,rrrrrr)rwrrxryrr5)? __future__rr/rr#r?loggingoptparseos.pathr;rH dataclassesrtypingrrpip._vendor.packaging.versionrrrpip._vendor.rich.consoler pip._vendor.rich.markupr pip._vendor.rich.textr pip._internal.index.collectorr "pip._internal.index.package_finderr pip._internal.metadatar$pip._internal.models.selection_prefsrpip._internal.network.sessionrpip._internal.utils.compatrpip._internal.utils.entrypointsrrpip._internal.utils.filesystemrrrrpip._internal.utils.miscrrr timedeltarO getLoggerr`rr)r1r3rfrvrrrrdr*r(rs""""""  !!!!!! 111111@@@@@@************&&&&&&777777<<<<<<::::::EEEEEE444444......  """  8 $ $ KKKKLLLLLLLL^          08888''''8DCCCCCCr*