File: //lib/python3.6/site-packages/fail2ban/client/__pycache__/configreader.cpython-36.pyc
3
TB(dM4 � @ s� d Z dZdZddlZddlZddlmZmZ ddlm Z m
Z
mZ dd lm
Z
mZmZmZ e
e�Zeed
�Zdd� ZG d
d� d�ZG dd� de
�ZG dd� de�ZdS )z?Cyril Jaquier, Yaroslav Halchenko, Serg G. Brester (aka sebres)z\Copyright (c) 2004 Cyril Jaquier, 2007 Yaroslav Halchenko, 2015 Serg G. Brester (aka sebres)ZGPL� N)�
NoOptionError�NoSectionError� )�sys�SafeConfigParserWithIncludes�logLevel� )� getLogger�_as_bool�_merge_dicts�substituteRecursiveTags)�bool�intc c sz t | ttf�rPxf| D ]6}t|�dkr0|\}}}n|d \}}}|||fV qW n&x$| D ]}| | \}}|||fV qVW dS )z�Iterator over the options template with default options.
Each options entry is composed of an array or tuple with:
[[type, name, ?default?], ...]
Or it is a dict:
{name: [type, default], ...}
r N)�
isinstance�list�tuple�len)�options�optname�opttype�optvalue� r �"/usr/lib/python3.6/configreader.py�_OptionsTemplateGen) s
r c @ s� e Zd ZdZd"dd�Zdd� Zdd� Zed d
� �Zd#dd
�Z d$dd�Z
dd� Zdd� Zd%dd�Z
dd� Zdd� Zd&dd�Zdi fdd�Zd d!� ZdS )'�ConfigReaderzkGeneric config reader class.
A caching adapter which automatically reuses already shared configuration.
Nc K sP d | _ d | _|d k r|| _|d k r6|| _ || _d | _n| jd krLtf |�| _d S )N)�
_cfg_share�_cfg�_cfg_share_kwargs�_cfg_share_basedir�ConfigReaderUnshared)�selfZ
use_config�share_config�kwargsr r r �__init__D s
zConfigReader.__init__c C s | j r| j j|� n|| _d S )N)r �
setBaseDirr )r �basedirr r r r$ R s zConfigReader.setBaseDirc C s | j r| j j� S | jS d S )N)r �
getBaseDirr )r r r r r&