a ©!cÝã@s¶ddlmZddlmZddlmZddlZddlZddlm Z ddl Zddl Z ddl Z ddlZddlZe  d¡ZdZej ed¡Zej ed ¡ZGd d „d eƒZGd d „d eƒZdS)é)Úabsolute_import)Úunicode_literals)Ú_N)Ú PRIO_DEFAULTÚdnfz/etc/dnf/aliases.d/z ALIASES.confz USER.confc@s,eZdZdd„Zedd„ƒZedd„ƒZdS)Ú AliasesConfigcCs$||_tj ¡|_|j |j¡dS)N)Ú_pathÚlibdnfÚconfZ ConfigParserÚ_parserÚread)ÚselfÚpath©rú3/usr/lib/python3.9/site-packages/dnf/cli/aliases.pyÚ__init__*s zAliasesConfig.__init__cCsFtj d¡}z| t|j ¡dd¡Wnty<Yn0| ¡S)NTÚmainÚenabled) r r Ú OptionBoolÚsetrr ZgetDataÚ IndexErrorÚgetValue©r Úoptionrrrr/s   zAliasesConfig.enabledcCsRt ¡}d}|j |¡s|S|j |¡D]$}|j ||¡}|s@q(| ¡||<q(|S)NÚaliases)Ú collectionsÚ OrderedDictr Z hasSectionÚoptionsrÚsplit)r ÚresultÚsectionÚkeyÚvaluerrrr8s zAliasesConfig.aliasesN)Ú__name__Ú __module__Ú __qualname__rÚpropertyrrrrrrr)s  rc@sNeZdZdd„Zdd„Zdd„Zdd„Zdd d „Zd d „Zdd„Z dd„Z d S)ÚAliasescCsFt ¡|_d|_d|_| ¡r(d|_dS| ¡|js:dS| ¡dS)NTF)rrrr rÚ_disabled_by_environÚ _load_mainÚ _load_aliases©r rrrrGs zAliases.__init__cCsjtj d¡}z| ttjd¡| ¡WSty<YdSt ydt   t dƒtjd¡YdS0dS)NTZDNF_DISABLE_ALIASESFz@Unexpected value of environment variable: DNF_DISABLE_ALIASES=%s) r r rrrÚosÚenvironrÚKeyErrorÚ RuntimeErrorÚloggerÚwarningrrrrrr(Ws    þzAliases._disabled_by_environc Cs†z t|ƒWStyF}z$tj tdƒ||f¡‚WYd}~nDd}~0ty€}z$tj tdƒ||f¡‚WYd}~n d}~00dS)NzParsing file "%s" failed: %szCannot read file "%s": %s)rr/rÚ exceptionsÚ ConfigErrorrÚIOError)r rÚerrrÚ _load_confds ÿÿzAliases._load_confc CsXz| t¡|_|jj|_Wn8tjjyR}zt t dƒ|¡WYd}~n d}~00dS©NzConfig error: %s) r6ÚALIASES_CONF_PATHr rrr2r3r0Údebugr)r r5rrrr)ns  zAliases._load_mainNc Cs˜|dur.z | ¡}Wntjjy,YdS0|D]`}z"| |¡}|jrV|j |j¡Wq2tjjy}zt  t dƒ|¡WYd}~q2d}~00q2dSr7) Ú_dropin_dir_filenamesrr2r3r6rrÚupdater0r1r)r Ú filenamesÚfilenamer r5rrrr*us  zAliases._load_aliasesc sÄtj t¡tj t¡g‰‡fdd„}g}zLtj t¡s@t t¡tt  t¡ƒD]"}||ƒr\qN|  tj  t|¡¡qNWn4t t fy¨}ztj |¡‚WYd}~n d}~00tj t¡rÀ|  t¡|S)Ncs|ˆvp| d¡p| d¡ S)NÚ.)z.confz.CONF)Ú startswithÚendswith)r=©Zignored_filenamesrrÚ_ignore_filenameŠs ÿ þz7Aliases._dropin_dir_filenames.._ignore_filename)r,rÚbasenamer8ÚALIASES_USER_PATHÚexistsÚALIASES_DROPIN_DIRÚmkdirÚsortedÚlistdirÚappendÚjoinr4ÚOSErrorrr2r3)r rBr<Úfnr5rrArr:ƒs"  ÿ   "  zAliases._dropin_dir_filenamescs:g‰gˆ_‡fdd„‰‡‡‡‡fdd„‰ˆ|ƒ}ˆj|S)NcsLd}|D] }|r |ddkr q*|d7}qˆj|d|…7_||d…S)Nrú-é©Zprefix_options)ÚargsZnumÚargr+rrÚ store_prefix¡s z&Aliases._resolve..store_prefixcsÒˆ|ƒ}|r(|dˆjvs(|d d¡rnz.ˆ ¡|d d¡rT|ddd…|d<WntyhYn0|S|dˆvrŠtj tdƒ¡‚ˆ |d¡ˆˆj|dƒ}|r¾||dd…Sˆ|dd…ƒSdS)Nrú\rOz"Aliases contain infinite recursion) rr?Úpoprrr2ÚErrorrrJ)rQÚsuffixZcurrent_alias_result©r ÚstackrSÚ subresolverrrZ¬s, ÿ þ  ÿz$Aliases._resolve..subresolverP)r rQrWrrXrÚ_resolves  zAliases._resolvec CsR|jrNz| |¡}Wn8tjjyL}zt tdƒ|¡WYd}~n d}~00|S)Nz%s, using original arguments.)rr[rr2rVr0Úerrorr)r rQr5rrrÚresolveÌs &zAliases.resolve)N) r#r$r%rr(r6r)r*r:r[r]rrrrr'Fs   /r')Z __future__rrZdnf.i18nrrZdnf.clirZdnf.conf.configrZdnf.exceptionsZ libdnf.confr Zloggingr,Zos.pathZ getLoggerr0rFrrKr8rDÚobjectrr'rrrrÚs