o 7]h@s ddlZddlZddlZddlZddlZddlZddlZddlm Z m Z ddl m Z ddlmZddlmZddlmZddlmZddlmZdd lmZmZmZdd lmZd Zee Z!d e"d e"fddZ#GdddZ$de"d e%fddZ&dedej'd dfddZ(dS)N)AnyDict)parse) LinkCollector) PackageFinder)get_default_environment)SelectionPreferences) PipSession)adjacent_tmp_filecheck_path_ownerreplace) ensure_dirz%Y-%m-%dT%H:%M:%SZkeyreturncCs|}t|}|SN)encodehashlibsha224 hexdigest)r key_bytesnamerC/usr/lib/python3/dist-packages/pip/_internal/self_outdated_check.py_get_statefile_namesrc@sHeZdZdeddfddZedefddZded ejddfd d ZdS) SelfCheckState cache_dirrNc Csi|_d|_|rDtj|dt|j|_z"t|jdd}t ||_WdWdS1s/wYWdSt t t fyCYdSwdS)N selfcheckzutf-8)encoding) statestatefile_pathospathjoinrropenjsonloadOSError ValueErrorKeyError)selfr statefilerrr__init__!s &zSelfCheckState.__init__cCstjSr)sysprefix)r)rrrr2szSelfCheckState.key pypi_version current_timecCs|jsdSttj|jsdSttj|j|j|t|d}t j |ddd}t |j}| | Wdn1sBwYz t|j|jWdSty[YdSw)N)r last_checkr.T),:) sort_keys separators)rr r r!dirnamer rstrftimeSELFCHECK_DATE_FMTr$dumpsr writerr rr&)r)r.r/rtextfrrrsave6s$  zSelfCheckState.save) __name__ __module__ __qualname__strr+propertyrdatetimer<rrrrr s rpkgcCst|}|duod|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)rCdistrrrwas_installed_by_pipYs rHsessionoptionscCsTtd}|s dS|j}d}zt|jd}tj}d|jvrs,        9