Edit File: global_config.cpython-36.pyc
3 ��c�������������������@���s\���d�dl�Zd�dlmZmZ�d�dlmZ�d�dljZd�dl m Z �dgZejj ��ZG�dd��d�ZdS�)�����N)�ConfigParser�Error)�TunedException)�commands�GlobalConfigc���������������@���sd���e�Zd�Zejfdd�Zedd���Zejfdd�Zddd �Z dd d�Z dd d�Zdd��Zddd�Z dS�)r���c�������������C���s���i�|�_�|�j|d��t��|�_d�S�)N)� file_name)�_cfg�load_configr����_cmd)�selfZconfig_file��r����#/usr/lib/python3.6/global_config.py�__init__ ���s����zGlobalConfig.__init__c��������������C���s>���dd��t�t�D��}�tdd��|�D���}tdd��|�D���}||fS�)ai�� Easy validation mimicking configobj Returns two dicts, first with default values (default None) global_default[consts.CFG_SOMETHING] = consts.CFG_DEF_SOMETHING or None second with configobj function for value type (default "get" for string, others eg getboolean, getint) global_function[consts.CFG_SOMETHING] = consts.CFG_FUNC_SOMETHING or get } c�������������S���s2���g�|�]*}|j�d��r|j�d��r|j�d��r|�qS�)ZCFG_� CFG_FUNC_�CFG_DEF_)� startswith)�.0�optr���r���r ���� <listcomp>���s���� z7GlobalConfig.get_global_config_spec.<locals>.<listcomp>c�������������s���s0���|�](}t�t|�t�td�|dd���d�fV��qdS�)r�������N)�getattr�consts)r���r���r���r���r ���� <genexpr> ���s����z6GlobalConfig.get_global_config_spec.<locals>.<genexpr>c�������������s���s0���|�](}t�t|�t�td�|dd���d�fV��qdS�)r���r���N�get)r���r���)r���r���r���r���r ���r���!���s����)�dirr����dict)�optionsZglobal_defaultZglobal_functionr���r���r ����get_global_config_spec���s���� z#GlobalConfig.get_global_config_specc�������������C���s\��t�jd|���y�tdddd�}t|_t|��$}|jdtj�d�|j ���|��W�dQ�R�X�|�j ��\|�_}x�|jtj�D�]�}||�jkr�y$t |||��}|tj|�|�j|<�W�q��tk r����td |���Y�q�X�qrt�jd ||f���|jtj|dd�|�j|<�qrW�W�n^�tk �r(�}�ztd |���W�Y�dd}~X�n0�tk �rV�}�ztd|���W�Y�dd}~X�nX�dS�)z& Loads global configuration file. z2reading and parsing global configuration file '%s'�=�#F)Z delimitersZinline_comment_prefixes�strict�[z] Nz2Global TuneD configuration file '%s' is not valid.z/Unknown option '%s' in global config file '%s'.T)�rawz/Global TuneD configuration file '%s' not found.z3Error parsing global TuneD configuration file '%s'.)�log�debugr����strZoptionxform�openZread_stringr���ZMAGIC_HEADER_NAME�readr���r���r���r���r���r����infor����IOError)r���r���Z config_parser�fZ_global_config_funcZoption�func�er���r���r ���r ���$���s*���� ( zGlobalConfig.load_configNc�������������C���s���|�j�j||�S�)N)r���r���)r����key�defaultr���r���r ���r���?���s����zGlobalConfig.getc�������������C���s ���|�j�j|�j||��dkrdS�dS�)N�1TF)r ����get_boolr���)r���r-���r.���r���r���r ���r0���B���s����zGlobalConfig.get_boolr���c�������������C���s.���|�j�j||�}|r*t|t�r |S�t|d�S�|S�)Nr���)r���r���� isinstance�int)r���r-���r.����ir���r���r ����get_intG���s���� zGlobalConfig.get_intc�������������C���s���||�j�|<�d�S�)N)r���)r���r-����valuer���r���r ����setP���s����zGlobalConfig.setc�������������C���sH���|�j�|�}|d�kr|S�|�jj|�}|d�kr@tjd||f���|S�|S�d�S�)Nz%Error parsing value '%s', using '%s'.)r���r ����get_sizer#����error)r���r-���r.����val�retr���r���r ���r7���S���s���� zGlobalConfig.get_size)N)N)r���)N)�__name__� __module__�__qualname__r���ZGLOBAL_CONFIG_FILEr����staticmethodr���r ���r���r0���r4���r6���r7���r���r���r���r ���r������s��� )Z tuned.logsZtunedZtuned.utils.config_parserr���r���Ztuned.exceptionsr���Ztuned.constsr���Ztuned.utils.commandsr����__all__Zlogsr���r#���r���r���r���r���r ����<module>���s���