+
     [;i
  c                   s.    ^ RI Ht ^ RIt ! R R4      tR# )i    )absolute_importNc                   sX   a  ] tR t^t o RtRtR tR tR tR t	R t
R tR	 tR
 tRtV tR# )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.
Nc                s    Wn         R # Npackage_managers)selfZ	instancess   &*D/usr/lib/python3.14/site-packages/tracer/resources/PackageManager.py__init__ZPackageManager.__init__%   s    #    c                s0    \        R  V P                  4      # )c                 s.    V P                   P                  # r   )Z	__class____name__)Zx   &r   Z<lambda>Z&PackageManager.names.<locals>.<lambda>)   s    q{{++r   )Zmapr   )r   r
   r   namesZPackageManager.names(   s    	+T-B-B	CCr   c                s    ^ RI Hp V P                   Uu. uF  q3P                  V4      NK  	  ppV! \        P
                  P                  V4      4      # u upi )z
Returns list of packages which were modified between unix_time and present
Packages in list should be dictionaries with keys {"name", "modified"}
)PackagesCollection)Ztracer.resources.collectionsr   r   packages_newer_than	itertoolsZchainZfrom_iterable)r   Z	unix_timer   ZpZpackages_listss   &&   r   r   Z"PackageManager.packages_newer_than+   sL     >>B>S>ST>S)))4>S.T	IOO99.I	JJ Us   Ac                F    V P                   ^ ,          P                  V4      # )z)Returns list of files provided by package)r   package_files)r   pkg_name   &&r   r   ZPackageManager.package_files5   s    			q	!	/	/	99r   c                r   )zFFrom database load informations about given package and set them to it)r   load_package_info)r   Zpackager   r   r   Z PackageManager.load_package_info9   s    			q	!	3	3G	<<r   c                r   )z8Returns name of package which provides given application)r   provided_by)r   Zappr   r   r   ZPackageManager.provided_by=   s    			q	!	-	-c	22r   c                F    V P                   ^ ,          P                  W4      # )z4Find a package by name and some other input criteria)r   find_package)r   r   Zsearch   &&&r   r   ZPackageManager.find_packageA   s    			q	!	.	.x	@@r   c                r   )z
Compares two packages by their version information
Returns:
0 if they are equal
1 if package1 > package2
-1 if package2 > package1
)r   compare_packages)r   Zpackage1Zpackage2r   r   r   ZPackageManager.compare_packagesE   s      
		q	!	2	28	FFr   r   )r	   Z
__module__Z__qualname__Z__firstlineno__Z__doc__r   r   r   r   r   r   r   r   r   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r   r      sD      $DK:=3AG Gr   r   )Z
__future__r    r   r   ) r   r   <module>r      s   ( ' 4G 4Gr   