
    AHj                    l    d dl mZ d dlZd dlmZ d dlmZ d dlmZmZ  ed      Z	 G d dee	         Z
y)	    )annotationsN)Event)deque)GenericTypeVar	QueueTypec                  H    e Zd ZdZd
dZddZddZddZd
dZddZ	ddZ
y	)QueuezkA cut-down version of asyncio.Queue

    This has just enough functionality to run the message pumps.

    c                @    t               | _        t               | _        y N)r   valuesr   ready_eventselfs    F/root/tools/cai/cai_env/lib/python3.12/site-packages/textual/_queue.py__init__zQueue.__init__   s    (- 7    c                n    | j                   j                  |       | j                  j                          y r   )r   appendr   setr   values     r   
put_nowaitzQueue.put_nowait   s&    5!r   c                ,    t        | j                        S r   )lenr   r   s    r   qsizezQueue.qsize   s    4;;r   c                    | j                    S r   )r   r   s    r   emptyzQueue.empty   s    ;;r   c                     y r    r   s    r   	task_donezQueue.task_done    s    r   c                
  K   | j                   j                         s"| j                   j                          d {    | j                  j	                         }| j                  s| j                   j                          |S 7 Fwr   )r   is_setwaitr   popleftclearr   s     r   getz	Queue.get#   se     &&(""'')))##%{{""$	 *s   8BBABc                    | j                   st        j                         | j                   j                         }| j                   s| j                  j                          |S r   )r   asyncio
QueueEmptyr%   r   r&   r   s     r   
get_nowaitzQueue.get_nowait+   sH    {{$$&&##%{{""$r   N)returnNone)r   r   r,   r-   )r,   int)r,   bool)r,   r   )__name__
__module____qualname____doc__r   r   r   r   r!   r'   r+   r    r   r   r
   r
      s*    # r   r
   )
__future__r   r)   r   collectionsr   typingr   r   r   r
   r    r   r   <module>r7      s/    "    #K 	&GI &r   