B
� f: � @ sh d dl mZ d dlmZ G dd� d�Zdd� Zedkrdd dlmZ ed d
dd� d d
l m
Z
e
e� dS )� )� Delegator)�WidgetRedirectorc @ s@ e Zd Zdd� Zdd� Zddd�Zddd �Zd
d� Zdd
� ZdS )�
Percolatorc C sR || _ t|�| _t|� | _| _| j�d| j�| j_| j�d| j�| j_g | _ d S )N�insert�delete)
�textr �redirr �top�bottom�registerr r �filters)�selfr � r �7/opt/alt/python37/lib64/python3.7/idlelib/percolator.py�__init__ s
zPercolator.__init__c C sP x| j | jk r| �| j � qW d | _ | j�d � d | _| j�� d | _d | _d S )N)r r
�removefilter�setdelegater �closer )r
r r r r s
zPercolator.closeNc C s | j �|||� d S )N)r r )r
�index�charsZtagsr r r r s zPercolator.insertc C s | j �||� d S )N)r r )r
Zindex1Zindex2r r r r s zPercolator.deletec C s2 t |t�st�|jd kst�|�| j� || _d S )N)�
isinstancer �AssertionError�delegater r )r
�filterr r r �insertfilter" s zPercolator.insertfilterc C s� t |t�st�|jd k st�| j}||kr>|j| _|�d � nBx*|j|k rh|| jk sXt�|�� |j}q@W |�|j� |�d � d S )N)r r r r r r r
Z
resetcache)r
r �fr r r r ) s
zPercolator.removefilter)N)N) �__name__�
__module__�__qualname__r r r r r r r r r r r s
r c s dd l }G dd� dt�}|�| �}|�d� tt| �� �d�dd � �\}}|�d||d f � |�|�}t |�}|j
� |j�|d ��|d
��� ���fdd�}� ���fd
d�} |�� |�
| ��|j|d|�d�}
|
�� |�
| ��|j|d| �d�}|�� d S )Nr c @ s$ e Zd Zdd� Zdd� Zdd� ZdS )z_percolator.