
    x[h=                     P    d dl mZmZ d dlmZmZ d dlmZ ee   Z	 G d de      Z
y)    )ABCabstractmethod)IterableList)helpersc                       e Zd ZU eed<   dej                  fdZedej                  dd fd       Z	e
defd       Ze
ddd	       Ze
d
edefd       Zy)PackageManagernamerunnerc                     || _         y N)r   )selfr   kwargss      V/usr/lib/python3/dist-packages/cloudinit/distros/package_management/package_manager.py__init__zPackageManager.__init__   s	        returnc                      | |      S r    )clsr   cfgs      r   from_configzPackageManager.from_config   s    6{r   c                      y)z1Return if package manager is installed on system.Nr   )r   s    r   	availablezPackageManager.available       r   F)forcec                     y r   r   )r   r   s     r   update_package_sourcesz%PackageManager.update_package_sources   s    69r   pkglistc                      y)a:  Install the given packages.

        Return a list of packages that failed to install.
        Overriding classes should NOT raise an exception if packages failed
        to install. Instead, log the error and return what couldn't be
        installed so other installed package managers may be attempted.
        Nr   )r   r   s     r   install_packageszPackageManager.install_packages   r   r   N)__name__
__module____qualname__str__annotations__r   Runnersr   classmethodr   r   boolr   r   r   UninstalledPackagesr!   r   r   r   r	   r	   
   s    
Iw   :J   @4 @ @ .39 9 5H  r   r	   N)abcr   r   typingr   r   	cloudinitr   r%   r*   r	   r   r   r   <module>r.      s$    # ! 3i S r   