Your IP : 216.73.216.213
B
�d{T� � @ st d Z dZddlmZ ddlmZ dZdZdZeeed�Z e
dd � e �� D ��ZG d
d� dej
�ZG dd
� d
e�ZdS )zPrioritized tasks queuezrestructuredtext en� )�insort_left)�queue�
�d )�LOW�MEDIUM�HIGHc c s | ]\}}||fV qd S )N� )�.0�key�valuesr r �J/opt/alt/python37/lib/python3.7/site-packages/logilab/common/tasksqueue.py� <genexpr># s r c @ s4 e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� ZdS )�PrioritizedTasksQueuec C s || _ g | _dS )z#Initialize the queue representationN)�maxsizer )�selfr r r r
�_init) s zPrioritizedTasksQueue._initc C sZ xHt | j�D ]:\}}||kr||k r8|�|� | j|= P |�|� dS qW t| j|� dS )zPut a new item in the queueN)� enumerater �merger )r �item�i�taskr r r
�_put/ s
zPrioritizedTasksQueue._putc C s
| j �� S )zGet an item from the queue)r �pop)r r r r
�_get? s zPrioritizedTasksQueue._getc C s
t | j�S )N)�iterr )r r r r
�__iter__C s zPrioritizedTasksQueue.__iter__c C s@ x.t | �D ]"\}}|j|kr
| j�|� dS q
W td| ��dS )z%remove a specific task from the queueNznot task of id %s in queue)r �idr r �
ValueError)r �tidr r r r r
�removeF s
zPrioritizedTasksQueue.removeN)�__name__�
__module__�__qualname__r r r r r r r r r
r '