File: //usr/lib/python3.9/site-packages/fail2ban/client/__pycache__/configreader.cpython-39.pyc
a
6�&jZ]*� @ 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)�GPL� N)�
NoOptionError�NoSectionError� )�sys�SafeConfigParserWithIncludes�logLevel� )� getLogger�_as_bool�_merge_dicts�substituteRecursiveTags)�bool�intc c sr t | ttf�rL| D ]6}t|�dkr.|\}}}n|d \}}}|||fV qn"| D ]}| | \}}|||fV qPdS )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.9/site-packages/fail2ban/client/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 sT d | _ d | _|d ur|| _|d ur6|| _ || _d | _n| jd u rPtf i |��| _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 �|� n|| _d S r )r �
setBaseDirr �r"