File: //lib/python3/dist-packages/cloudinit/distros/package_management/__pycache__/apt.cpython-310.pyc
o
x[h� � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZmZm Z m
Z
mZmZm
Z
d dlmZmZmZ d dlmZmZ d dlmZmZ e�e�ZdZg d�ZdZd ee d
e e fdd�Z G d
d� 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--quiet)z/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}n| � d�}| � d�}t|t�r|g}n t|t�s$td��t�|�s:t|��� dkrA|rAt� |d �rAt
tt |�S g S )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.
�auto� eatmydata�enabled�commandz,apt_wrapper command must be a string or listr )�get�
isinstance�str�list� TypeErrorr �is_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�dejdee deee dee f� fd d
�Z e
dejdedd fd
d��Zde
fdd�Zdd�dd�Zejdd�dd� �Zdee fdd�Zdedefdd�Zd$dd�Zd d!� Zefd"d#�Z� ZS )%�Apt�aptr N��apt_get_wrapper_command�apt_get_command�apt_get_upgrade_subcommand�runnerr% r&