a 2hU @sjddlZddlZddlZddlmZddlmZddlmZe dZ e Z e dZGdddeZdS) N) ConfigParser)_)ReadOnlyVariableErrorz^DNF_VAR_[A-Za-z0-9_]+$ZdnfcsFeZdZfddZddZfddZeddZd d d ZZ S) Substitutionscstt||dSN)superr__init___update_from_env)self __class__:/usr/lib/python3.9/site-packages/dnf/conf/substitutions.pyr%szSubstitutions.__init__cCsXddtddD}tjD]4\}}t|rB|||dd<q||vr|||<qdS)NcSsg|] }d|qS)zDNF%dr ).0Znumr r r *z2Substitutions._update_from_env..r )rangeosenvironitemsENVIRONMENT_VARS_REmatch)r Z numericvarskeyvalr r rr )s  zSubstitutions._update_from_envcsft|rtd|d|dtt|j}||||dkrb|rbt|\}}|d||d|dS)Nz Variable "z" is read-only)Z variable_nameZ releaseverreleasever_majorreleasever_minor)r is_read_onlyrr __setitem__rZsplitReleasever)r rvaluesetitemrrr r rr1s     zSubstitutions.__setitem__cCs|tvSr)READ_ONLY_VARIABLES)rr r rr=szSubstitutions.is_read_onlyz/etc/yum/vars/z/etc/dnf/vars/c Cs(|D]}g}z"tj||d}t|}WntyFYqYn0|D]}tj||}d}tj|rzPt|} | }Wdn1s0Y|r|ddkr|dd}WnNtt t fy} z.t t d|| WYd} ~ qLWYd} ~ n d} ~ 00|durL|||<qLqdS)N/ z2Error when parsing a variable from file '{0}': {1})rpathjoinlstriplistdirOSErrorisfileopenreadlineIOErrorUnicodeDecodeErrorloggerZwarningrformat) r Z installrootZvarsdirZ vars_pathZfsvarsZ dir_fsvarsZfsvarfilepathrfper r rupdate_from_etcBs*    &"zSubstitutions.update_from_etc)r#) __name__ __module__ __qualname__rr r staticmethodrr6 __classcell__r r r rr"s    r)ZloggingrreZ libdnf.confrZdnf.i18nrZdnf.exceptionsrcompiler frozensetr"Z getLoggerr1dictrr r r rs