h~ |ddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z m Z mZmZddlmZddlmZddlmZddlmZddlmZdd lmZdd lmZdd lmZdd 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.m/Z/m0Z0ej1dZ2ej3e4Z5de6de6fdZ7de6dejfdZ8GddZ9e GddZ:de6de;fdZd"e9d#ejd$ed%e gee6fdee:f d&Z?de#d ej=ddfd'Z@dS)(N) dataclass)AnyCallableDictOptional)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_ownerreplace)ExternallyManagedEnvironmentcheck_externally_managed ensure_dir)dayskeyreturncz|}tj|}|SN)encodehashlibsha224 hexdigest)r key_bytesnames /builddir/build/BUILD/imunify360-venv-2.5.2/opt/imunify360/venv/lib/python3.11/site-packages/pip/_internal/self_outdated_check.py_get_statefile_namer((s/ I >) $ $ . . 0 0D Kisodatechtj|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_dater/.s)   * *7??3+I+I J JJr)c~eZdZdeddfdZedefdZdejdeefdZ dedejddfd Z dS) SelfCheckState cache_dirrNchi|_d|_|rtj|dt |j|_ t|jd5}tj ||_ddddS#1swxYwYdS#tttf$rYdSwxYwdS)N selfcheckzutf-8)encoding) _state_statefile_pathospathjoinr(ropenjsonloadOSError ValueErrorKeyError)selfr2 statefiles r'__init__zSelfCheckState.__init__8s&( #  #%7<<;(;DH(E(E$$D  $.AAA7Y"&)I"6"6DK777777777777777777Z2      s6 B B: BB  BB BB/.B/ctjSr )sysprefix)rAs r'rzSelfCheckState.keyIs zr) current_timec|jsdSd|jvrdSd|jvrdSt|jd}||z }|tkrdS|jdS)z7Check if we have a not-outdated version loaded already.N last_check pypi_version)r6r/_WEEK)rArGrItime_since_last_checks r'getzSelfCheckState.getMss{ 4 t{ * *4  , ,4#4;|#<== ,z 9 5 ( (4{>**r)rJcF|jsdSttj|jsdSt tj|j|j||d}tj |dd}t|j5}| | dddn #1swxYwY t|j|jdS#t$rYdSwxYw)N)rrIrJT),:) sort_keys separators)r7rr8r9dirnamerr isoformatr<dumpsrwriter!rr&r>)rArJrGstatetextfs r'setzSelfCheckState.set`sY#  F 0D E EFF  F 27??4#788999 8&0022(   z%4JGGG t3 4 4 # GGDKKMM " " " # # # # # # # # # # # # # # #  AFD0 1 1 1 1 1    DD s$6(C**C.1C.6D D D ) __name__ __module__ __qualname__strrCpropertyrr-rrMrZr)r'r1r17s#$"SX+ 1+hsm++++&  83D       r)r1c0eZdZUeed<eed<defdZdS) UpgradePromptoldnewrc "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_markuprcrdr )rApip_cmdnotices r'__rich__zUpgradePrompt.__rich__s  9<>>GGGGG688GB FF  FFFF48HFFF    BB //BBB     r)N)r[r\r]r^__annotations__r rir`r)r'rbrbsC HHH HHH %      r)rbpkgcbt|}|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)rkdists r'was_installed_by_piprqs4 # $ $ 5 5c : :D t  7 77r)sessionoptionsctj||d}tdd}tj||}|dj}|dSt |jS)NT)rssuppress_no_indexF) allow_yankedallow_all_prereleases)link_collectorselection_prefsrm)r createrrfind_best_candidatebest_candidater^version)rrrsrxryfinderr|s r'_get_current_remote_pip_versionrs#)N+#O  !%'F//66ENt ~% & &&r)rWrG local_versionget_remote_versionc||}|>|}|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: %srmzWas pip installed by pip? %s)rcrd) rMloggerdebugrZ parse_versionrq base_versionrbr^)rWrGrrremote_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)c 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. rmN)r2)rWrGrrz%srichT)extra)rrnrrrr1r2r-nowtimezoneutcr} functoolspartialrrwarning)rrrsinstalled_distupgrade_prompts r'pip_self_version_checkrs-..??FFN  """" '/w'8999&**8+<+@AA$,$, +Wg  N!t^FD>BBBBB"!s6 AA)Ar-rr"r<loggingoptparseos.pathr8rE dataclassesrtypingrrrrpip._vendor.packaging.versionrr rpip._vendor.rich.consoler pip._vendor.rich.markupr pip._vendor.rich.textr pip._internal.index.collectorr "pip._internal.index.package_finderrpip._internal.metadatar$pip._internal.models.selection_prefsrpip._internal.network.sessionrpip._internal.utils.compatrpip._internal.utils.entrypointsrrpip._internal.utils.filesystemrrrpip._internal.utils.miscrrr timedeltarK getLoggerr[rr^r(r/r1rbboolrqValuesrrrr`r)r'rs  !!!!!!000000000000111111@@@@@@************&&&&&&777777<<<<<<::::::EEEEEE444444......XWWWWWWWWW """  8 $ $SS K3K8#4KKKKIIIIIIIIX          08c8d8888' '"*/' c]''''8 #  !Xc]!23  m DCJCCTCCCCCCr)