<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
ft`                 @   s~   d dl mZ d dl mZ d dlmZmZ d dlZd dlZ	d dl
Zd dlZd dlZd dlZd dlZejdZG dd deZdS )    )absolute_import)unicode_literals)_ucdNdnfc               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )

RepoReaderc             C   s   || _ || _d S )N)confopts)selfr   r	    r   /usr/lib/python3.6/read.py__init__$   s    zRepoReader.__init__c             c   s   x| j | jjD ]
}|V  qW g }x8| jjD ],}x&tjtjj|dD ]}|j| qFW q,W |j	dd d xT|D ]L}yx| j |D ]
}|V  qW W qr t
jjk
r   tjtd| Y qrX qrW d S )Nz*.repoc             S   s   t jj| d d S )N   )r   utilZ
split_path)xr   r   r   <lambda>5   s    z%RepoReader.__iter__.<locals>.<lambda>)keyz'Warning: failed loading '%s', skipping.)
_get_reposr   Zconfig_file_pathreposdirglobospathjoinappendsortr   
exceptionsConfigErrorloggerwarningr   )r
   rZrepo_configsr   r   repofnr   r   r   __iter__(   s    


zRepoReader.__iter__c       	      C   s^  t jjj|| jj}tjj|}|dk	rl||krJtdj	|||| |}ntdj	||| |}tj
j|tjj|| j}y|j|||tjj W nZ tk
r } z>||krtdj	|||}ntdj	||}tj
j|W Y dd}~X nX |jdtjjkr8||kr tdj	||}ntdj	|}tj| t|j|_|jj| jj ||_|S )	z)Build a repository using the parsed data.Nz&Bad id for repo: {} ({}), byte = {} {}z!Bad id for repo: {}, byte = {} {}z.Repository '{}' ({}): Error parsing config: {}z)Repository '{}': Error parsing config: {}namez@Repository '{}' ({}) is missing name in configuration, using id.z;Repository '{}' is missing name in configuration, using id.)libdnfr   ConfigParserZ
substitutesubstitutionsr   repoZrepo_id_invalidr   formatr   r   ZRepoZ	_populateZPRIO_REPOCONFIG
ValueErrorZ_get_priorityZPRIO_DEFAULTr   r   r   r#   Z_substitutionsupdateZcfg)	r
   parserZid_r!   Zsubstituted_idZinvalidmsgr'   er   r   r   _build_repo?   s8    




zRepoReader._build_repoc             c   s  | j j}tj j }|j| y|j| W nd tk
rd } ztjj	t
dj||W Y dd}~X n, tk
r } ztj| W Y dd}~X nX x|j D ]x}|dkrqy| j|t||}W n: tjjtjj	fk
r } ztj| wW Y dd}~X nX ||_|j| j |V  qW dS )z4Parse and yield all repositories from a config file.zParsing file "{}" failed: {}Nmain)r   r&   r$   r%   ZsetSubstitutionsreadRuntimeErrorr   r   r   r   r(   IOErrorr   r   ZgetDatar.   r   Z	RepoErrorZrepofileZ_configure_from_optionsr	   )r
   r!   Zsubstsr+   r-   ZsectionZthisrepor   r   r   r   h   s(    

(
zRepoReader._get_reposN)__name__
__module____qualname__r   r"   r.   r   r   r   r   r   r   #   s   )r   )Z
__future__r   r   Zdnf.i18nr   r   Zdnf.confr   Zlibdnf.confr$   Zdnf.exceptionsZdnf.repor   Zloggingr   Z	getLoggerr   objectr   r   r   r   r   <module>   s   
