a "eJ ã@sxddlmZddlmZe ¡dvrtddlZddlmZddlm Z ddl m Z dd l m Z ddlZGd d „d eƒZdS) é)Úabsolute_import)ÚSystem)ZarchZarcharmNé)ÚIPackageManager)ÚPackage)ÚPackagesCollection)Ú Applicationsc@sXeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z e dd„ƒZ dd„Z dS)ÚAlpmcOs$||_t dd¡|_|j ¡|_dS)Nú/z/var/lib/pacman)ZoptsÚpyalpmZHandleZhandleZ get_localdbÚdb)ÚselfÚargsÚkwargs©rú?/usr/lib/python3.9/site-packages/tracer/packageManagers/alpm.pyÚ__init__ sz Alpm.__init__cCs6tƒ}|jjD]"}|j|kr| t|j|jƒ¡q|S)zR Returns list of packages which were modified between unix_time and present )rr ÚpkgcacheÚ installdateÚappendrÚname)r Z unix_timeZnew_pkgsÚpkgrrrÚpackages_newer_than%s   zAlpm.packages_newer_thancCs$|j |¡}|sgSdd„|jDƒS)z1 Returns list of files provided by package cSsg|]}d|d‘qS)r rr©Ú.0ÚfrrrÚ 8óz&Alpm.package_files..)r Úget_pkgÚfiles)r Úpkg_namerrrrÚ package_files0s zAlpm.package_filescCs2|sdS|j |j¡}|sdS|j|_|j|_dS)zN From database load informations about given package and set them to it N)r rrZdescÚ descriptionrZmodified)r ÚpackagerrrrÚload_package_info:szAlpm.load_package_infocCs|jd}| |j¡S)z@ Returns name of package which provides given application r)Z instancesÚ_file_provided_byZexe)r ZappZprocessrrrÚ provided_byIs zAlpm.provided_bycCs*|j |¡}|r&t |j|¡dkr&|SdS)z< Find a package by name and some other input criteria rN)r rr ÚvercmpÚversion)r r r(rrrrÚ find_packageQs zAlpm.find_packagecCst |j|j¡S)zX vercmp returns: < 0 if ver1 < ver2 0 if ver1 == ver2 > 0 if ver1 > ver2 )r r'r()r Zpackage1Zpackage2rrrÚcompare_packagesYszAlpm.compare_packagescCs0t ||¡}|t|ƒkr(|||kr(dSdSdS)z5 Searches a sorted list, returns True if found TFN)ÚbisectZ bisect_leftÚlen)ÚlÚitemÚirrrÚ _bsearch_listbs zAlpm._bsearch_listcCsH|jjD]:}dd„|jDƒ}| ||dd…¡rt|j|jƒSqdS)z9 Returns name of package which provides given file cSsg|] }|d‘qS)rrrrrrrsrz*Alpm._file_provided_by..rN)r rrr0rrr)r Ú file_namerrrrrr%ms  zAlpm._file_provided_byN) Ú__name__Ú __module__Ú __qualname__rrr!r$r&r)r*Ú staticmethodr0r%rrrrr s    r )Z __future__rZtracer.resources.systemrZ distributionr+ZipackageManagerrZtracer.resources.packagerZtracer.resources.collectionsrZtracer.resources.applicationsrr r rrrrÚs