σ Ύ[/\c@@s½ddlmZddlmZddlmZmZddlZddlZ ddl Zddl Zddl Z ddl Z e jdƒZdefd„ƒYZdefd „ƒYZdS( i(tabsolute_import(tunicode_literals(t_tucdNudnft RepoReadercB@s,eZd„Zd„Zd„Zd„ZRS(cC@s||_||_dS(N(tconftopts(tselfRR((s1/usr/lib/python2.7/site-packages/dnf/conf/read.pyt__init__#s cc@sx"|j|jjƒD] }|VqWxqd„|jjDƒD]Y}y#x|j|ƒD] }|VqUWWq<tjjk r”tjt dƒ|ƒq<Xq<WdS(Ncs@s5|]+}ttjd|ƒƒD] }|Vq qdS(u %s/*.repoN(tsortedtglob(t.0treposdirtrepofn((s1/usr/lib/python2.7/site-packages/dnf/conf/read.pys -su'Warning: failed loading '%s', skipping.( t _get_reposRtconfig_file_pathR tdnft exceptionst ConfigErrortloggertwarningR(RtrR ((s1/usr/lib/python2.7/site-packages/dnf/conf/read.pyt__iter__'s  cC@sρtjj||jƒ}y |j|||tjjƒWn;tk ru}td||fƒ}tjj |ƒ‚nX|j dƒ}|j ƒtjj krΌtdƒ}t j||ƒnt|jƒ|_|jj|jjƒ||_|S(u)Build a repository using the parsed data.u)Repository '%s': Error parsing config: %sunameu;Repository '%s' is missing name in configuration, using id.(RtrepotRepoRt _populatetPRIO_REPOCONFIGt ValueErrorRRRt _get_optiont _get_priorityt PRIO_DEFAULTRRRtnamet_substitutionstupdatet substitutionstcfg(Rtparsertid_R Rtetmsgtrepo_name_object((s1/usr/lib/python2.7/site-packages/dnf/conf/read.pyt _build_repo6s   cc@sv|jj}tjjƒ}|j|ƒy|j|ƒWnTtk rp}tjj t dƒ||fƒ‚n t k r}t j |ƒnXxί|jƒD]Ρ}|dkr΅qntjj|ƒ}|dk rωt j t dƒ||||ƒqny|j|t|ƒ|ƒ}Wn5tjjtjj fk rO}t j |ƒqn X||_|j|jƒ|VqWdS(u4Parse and yield all repositories from a config file.uParsing file "%s" failed: %sumainu!Bad id for repo: %s, byte = %s %dN(RR"tlibdnft ConfigParsertsetSubstitutionstreadt RuntimeErrorRRRRtIOErrorRRtgetDataRtrepo_id_invalidtNoneR)Rt RepoErrortrepofilet_configure_from_optionsR(RR tsubstsR$R&tsectiontinvalidtthisrepo((s1/usr/lib/python2.7/site-packages/dnf/conf/read.pyRKs2  %  !  (t__name__t __module__RRR)R(((s1/usr/lib/python2.7/site-packages/dnf/conf/read.pyR"s   t ModuleReadercB@s/eZdd„Zd„Zd„Zd„ZRS(umodulecC@s||_||_dS(N(tconf_dirt conf_suffix(Rt module_dirR>((s1/usr/lib/python2.7/site-packages/dnf/conf/read.pyRss cc@svxottjdj|j|jƒƒƒD]F}y#x|j|ƒD] }|VqAWWq(tjjk rm‚q(Xq(WdS(Nu{}/*.{}( R R tformatR=R>t_get_module_configsRRR(Rt module_patht module_conf((s1/usr/lib/python2.7/site-packages/dnf/conf/read.pyRws . c C@sΜtjjd|d|ƒ}y4x-|jƒ|D]}|j||ƒ}| sZ|dkrcd }nt||d ƒ}|rξy |d k rš|j|ƒnWqJtjj k rκ}t j t dƒt |ƒt |ƒt |ƒ|jƒqJXq/|dkrt||ƒrt|||ƒq/t j t dƒt |ƒt |ƒt |ƒƒq/WWn;tk rŒ}t d||fƒ} tjj | ƒ‚nX||_|jjƒ rΘ|jjƒrΘ|jjdƒn|S( u%Build a module using the parsed data.R7R$uNoneu,Unknown configuration value: %s=%s in %s; %suarchu+Unknown configuration option: %s = %s in %su%Module '%s': Error parsing config: %suenabledN(RRt ModuleConfR0tgetSubstitutedValueR2tgetattrt_setRRRtdebugRRt raw_errorthasattrtsetattrRt_cfgtstatet_gettenabled( RR$R%RBtmoduleRtvaluetoptR&R'((s1/usr/lib/python2.7/site-packages/dnf/conf/read.pyt _build_modules6   # ' cc@sώtjjƒ}y|j|ƒWnItjjjtjjjfk rk}t|ƒ}tjj |ƒ‚nXx‹|j ƒj ƒD]w}|dkr—qny|j |||ƒ}Wn5tjj tjj fk rη}tj|ƒqn X||_|VqWdS(u6Parse and yield all module configs from a config file.umainN(R*RR+R-t ParsingErrort CantOpenFiletstrRRRR0tkeysRSR3RRt config_file(RRBR$R&R'R7RP((s1/usr/lib/python2.7/site-packages/dnf/conf/read.pyRA§s '  !  (R:R;RRRSRA(((s1/usr/lib/python2.7/site-packages/dnf/conf/read.pyR<rs  &(t __future__RRtdnf.i18nRRtdnf.confRt libdnf.confR*tdnf.exceptionstdnf.repoR tloggingt getLoggerRtobjectRR<(((s1/usr/lib/python2.7/site-packages/dnf/conf/read.pyts      P