File: //usr/lib/python3/dist-packages/fail2ban/client/__pycache__/configreader.cpython-310.pyc
o
;s*bO4 � @ 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 sv � t | ttf�r(| D ]}t|�dkr|\}}}n|d\}}}|||fV q
dS | D ]}| | \}}|||fV q*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/dist-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 sZ d | _ d | _|d ur
|| _|d ur|| _ || _d | _d S | jd u r+tdi |��| _d S d S )Nr )�
_cfg_share�_cfg�_cfg_share_kwargs�_cfg_share_basedir�ConfigReaderUnshared)�self�
use_config�share_config�kwargsr r r �__init__D s
�zConfigReader.__init__c C s | j r| j �|� d S || _d S �N)r �
setBaseDirr �r! �basedirr r r r'