
    Cj                    l    S SK Jr  S SKrS SKJr  S SKJr  S SKJrJr  \" S5      r	 " S S\\	   5      r
g)	    )annotationsN)Event)deque)GenericTypeVar	QueueTypec                  ^    \ rS rSrSrSS jrSS jrSS jrSS jrSS jr	SS jr
SS	 jrS
rg)Queue   zcA cut-down version of asyncio.Queue

This has just enough functionality to run the message pumps.

c                @    [        5       U l        [        5       U l        g N)r   valuesr   ready_eventselfs    `/home/rurouni/.local/share/pipx/venvs/strix-agent/lib/python3.13/site-packages/textual/_queue.py__init__Queue.__init__   s    (- 7    c                n    U R                   R                  U5        U R                  R                  5         g r   )r   appendr   setr   values     r   
put_nowaitQueue.put_nowait   s&    5!r   c                ,    [        U R                  5      $ r   )lenr   r   s    r   qsizeQueue.qsize   s    4;;r   c                $    U R                   (       + $ r   )r   r   s    r   emptyQueue.empty   s    ;;r   c                    g r    r   s    r   	task_doneQueue.task_done    s    r   c                  #    U R                   R                  5       (       d"  U R                   R                  5       I S h  vN   U R                  R	                  5       nU R                  (       d  U R                   R                  5         U$  NK7fr   )r   is_setwaitr   popleftclearr   s     r   get	Queue.get#   sg     &&((""'')))##%{{""$	 *s   =BB ABc                    U R                   (       d  [        R                  " 5       eU R                   R                  5       nU R                   (       d  U R                  R                  5         U$ r   )r   asyncio
QueueEmptyr+   r   r,   r   s     r   
get_nowaitQueue.get_nowait+   sH    {{$$&&##%{{""$r   )r   r   N)returnNone)r   r   r4   r5   )r4   int)r4   bool)r4   r   )__name__
__module____qualname____firstlineno____doc__r   r   r   r"   r&   r-   r2   __static_attributes__r%   r   r   r
   r
      s*    # r   r
   )
__future__r   r0   r   collectionsr   typingr   r   r   r
   r%   r   r   <module>rA      s/    "    #K 	&GI &r   