File: //usr/lib/python3/dist-packages/cloudinit/distros/package_management/__pycache__/apt.cpython-38.pyc
U
Ӈg� � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZmZm Z m
Z
mZmZm
Z
d dlmZmZmZ d dlmZmZ d dlmZmZ e�e�ZdZddd d
gZdZee e e d�d
d�Z G dd� de�Z!dS )� N)�Any�Iterable�List�Mapping�Optional�Sequence�cast)�helpers�subp�util)�PackageManager�UninstalledPackages)�
PER_ALWAYS�PER_INSTANCE)zapt-getz(--option=Dpkg::Options::=--force-confoldz*--option=Dpkg::options::=--force-unsafe-ioz--assume-yesz--quietz/var/lib/dpkg/lock-frontendz/var/lib/dpkg/lockz/var/cache/apt/archives/lockz/var/lib/apt/lists/lock� )�cfg�returnc C s� | sd}dg}n8| � d�}| � d�}t|t�r6|g}nt|t�sHtd��t�|�stt|��� dkr�|r�t� |d �r�t
tt |�S g S dS )a9 Parse the 'apt_get_wrapper' section of cloud-config.
apt_get_wrapper may be defined in cloud-config:
apt_get_wrapper:
enabled: true
command: ["eatmydata"]
The function takes the value of "apt_get_wrapper" and returns the list
of arguments to prefix to the apt-get command.
�autoZ eatmydata�enabled�commandz,apt_wrapper command must be a string or listr N)�get�
isinstance�str�list� TypeErrorr Zis_true�lowerr
�whichr r )r r r � r �J/usr/lib/python3/dist-packages/cloudinit/distros/package_management/apt.py�get_apt_wrapper) s$
���r c s� e Zd ZdZdddd�ejee eee ee d�� fdd�Z e
ejed d�d d
��Ze
d�dd
�Zdd�dd�Zejdd�dd� �Zee d�dd�Zeed�dd�Zd"dd�Zdd� Zefd d!�Z� ZS )#�AptZaptr N��apt_get_wrapper_command�apt_get_command�apt_get_upgrade_subcommand)�runnerr"