o
    x[h=  ã                   @   sH   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„ deƒZ
dS )é    )ÚABCÚabstractmethod)ÚIterableÚList)Úhelpersc                   @   sx   e Zd ZU eed< dejfdd„Zedejdd fdd„ƒZ	e
defdd	„ƒZe
d
dœdd„ƒZe
dedefdd„ƒZdS )ÚPackageManagerÚnameÚrunnerc                 K   s
   || _ d S ©N)r	   )Úselfr	   Úkwargs© r   úV/usr/lib/python3/dist-packages/cloudinit/distros/package_management/package_manager.pyÚ__init__   s   
zPackageManager.__init__Úreturnc                 C   s   | |ƒS r
   r   )Úclsr	   Úcfgr   r   r   Úfrom_config   s   zPackageManager.from_configc                 C   ó   dS )z1Return if package manager is installed on system.Nr   )r   r   r   r   Ú	available   ó    zPackageManager.availableF)Úforcec                C   s   d S r
   r   )r   r   r   r   r   Úupdate_package_sources   s   z%PackageManager.update_package_sourcesÚpkglistc                 C   r   )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   r   r   r   Úinstall_packages   r   zPackageManager.install_packagesN)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__r   ÚRunnersr   Úclassmethodr   r   Úboolr   r   r   ÚUninstalledPackagesr   r   r   r   r   r   
   s   
 r   N)Úabcr   r   Útypingr   r   Ú	cloudinitr   r   r#   r   r   r   r   r   Ú<module>   s
   