o ?Og,@s ddlZddlZddlmZddlmZmZddlmZzddl m Z Wn e y0dZ YnwgdZ zddl m Z Wne yNGdd d eZ YnwGd d d eZGd d d ZGdddeZGdddeZGdddZe dur}eZ dSdS)N)deque)heappushheappop) monotonic) SimpleQueue)EmptyFullQueue PriorityQueue LifoQueuer)rc@eZdZ dS)rN__name__ __module__ __qualname__rr,/opt/alt/python310/lib64/python3.10/queue.pyrrc@r )rNr rrrrrrrc@seZdZ d ddZddZddZdd Zd d Zd d Zd!ddZ d!ddZ ddZ ddZ ddZ ddZddZddZeejZdS)"r rcCsN||_||t|_t|j|_t|j|_t|j|_d|_ dSNr) maxsize_init threadingZLockmutexZ Condition not_emptynot_fullall_tasks_doneunfinished_tasksselfrrrr__init__"s   zQueue.__init__cCs` |j"|jd}|dkr|dkrtd|j||_WddS1s)wYdS)Nrz!task_done() called too many times)rr ValueErrorZ notify_all)rZ unfinishedrrr task_done9s  "zQueue.task_donecCsT |j|jr|j|jsWddSWddS1s#wYdSN)rrwaitrrrrjoinOs "z Queue.joincCs4 |j |WdS1swYdSr#r_qsizer%rrrqsize\s$z Queue.qsizecCs6 |j | WdS1swYdSr#r'r%rrremptyas $z Queue.emptycCsJ |jd|jko|knWdS1swYdSr)rrr(r%rrrfullos$z Queue.fullTNcCs |jo|jdkrZ|s||jkrtnD|dur.||jkr-|j||jks!n,|dkr6tdt|}||jkrZ|t}|dkrMt|j|||jksB|||jd7_|j WddS1svwYdS)Nr''timeout' must be a non-negative numberr ) rrr(rr$r!time_putrrnotify)ritemblocktimeoutendtime remainingrrrputzs2       "z Queue.putcCs |jT|s|s tn8|dur |s|j|rn&|dkr(tdt|}|sF|t}|dkrz_PySimpleQueue.put_nowaitcCr?r:r@r%rrrrA2rBz_PySimpleQueue.get_nowaitcCs t|jdkSrrFrYr%rrrr*:sz_PySimpleQueue.emptycCs t|jSr#r]r%rrrr)>s z_PySimpleQueue.qsizerN)rrrrr6r8r=rAr*r)rOrPrQrRrrrrrXs  rX)rrP collectionsrheapqrrr.rrYr ImportError__all__r Exceptionrr r r rXrrrrs4    DC