Re{@sddlmZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z ddlmZddlmZddlmZddlmZmZmZdd lmZmZmZdd lmZdd lmZerDddl Z dd l!m"Z"m#Z#m$Z$m%Z%dd l&m'Z'dZ(ej)e*Z+ddZ,Gddde-Z.ddZ/ddZ0dS))absolute_importN)version) ensure_binary) LinkCollector) PackageFinder)SelectionPreferences)adjacent_tmp_filecheck_path_ownerreplace) ensure_dirget_distributionget_installed_version) get_installer)MYPY_CHECK_RUNNING)AnyDictTextUnion) PipSessionz%Y-%m-%dT%H:%M:%SZcCs%t|}tj|j}|S)N)rhashlibsha224 hexdigest)key key_bytesnamer/builddir/build/BUILDROOT/alt-python35-pip-20.2.4-5.el8.x86_64/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/self_outdated_check.py_get_statefile_name*s rc@s:eZdZddZeddZddZdS)SelfCheckStatecCsi|_d|_|rtjj|dt|j|_y/t|j}tj ||_WdQRXWnt t t fk rYnXdS)N selfcheck) statestatefile_pathospathjoinrropenjsonloadIOError ValueErrorKeyError)self cache_dir statefilerrr__init__2s   zSelfCheckState.__init__cCstjS)N)sysprefix)r+rrrrDszSelfCheckState.keycCs|js dSttjj|js,dSttjj|jd|jd|jtd|i}t j |dddd }t |j}|j t |WdQRXyt|j|jWntk rYnXdS) Nr last_check pypi_version sort_keysT separators,:)r5r6)r!r r"r#dirnamer rstrftimeSELFCHECK_DATE_FMTr&dumpsrwriterr rOSError)r+r2 current_timer textfrrrsaveIs    zSelfCheckState.saveN)__name__ __module__ __qualname__r.propertyrr@rrrrr1s  rcCs&t|}|sdSdt|kS)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. Fpip)r r)pkgdistrrrwas_installed_by_pipms rHc Cstd}|sdStj|}d}ytd|j}tjj}d|jkrd|jkrtjj|jdt }||j dkr|jd}|dkrAt j |d |d d }t d d dd } tj d|d| } | jdj} | dkr"dSt| j}|j||tj|} || kow|j| jkowtd} | sdSdjtj}tjd|||Wn%tk rtjddd 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. rENr,r1r2<optionssuppress_no_indexT allow_yankedFallow_all_prereleaseslink_collectorselection_prefsz {} -m pipzYou are using pip version %s; however, version %s is available. You should consider upgrading via the '%s install --upgrade pip' command.z5There was an error checking the latest version of pipexc_infoi`'i: )r packaging_versionparserr,datetimeutcnowr strptimer9 total_secondsrcreaterrfind_best_candidatebest_candidatestrrr@ base_versionrHformatr/ executableloggerwarning Exceptiondebug)sessionrLinstalled_version pip_versionr2r r=r1rPrQfinderr\remote_versionlocal_version_is_olderpip_cmdrrrpip_self_version_checkzsX              rl)1 __future__rrVrr&loggingos.pathr"r/Zpip._vendor.packagingrrTZpip._vendor.sixrpip._internal.index.collectorr"pip._internal.index.package_finderr$pip._internal.models.selection_prefsrpip._internal.utils.filesystemrr r pip._internal.utils.miscr r r pip._internal.utils.packagingrpip._internal.utils.typingroptparsetypingrrrrpip._internal.network.sessionrr9 getLoggerrArarobjectrrHrlrrrrs2       " <