U e5d\,@sddlZddlmZddlmZmZddlmZzddlm Z Wne k rXdZ YnXdddd d d gZ zdd lm Z Wn$e k rGd dde Z YnXGddde ZGdddZGdd d eZGdd d eZGdddZe dkreZ dS)N)deque)heappushheappop) monotonic) SimpleQueueEmptyFullQueue PriorityQueue LifoQueuer)rc@s eZdZdS)rN__name__ __module__ __qualname__rr/usr/lib64/python3.8/queue.pyrsc@s eZdZdS)rNr rrrrrsc@seZdZd ddZddZddZdd Zd d Zd d Zd!ddZ d"ddZ ddZ ddZ ddZ ddZddZddZdS)#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__c CsH|j8|jd}|dkr4|dkr*td|j||_W5QRXdS)Nrz!task_done() called too many times)rr ValueErrorZ notify_all)rZ unfinishedrrr task_done8s  zQueue.task_donec Cs(|j|jr|jqW5QRXdSN)rrwaitrrrrjoinNs z Queue.joinc Cs&|j|W5QRSQRXdSr!r_qsizer#rrrqsize[sz Queue.qsizec Cs(|j| W5QRSQRXdSr!r%r#rrrempty`s z Queue.emptyc Cs<|j,d|jko |knW5QRSQRXdSr)rrr&r#rrrfullnsz Queue.fullTNc Cs|j|jdkr|s*||jkrtnr|dkrN||jkr|jq2nN|dkr`tdnr#rrrr&szPriorityQueue._qsizecCst|j|dSr!)rr=r9rrrr-szPriorityQueue._putcCs t|jSr!)rr=r#rrrr5szPriorityQueue._getNr rrrr&r-r5rrrrr sc@s,eZdZddZddZddZddZd S) r cCs g|_dSr!rCrrrrrszLifoQueue._initcCs t|jSr!r>r#rrrr&szLifoQueue._qsizecCs|j|dSr!r@r9rrrr-szLifoQueue._putcCs |jSr!)r=popr#rrrr5szLifoQueue._getNrDrrrrr sc@sHeZdZddZdddZdddZd d Zd d Zd dZddZ dS)_PySimpleQueuecCst|_td|_dSr)r_queuerZ Semaphore_countr#rrrr sz_PySimpleQueue.__init__TNcCs|j||jdSr!)rGrArHrelease)rr/r0r1rrrr4 s z_PySimpleQueue.putcCs4|dk r|dkrtd|j||s*t|jS)Nrr*)rrHacquirerrGrB)rr0r1rrrr6s z_PySimpleQueue.getcCs|j|ddSr7r8r9rrrr:'sz_PySimpleQueue.put_nowaitcCs |jddSr7r;r#rrrr</sz_PySimpleQueue.get_nowaitcCst|jdkSrr?rGr#rrrr(7sz_PySimpleQueue.emptycCs t|jSr!rKr#rrrr';sz_PySimpleQueue.qsize)TN)TN) r rrrr4r6r:r<r(r'rrrrrFs  rF)r collectionsrheapqrrr,rrGr ImportError__all__r Exceptionrr r r rFrrrrs(   BA