Edit File: config.cpython-36.pyc
3 �ft`�O������������������@���s<��d�dl�mZ�d�dl�mZ�d�dlmZ�d�dlmZmZ�d�dlm Z m Z �d�dlZd�dlZ d�dlZ d�dlZ d�dlZ d�dlZ d�dlZd�dlZd�dlZd�dlZd�dlZd�dlZejjjZejjjZejjjZejjj Z!ejjj"Z#ejjj$Z%ejjj&Z'ejjj(Z)ejjj*Z+ej,d�Z-G�dd ��d e.�Z/G�d d��de/�Z0G�dd ��d e/�Z1dS�)�����)�absolute_import)�unicode_literals)�misc)�ucd�_)� basestring�urlparseN�dnfc�������������������s~���e�Zd�ZdZddd�Zdd��Z��fdd�Zd d ��Zdd��Zd d��Z dd��Z efdd�Ze fdd�Zdd��Zedd���Z���ZS�)� BaseConfigzlBase class for storing configuration definitions. Subclass when creating your own definitions. Nc�������������C���s���||�j�d<�||�_d�S�)N�_config)�__dict__�_section)�self�config�section�parser��r����/usr/lib/python3.6/config.py�__init__<���s���� zBaseConfig.__init__c�������������C���sz���d|�j�krtdj|�j|���t|�j|�}|d�kr4d�S�y|��j��}W�n �tk rb�}�zd�S�d�}~X�nX�t|t �rvt |�S�|S�)Nr���z!'{}' object has no attribute '{}')r����AttributeError�format� __class__�getattrr����getValue� Exception� isinstance�strr���)r����name�option�valueZexr���r���r����__getattr__@���s���� zBaseConfig.__getattr__c����������������s:���t�|�j|d��}|d�kr(tt|��j||�S�|�j||t��d�S�)N)r���r����superr ����__setattr__� _set_value�PRIO_RUNTIME)r���r���r���r���)r���r���r���r"���N���s����zBaseConfig.__setattr__c���������� ���C���st���g�}|j�d|�j���|�jrjxN|�jj��D�]@}y|jj��}W�n�tk rP���d}Y�nX�|j�d|j|f���q&W�dj|�S�)Nz[%s]��z%s: %s� ) �appendr ���r����optBinds�second�getValueString�RuntimeError�first�join)r����out�optBindr���r���r���r����__str__U���s���� zBaseConfig.__str__c�������������C���s���t�|�j|d��}|d�k S�)N)r���r���)r���r����methodr���r���r����_has_optiona���s����zBaseConfig._has_optionc�������������C���s$���t�|�j|d��}|d�krd�S�|��j��S�)N)r���r���r���)r���r���r1���r���r���r���� _get_valuee���s����zBaseConfig._get_valuec�������������C���s$���t�|�j|d��}|d�krd�S�|��j��S�)N)r���r���ZgetPriority)r���r���r1���r���r���r���� _get_priorityk���s����zBaseConfig._get_priorityc�������������C���s��t�|�j|d�}|dkr&td|�d���|��}|dkr\y|j||��W�n�tk rX���Y�nX�n�yrt|t�srt|t�r�|j|tjj |���nDt|tjj �s�t|tjj�r�t|t�r�|j|t |���n|j||��W�nH�tk �r�}�z*tjjtd�|t|�f�t|�d��W�Y�dd}~X�nX�dS�)zSSet option's value if priority is equal or higher than current priority.NzOption "z" does not existszError parsing '%s': %s)� raw_error)r���r���r����setr����list�tuple�libdnf�conf�VectorStringZ OptionBoolZOptionChildBool�int�boolr+���r ���� exceptions�ConfigErrorr���r���)r���r���r����priorityr1���r����er���r���r���r#���q���s*���� zBaseConfig._set_valuec�������������C���s����|j�|�r�x�|j|�D�]�}|j||�}|�s4|dkr8d}t|�j|�r�y|�jj��j|�j||��W�q��tk r��}�z,t j td�t|�t|�t|�t |���W�Y�dd}~X�q�X�q|dkr�t|�|�r�t|�||��qt jtd�t|�t|�t|���qW�dS�)z+Set option values from an INI file section.�Noner%���z,Invalid configuration value: %s=%s in %s; %sN�archz+Unknown configuration option: %s = %s in %s)� hasSectionZoptionsZgetSubstitutedValue�hasattrr���r(����at� newStringr+����logger�errorr���r���r����setattr�debug)r���r���r����filenamer@���r���r���rA���r���r���r���� _populate����s ���� 0zBaseConfig._populatec�������������C���sh���d|�j��g}|�jrZxF|�jj��D�]8}y|jd|j|jj��f���W�q�tk rT���Y�qX�qW�dj|�d�S�)z]Return a string representing the values of all the configuration options. z[%s]z%s = %sr&���) r ���r���r(���r'���r,���r)���r*���r+���r-���)r����outputr/���r���r���r����dump����s���� zBaseConfig.dumpc�������������C���s����t�jj��}|j|���|j|�sHx(|j��D�]}t�jjj||�|kr(|}q(W�x6|j��D�]*\}}t|t �rndj |�}|j|||��qRW�|j|�d��dS�)z� filename - name of config file (.conf or .repo) section_id - id of modified section (e.g. main, fedora, updates) substitutions - instance of base.conf.substitutions modify - dict of modified options � FN) r9���r:����ConfigParser�readrD���ZgetData� substitute�itemsr���r7���r-���ZsetValue�write)rL���Z section_id� substitutionsZmodifyr���Zsectr���r���r���r���r����write_raw_configfile����s���� zBaseConfig.write_raw_configfile)NNN)�__name__� __module__�__qualname__�__doc__r���r ���r"���r0���r2���r3���r4���r$���r#����PRIO_DEFAULTrM���rO����staticmethodrW���� __classcell__r���r���)r���r���r ���5���s��� r ���c�������������������s����e�Zd�ZdZd%��fdd� Zdd��Zedd ���Zd d��Zdd ��Z dd��Z dd��Zdd��Zdd��Z dd��Zedd���Zejdd���Zedd���Zejdd���Zedd���Zejd d���Zdefd!d"�Zed#d$���Z���ZS�)&�MainConfz?Configuration option definitions for dnf.conf's [main] section.�mainNc����������������s��t�jj��}tt|��j|||��|�jdtjj gt ��|�jdtjjgt ��tjjj ��|�_tj��|�_|�jj��jt tjj��tjj��r�tjj}d}nVytj���}}W�nD�ttfk r��}�z$td�jt|��}tjj|��W�Y�d�d�}~X�nX�|�jj ��jt |��|�jj!��jt |��g�|�_"d�S�)NZ pluginpathZpluginconfpathz/var/logzCould not set cachedir: {})#r9���r:���� ConfigMainr!���r_���r���r#���r ����constZ PLUGINPATHr\���ZPLUGINCONFPATHrV���Z Substitutions�hawkeyZdetect_archrC���r���Zsystem_cachedirr6���ZSYSTEM_CACHEDIR�utilZ am_i_rootr���ZgetCacheDir�IOError�OSErrorr���r���r���r>����Error�cachedir�logdir� tempfiles)r���r���r���r���rh���ri���rA����msg)r���r���r���r�������s$���� zMainConf.__init__c�������������C���s���x|�j�D�]}tj|��qW�d�S�)N)rj����os�unlink)r���� file_namer���r���r����__del__����s����zMainConf.__del__c�������������C���sL���d}x$|�j�d�D�]}tjj|�r|}P�qW�|sH|�j�d�d�}tjj|��|S�)zReturns the value of reposdirNZreposdirr���)r3���rl����path�existsr ���rd���Z ensure_dir)r���Z myrepodirZrdirr���r���r����get_reposdir����s����zMainConf.get_reposdirc������� ������C���s����|�j�|�}|�j|�}t|t�r�tj|�}|d�dkrF|�j||j|��n�tjj ��}t jdd�\}}|�jj |��zdy|jd||��W�n>�tk r��}�z"tjjtd�j|t|����W�Y�dd}~X�nX�|�j|||��W�dtj|��X�dS�) z� In case the option value is a remote URL, download it to the temporary location and use this temporary file instead. r����filer%���zdnf-downloaded-config-)�prefixNz9Configuration file URL "{}" could not be downloaded: {})rs���r%���)r4���r3���r���r���r���r#���rp���r9���ZrepoZ Downloader�tempfileZmkstemprj���r'���ZdownloadURLr+���r ���r>���r?���r���r���r���rl����close) r����optname�prio�val�locationZ downloaderZtemp_fdZ temp_pathrA���r���r���r����_check_remote_file����s"���� zMainConf._check_remote_filec����������������s�����j�d�����dkr��S��j|�}|tkr,��S��j�|�}t|t�s�t��fdd�|D���r��j|tjj �fdd�|D���|����S�n4t jjt jj ��|jd���r��j|�j|�|����S�dS�)z� Return root used as prefix for option (installroot or "/"). When specified from commandline it returns value from conf.installroot �installroot�/c�������������3���s*���|�]"}t�jjt�jj��|jd����V��qdS�)r}���N)rl���rp���rq���r-����lstrip)�.0�p)r|���r���r���� <genexpr>*��s����z6MainConf._search_inside_installroot.<locals>.<genexpr>c����������������s���g�|�]}��j�|��qS�r���)�_prepend_installroot_path)r���r����)r���r���r���� <listcomp>-��s����z7MainConf._search_inside_installroot.<locals>.<listcomp>)r3���r4����PRIO_COMMANDLINEr���r����anyr#���r9���r:���r;���rl���rp���rq���r-���r~���r����)r���rw���rx���ry���r���)r|���r���r����_search_inside_installroot��s$���� z#MainConf._search_inside_installrootc�������������C���s,���|�j�|�}|�j|�j|��}|�j|||��d�S�)N)r4���r����r3���r#���)r���rw���rx����new_pathr���r���r����prepend_installroot6��s���� zMainConf.prepend_installrootc�������������C���s,���t�jj|�jd�|jd��}tjjj||�j �S�)Nr|���r}���) rl���rp���r-���r3���r~���r9���r:���rQ���rS���rV���)r���rp���Z root_pathr���r���r���r����<��s����z"MainConf._prepend_installroot_pathc�������������C���s`��ddddddddd d dddd dddddddddddddg}�x|D��]}t�||d�}|dk ob|g�krB|�j|��r$d}|�jr�y|�jj��j|�j��}W�n�tk r����Y�nX�|�rtjj }||�j |�k�r�|�j |�}xR|D�]6}|r�|�j||�j|�|g�|��q�|�j|g�tjj ��q�W�n|�j||tjj ��qBt |�|��r>t|�||��qBtjtd�t|�t|���qBW�t�|dd�dk�r�|�jddtjj ��t |d��r\x�|jj��D�]�\}}x�|D�]�} t |�j|��r"y|�jj��j|�jt | ��W�nJ�tk �r�} �z,tjjtd �|| t| �f�t| �d!��W�Y�dd} ~ X�nX�n.t |�|��r<t|�|| ��ntd"�}tj||���q�W��q�W�dS�)#z%Configure parts of CLI from the opts Zplugins�version�config_file_path� debuglevelZ errorlevelr|���ZbestZ assumeyesZassumenoZclean_requirements_on_remove�gpgcheckZshowdupesfromreposZ ip_resolveZrpmverbosityZdisable_excludesZcolorZdownloadonly�exclude�excludepkgs�skip_brokenZtsflagsrC����basearchZ ignorearchZ cacheonlyZcommentNFz%Unknown configuration option: %s = %sZlocalpkg_gpgcheck�main_setoptsz4Error parsing --setopt with key '%s', value '%s': %s)r5���z1Main config did not have a %s attr. before setopt)r���r2���r���r(���rF���ZgetAddValuer+���r ���r:���r����r4���r#���r3���rE���rJ���rH����warningr���r���r����rT���rG���r>���r?���r���)r����optsZconfig_argsr���r���ZappendValueZadd_priority�item�valuesry���rA���rk���r���r���r����_configure_from_options@��s\���� .z MainConf._configure_from_optionsc�������������C���sP���d}|d�k rL|g�krL|�j�|�r2|�j||tjj��ntjtd�t|�t|���d�S�)Nr����z%Unknown configuration option: %s = %s) r2���r#���r ���r:���r����rH���r����r���r���)r���Zpkgsr���r���r���r����exclude_pkgs��s���� zMainConf.exclude_pkgsc�������������C���s(���|�j�d�}|r$|�jd|�|�jd���dS�)z Adjust conf options interactionsr�����strictN)r3���r#���r4���)r���Zskip_broken_valr���r���r����_adjust_conf_options���s���� zMainConf._adjust_conf_optionsc�������������C���s���|�j�jd�S�)N� releasever)rV����get)r���r���r���r���r�������s����zMainConf.releaseverc�������������C���s,���|d�kr|�j�jdd���d�S�t|�|�j�d<�d�S�)Nr����)rV����popr���)r���ry���r���r���r���r�������s����c�������������C���s���|�j�jd�S�)NrC���)rV���r����)r���r���r���r���rC������s����z MainConf.archc�������������C���sb���|d�kr|�j�jdd���d�S�|tjjj��krFtd�}tjj|j d|���||�j�d<�tjj |�|�_ d�S�)NrC���zIncorrect or unknown "{}": {})rV���r����r ����rpm� _BASEARCH_MAP�keysr���r>���rg���r���r����)r���ry���rk���r���r���r���rC������s���� c�������������C���s���|�j�jd�S�)Nr����)rV���r����)r���r���r���r���r�������s����zMainConf.basearchc�������������C���sT���|d�kr|�j�jdd���d�S�|tjjj��krFtd�}tjj|j d|���||�j�d<�d�S�)Nr����zIncorrect or unknown "{}": {}) rV���r����r ���r����r����r����r���r>���rg���r���)r���ry���rk���r���r���r���r�������s����c�������������C���s����|d�kr|�j�d�}tjj��}y|j|��W�nd�tk rd�}�ztjjt d�||f���W�Y�d�d�}~X�n,�t k r��}�ztj|��W�Y�d�d�}~X�nX�|�j ||�j||��|�jd||��d�S�)Nr����zParsing file "%s" failed: %s)r3���r9���r:���rQ���rR���r+���r ���r>���r?���r���re���rH���r����rM���r ���r#���)r���rL���r@���r���rA���r���r���r���rR������s���� (z MainConf.readc�������������C���s���|�j�d�tjjkS�)Nr����)r3���r ���rb���Z VERBOSE_LEVEL)r���r���r���r����verbose���s����zMainConf.verbose)r`���N)rX���rY���rZ���r[���r���ro����propertyrr���r{���r����r����r����r����r����r����r�����setterrC���r����r\���rR���r����r^���r���r���)r���r���r_�������s&���? r_���c�������������������s*���e�Zd�ZdZd��fdd� Zdd��Z���ZS�)�RepoConfz4Option definitions for repository INI file sections.Nc����������������sP���|r |j�ntjj��}tt|��jtjj|�||��||�_|rL|�j�j ��j t|��d�S�)N)r���r9���r:���ra���r!���r����r���Z ConfigRepoZ_mainConfigRefHolderr���r6���r\���)r����parentr���r���Z mainConfig)r���r���r���r������s ����zRepoConf.__init__c�������������C���s��t�|dd�dkr0xd D�]}|�j|dtjj��qW�t�|di��}x�|j��D�]�\}}tj|�j|�s^qFx�|j��D�]�\}}x�|D�]�}t|�j |�r�y|�j j ��j|�jt|��W�nL�t k r��} �z0tjjtd�|�j||t| �f�t| �d��W�Y�dd} ~ X�nX�qvtd�} tj| |�j|��qvW�qhW�qFW�dS�) zConfigure repos from the opts. r����NF� repo_gpgcheck�repo_setoptsz7Error parsing --setopt with key '%s.%s', value '%s': %s)r5���z-Repo %s did not have a %s attr. before setopt)r����r����)r���r#���r ���r:���r����rT����fnmatchr ���rE���r���r(���rF���rG���r+���r>���r?���r���r���rH���r����)r���r����rw���r����ZrepoidZsetoptsr���r����ry���rA���rk���r���r���r���r�������s$���� 2z RepoConf._configure_from_options)NN)rX���rY���rZ���r[���r���r����r^���r���r���)r���r���r�������s��� r����)2Z __future__r���r���Zdnf.yumr���Zdnf.i18nr���r���Z dnf.pycompr���r���r����Zdnf.conf.substitutionsr ���Z dnf.constZdnf.exceptionsZdnf.utilrc���Zloggingrl���Zlibdnf.confr9���Zlibdnf.reporu���r:���ZOptionZPriority_EMPTYZ PRIO_EMPTYZPriority_DEFAULTr\���ZPriority_MAINCONFIGZPRIO_MAINCONFIGZPriority_AUTOMATICCONFIGZPRIO_AUTOMATICCONFIGZPriority_REPOCONFIGZPRIO_REPOCONFIGZPriority_PLUGINDEFAULTZPRIO_PLUGINDEFAULTZPriority_PLUGINCONFIGZPRIO_PLUGINCONFIGZPriority_COMMANDLINEr����ZPriority_RUNTIMEr$���Z getLoggerrH����objectr ���r_���r����r���r���r���r����<module>���s@��� ���