a "e @s&ddlmZddlZGdddZdS))absolute_importNc@sTeZdZdZdZddZddZddZd d Zd d Z d dZ ddZ ddZ dS)PackageManagerz Wrapper class for package managers. Provides their API and allows to use multiple package managers at once. In actions where it makes no sense to merge results from more package managers, result from first manager is used. NcGs ||_dSN)package_managers)selfZ instancesrC/usr/lib/python3.9/site-packages/tracer/resources/PackageManager.py__init__%szPackageManager.__init__cCstdd|jS)NcSs|jjSr) __class____name__)xrrr)z&PackageManager.names..)mapr)rrrrnames(szPackageManager.namescs0ddlm}fdd|jD}|tj|S)z Returns list of packages which were modified between unix_time and present Packages in list should be dictionaries with keys {"name", "modified"} r)PackagesCollectioncsg|]}|qSr)packages_newer_than).0p unix_timerr 2rz6PackageManager.packages_newer_than..)Ztracer.resources.collectionsrr itertoolschain from_iterable)rrrZpackages_listsrrrr+s z"PackageManager.packages_newer_thancCs|jd|S)z)Returns list of files provided by packager)r package_files)rpkg_namerrrr5szPackageManager.package_filescCs|jd|S)zFFrom database load informations about given package and set them to itr)rload_package_info)rpackagerrrr9sz PackageManager.load_package_infocCs|jd|S)z8Returns name of package which provides given applicationr)r provided_by)rZapprrrr=szPackageManager.provided_bycCs|jd||S)z4Find a package by name and some other input criteriar)r find_package)rrsearchrrrr AszPackageManager.find_packagecCs|jd||S)z Compares two packages by their version information Returns: 0 if they are equal 1 if package1 > package2 -1 if package2 > package1 r)rcompare_packages)rZpackage1Zpackage2rrrr"EszPackageManager.compare_packages) r __module__ __qualname____doc__rr rrrrrr r"rrrrrs r)Z __future__rrrrrrrs