ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     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   
