a "e@sGdddeZdS)c@sPeZdZddZddZddZddZd d Zd d Zd dZ e ddZ dS)IPackageManagercKstdS)z9This class is 'interface' so you can't create an instanceNNotImplementedError)selfkwargsrJ/usr/lib/python3.9/site-packages/tracer/packageManagers/ipackageManager.py__init__szIPackageManager.__init__cCstdS)z Returns list of packages which were modified between unix_time and present Packages in list should be dictionaries with keys {"name", "modified"} Nr)rZ unix_timerrrpackages_newer_thansz#IPackageManager.packages_newer_thancCstdS)z)Returns list of files provided by packageNr)rpkg_namerrr package_files!szIPackageManager.package_filescCstdS)zFFrom database load informations about given package and set them to itNr)rpackagerrrload_package_info%sz!IPackageManager.load_package_infocCstdS)z8Returns name of package which provides given applicationNr)rZapprrr provided_by)szIPackageManager.provided_bycCstdS)z4Find a package by name and some other input criteriaNr)rr searchrrr find_package-szIPackageManager.find_packagecCstdS)z Compares two packages by their version information Returns: 0 if they are equal 1 if package1 > package2 -1 if package2 > package1 Nr)rZpackage1Zpackage2rrrcompare_packages1sz IPackageManager.compare_packagescCs@z(|d|d}|d|d}Wnty:Yn0|S)N.-)indexrindex ValueError)r rrr_pkg_name_without_version;s z)IPackageManager._pkg_name_without_versionN) __name__ __module__ __qualname__rr r r rrr staticmethodrrrrrrs rN)objectrrrrr