File: //proc/2863166/root/usr/lib/python3.9/site-packages/dnf/__pycache__/util.cpython-39.opt-1.pyc
a
�!cP � @ s~ d dl mZ d dl mZ d dl mZ ddlmZmZ d dlmZm Z d dl
Z
d dlZd dlZd dl
Zd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZe�d�Ze
� � j!d kr�e
� � j!ndZ"e"�#� Z$d
d� Z%d`dd
�Z&dadd�Z'dd� Z(dd� Z)dd� Z*dd� Z+dd� Z,dd� Z-dd� Z.dd � Z/d!d"� Z0d#d$� Z1d%d&� Z2d'd(� Z3d)d*� Z4d+d,� Z5d-d.� Z6d/d0� Z7d1d2� Z8d3d4� Z9d5d6� Z:d7d8� Z;d9d:� Z<d;d<� Z=d=d>� Z>d?d@� Z?dAdB� Z@dCdD� ZAdbdFdG�ZBdHdIejCfdJdK�ZDdLdM� ZEdNdO� ZFdPdQ� ZGdRdS� ZHG dTdU� dUeI�ZJG dVdW� dWeK�ZLG dXdY� dYeM�ZNdZd[� ZOd\d]� ZPd^d_� ZQdS )c� )�print_function)�absolute_import)�unicode_literals� )�PY3�
basestring)�_�ucdN�dnfZyumc C s� t | dg � t | dg � t | dg � t� }|D ]�}||v r<q.|�|� tjj�|�d }|�d�rp| j�|� q.|r�|dv r�| j�|� q.|� d�r�| j
�|dd � � q.| j�|� q.d S )
a�
Categorize :param values list into packages, groups and filenames
:param namespace: argparse.Namespace, where specs will be stored
:param values: list of specs, whether packages ('foo') or groups/modules ('@bar')
or filenames ('*.rmp', 'http://*', ...)
To access packages use: specs.pkg_specs,
to access groups use: specs.grp_specs,
to access filenames use: specs.filenames
� filenames� grp_specs� pkg_specsr z.rpm)�http�ftp�file�https�@r N)�setattr�set�addr
�pycomp�urlparse�endswithr �append�
startswithr r
)� namespace�valuesZtmp_set�valueZschemes� r �,/usr/lib/python3.9/site-packages/dnf/util.py�_parse_specs7 s
r c
C s� |d u rt j�� }t j�| ||�}t|jg�}|�d|� |�� g}zt jj
�t j�|�d� W nD t
y� } z,|jr�tt|���t�t|�� W Y d }~n
d }~0 0 |jS )Nr T)r
�callbackZNullDownloadProgress�repoZRemoteRPMPayload�sumZ
download_size�startZ_librepo_target�libdnfZ
PackageTargetZdownloadPackagesZVectorPPackageTarget�RuntimeError�strict�IOError�str�logger�errorZ
local_path)�url�confZprogressZploadZest_remote_size�targets�er r r �_urlopen_progressW s
$r0 �w+bc
K s� t rd|vr|�dd� tj|fi |��}z<|rD|j�| |�� � n tjj �
|rV|jnd| |�� � W n0 ty� } zt
t|���W Y d}~n
d}~0 0 |�d� |S )z|
Open the specified absolute url, return a file object
which respects proxy setting even for non-repo downloads
�b�encodingzutf-8Nr )r �
setdefault�tempfileZNamedTemporaryFileZ_repoZdownloadUrl�filenor% r"