Viewing File: /opt/alt/python35/lib64/python3.5/__pycache__/asynchat.cpython-35.opt-2.pyc



й¼]Ã.ã@skddlZddlmZGdd„dejƒZGdd„dƒZGdd„dƒZd	d
„ZdS)éN)Údequec@súeZdZdZdZdZdZdddd„Zdd„Zd	d
„Z	dd„Z
d
d„Zdd„Zdd„Z
dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„ZdS)'Ú
async_chatirzlatin-1NcCs8d|_g|_tƒ|_tjj|||ƒdS)Nó)Úac_in_bufferÚincomingrÚ
producer_fifoÚasyncoreÚ
dispatcherÚ__init__)ÚselfÚsockÚmap©rú-/opt/alt/python35/lib64/python3.5/asynchat.pyr
Cs		zasync_chat.__init__cCstdƒ‚dS)Nzmust be implemented in subclass)ÚNotImplementedError)rÚdatarrrÚcollect_incoming_dataQsz async_chat.collect_incoming_datacCs|jj|ƒdS)N)rÚappend)rrrrrÚ_collect_incoming_dataTsz!async_chat._collect_incoming_datacCs&dj|jƒ}|jdd…=|S)Nr)Újoinr)rÚdrrrÚ	_get_dataWszasync_chat._get_datacCstdƒ‚dS)Nzmust be implemented in subclass)r)rrrrÚfound_terminator\szasync_chat.found_terminatorcCsat|tƒr-|jr-t||jƒ}n't|tƒrT|dkrTtdƒ‚||_dS)Nrz-the number of received bytes must be positive)Ú
isinstanceÚstrÚuse_encodingÚbytesÚencodingÚintÚ
ValueErrorÚ
terminator)rZtermrrrÚset_terminator_s
zasync_chat.set_terminatorcCs|jS)N)r )rrrrÚget_terminatorjszasync_chat.get_terminatorcCsiy|j|jƒ}WnHtk
r.dSYn3tk
r`}z|jƒdSWYdd}~XnXt|tƒr‹|jr‹tt|j	ƒ}|j
||_
xÇ|j
rdt|j
ƒ}|jƒ}|sä|j
|j
ƒd|_
qžt|tƒrw|}||kr1|j
|j
ƒd|_
|j||_qa|j
|j
d|…ƒ|j
|d…|_
d|_|jƒqžt|ƒ}|j
j|ƒ}|dkrî|dkrÇ|j
|j
d|…ƒ|j
||d…|_
|jƒqžt|j
|ƒ}|rH||krD|j
|j
d|…ƒ|j
|d…|_
Pqž|j
|j
ƒd|_
qžWdS)Nrrééÿÿÿÿ)ÚrecvÚac_in_buffer_sizeÚBlockingIOErrorÚOSErrorÚhandle_errorrrrrrrÚlenr"rrr rÚfindÚfind_prefix_at_end)rrÚwhyZlbr ÚnZterminator_lenÚindexrrrÚhandle_readrsR

		
	
zasync_chat.handle_readcCs|jƒdS)N)Ú
initiate_send)rrrrÚhandle_writeºszasync_chat.handle_writecCs|jƒdS)N)Úclose)rrrrÚhandle_close½szasync_chat.handle_closecCsªt|tttfƒs-tdt|ƒƒ‚|j}t|ƒ|krŒxQtdt|ƒ|ƒD]$}|j	j
||||…ƒqaWn|j	j
|ƒ|jƒdS)Nz#data argument must be byte-ish (%r)r)rrÚ	bytearrayÚ
memoryviewÚ	TypeErrorÚtypeÚac_out_buffer_sizer*Úrangerrr1)rrZsabsÚirrrÚpushÀs	%zasync_chat.pushcCs|jj|ƒ|jƒdS)N)rrr1)rZproducerrrrÚpush_with_producerÌszasync_chat.push_with_producercCsdS)Nr#r)rrrrÚreadableÐszasync_chat.readablecCs|jp|jS)N)rÚ	connected)rrrrÚwritableØszasync_chat.writablecCs|jjdƒdS)N)rr)rrrrÚclose_when_doneÜszasync_chat.close_when_donecCsgx`|jrb|jrb|jd}|sL|jd=|dkrL|jƒdS|j}y|d|…}WnDtk
r¯|jƒ}|rž|jj|ƒn
|jd=wYnXt|tƒrÚ|j	rÚt
||jƒ}y|j|ƒ}Wn t
k
r|jƒdSYnX|r^|t|ƒks:|t|ƒkrT||d…|jd<n
|jd=dSWdS)Nr)rr?r4r9r7ÚmoreÚ
appendleftrrrrrÚsendr(r)r*)rÚfirstZobsrZnum_sentrrrr1às8


	



	$
zasync_chat.initiate_sendcCs*d|_|jdd…=|jjƒdS)Nr)rrrÚclear)rrrrÚdiscard_bufferss	zasync_chat.discard_buffers)Ú__name__Ú
__module__Ú__qualname__r&r9rrr
rrrrr!r"r0r2r4r<r=r>r@rAr1rGrrrrr4s*H(rc@s+eZdZddd„Zdd„ZdS)Úsimple_producericCs||_||_dS)N)rÚbuffer_size)rrrLrrrr
s	zsimple_producer.__init__cCset|jƒ|jkrK|jd|j…}|j|jd…|_|S|j}d|_|SdS)Nr)r*rrL)rÚresultrrrrBs		zsimple_producer.moreN)rHrIrJr
rBrrrrrKsrKc@s[eZdZddd„Zdd„Zdd„Zdd	„Zd
d„Zdd
„ZdS)ÚfifoNcCsJddl}|jdtddƒ|s7tƒ|_nt|ƒ|_dS)Nrz(fifo class will be removed in Python 3.6Ú
stacklevelé)ÚwarningsÚwarnÚDeprecationWarningrÚlist)rrTrQrrrr
!s	
z
fifo.__init__cCs
t|jƒS)N)r*rT)rrrrÚ__len__*szfifo.__len__cCs|jS)N)rT)rrrrÚis_empty-sz
fifo.is_emptycCs|jdS)Nr)rT)rrrrrE0sz
fifo.firstcCs|jj|ƒdS)N)rTr)rrrrrr<3sz	fifo.pushcCs$|jrd|jjƒfSdSdS)Nr#r)rN)rTÚpopleft)rrrrÚpop6s	zfifo.pop)	rHrIrJr
rUrVrEr<rXrrrrrN s	rNcCsEt|ƒd}x.|r@|j|d|…ƒr@|d8}qW|S)Nr#)r*Úendswith)ZhaystackZneedleÚlrrrr,Ls#r,)rÚcollectionsrr	rrKrNr,rrrrÚ<module>0s
Û,
Back to Directory File Manager