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



]K@s$ddlmZmZddlmZmZddlZddlZddlZd(Z	d)Z
ddZeddd	d
dgZde_
ejd*krdej_
dej_
dej_
dej_
GdddeZGddddeZGdddeZGdddeZeedrKGdddeZeedrpGd d!d!eZeed"rGd#d$d$eZeed%rGd&d'd'eZd'ekreZnNd!ekreZn6d$ekreZndekreZneZdS)+)ABCMetaabstractmethod)
namedtupleMappingNc
Cst|tr|}nLyt|j}Wn3tttfk
rctdj|dYnX|dkrtdj||S)NzInvalid file object: {!r}rzInvalid file descriptor: {})
isinstanceintfilenoAttributeError	TypeError
ValueErrorformat)fileobjfdr./opt/alt/python35/lib64/python3.5/selectors.py_fileobj_to_fds		rSelectorKeyrreventsdatazSelectorKey(fileobj, fd, events, data)

    Object used to associate a file object to its backing
    file descriptor, selected event mask, and attached data.
zFile object registered.zUnderlying file descriptor.z3Events that must be waited for on this file object.zzOptional opaque data associated to this file object.
    For example, this could be used to store a per-client session ID.c@s@eZdZddZddZddZddZd	S)
_SelectorMappingcCs
||_dS)N)	_selector)selfselectorrrr__init__>sz_SelectorMapping.__init__cCst|jjS)N)lenr
_fd_to_key)rrrr__len__Asz_SelectorMapping.__len__cCsUy$|jj|}|jj|SWn*tk
rPtdj|dYnXdS)Nz{!r} is not registered)r_fileobj_lookuprKeyErrorr
)rrrrrr__getitem__Ds

z_SelectorMapping.__getitem__cCst|jjS)N)iterrr)rrrr__iter__Ksz_SelectorMapping.__iter__N)__name__
__module____qualname__rrr"r$rrrrr;src@seZdZedddZeddZdddZeddd	Zd
dZdd
Z	eddZ
ddZddZdS)BaseSelectorNcCs
tdS)N)NotImplementedError)rrrrrrrregister^szBaseSelector.registercCs
tdS)N)r))rrrrr
unregisteruszBaseSelector.unregistercCs |j||j|||S)N)r+r*)rrrrrrrmodifys
zBaseSelector.modifycCs
tdS)N)r))rtimeoutrrrselectszBaseSelector.selectcCsdS)Nr)rrrrcloseszBaseSelector.closecCsa|j}|dkr$tdy||SWn*tk
r\tdj|dYnXdS)NzSelector is closedz{!r} is not registered)get_mapRuntimeErrorr!r
)rrmappingrrrget_keys
zBaseSelector.get_keycCs
tdS)N)r))rrrrr0szBaseSelector.get_mapcCs|S)Nr)rrrr	__enter__szBaseSelector.__enter__cGs|jdS)N)r/)rargsrrr__exit__szBaseSelector.__exit__)
r%r&r'rr*r+r,r.r/r3r0r4r6rrrrr(Osr(	metaclassc@sveZdZddZddZdddZdd	Zdd
dZdd
ZddZ	ddZ
dS)_BaseSelectorImplcCsi|_t||_dS)N)rr_map)rrrrrs	z_BaseSelectorImpl.__init__cCsZyt|SWnEtk
rUx-|jjD]}|j|kr.|jSq.WYnXdS)N)rrrvaluesrr)rrkeyrrrr s	
z!_BaseSelectorImpl._fileobj_lookupNcCs|s|ttB@r+tdj|t||j|||}|j|jkrvtdj||j||j|j<|S)NzInvalid events: {!r}z"{!r} (FD {}) is already registered)	
EVENT_READEVENT_WRITErr
rr rrr!)rrrrr;rrrr*s	z_BaseSelectorImpl.registercCsPy|jj|j|}Wn*tk
rKtdj|dYnX|S)Nz{!r} is not registered)rpopr r!r
)rrr;rrrr+s

z_BaseSelectorImpl.unregistercCsy|j|j|}Wn*tk
rFtdj|dYnX||jkr{|j||j|||}n1||jkr|jd|}||j|j	<|S)Nz{!r} is not registeredr)
rr r!r
rr+r*r_replacer)rrrrr;rrrr,s

z_BaseSelectorImpl.modifycCs|jjd|_dS)N)rclearr9)rrrrr/s
z_BaseSelectorImpl.closecCs|jS)N)r9)rrrrr0sz_BaseSelectorImpl.get_mapcCs,y|j|SWntk
r'dSYnXdS)N)rr!)rrrrr_key_from_fds	
z_BaseSelectorImpl._key_from_fd)r%r&r'rr r*r+r,r/r0rArrrrr8s
r8cseZdZfddZdfddZfddZejdkrfdd	d
Zn	e	j	ZdddZ	S)
SelectSelectorcs)tjt|_t|_dS)N)superrset_readers_writers)r)	__class__rrr%s
zSelectSelector.__init__NcsVtj|||}|t@r5|jj|j|t@rR|jj|j|S)N)rCr*r<rEaddrr=rF)rrrrr;)rGrrr**s

zSelectSelector.registercs<tj|}|jj|j|jj|j|S)N)rCr+rEdiscardrrF)rrr;)rGrrr+2szSelectSelector.unregisterwin32cCs2tj||||\}}}|||gfS)N)r.)rrw_r-xrrr_select9s!zSelectSelector._selectc	
Cs|dkrdnt|d}g}y+|j|j|jg|\}}}Wntk
rj|SYnXt|}t|}xs||BD]g}d}||kr|tO}||kr|tO}|j|}|r|j	|||j
@fqW|S)Nr)maxrOrErFInterruptedErrorrDr<r=rAappendr)	rr-readyrKrLrMrrr;rrrr.?s$!+
	

zSelectSelector.select)
r%r&r'rr*r+sysplatformrOr.rr)rGrrB"s	rBpollcsXeZdZfddZdfddZfddZddd	ZS)
PollSelectorcs tjtj|_dS)N)rCrr.rV_poll)r)rGrrrZs
zPollSelector.__init__Ncsftj|||}d}|t@r5|tjO}|t@rL|tjO}|jj|j||S)Nr)	rCr*r<r.POLLINr=POLLOUTrXr)rrrrr;poll_events)rGrrr*^s



zPollSelector.registercs)tj|}|jj|j|S)N)rCr+rXr)rrr;)rGrrr+hszPollSelector.unregisterc
Cs|dkrd}n(|dkr*d}ntj|d}g}y|jj|}Wntk
rq|SYnXxy|D]q\}}d}|tj@r|tO}|tj@r|t	O}|j
|}|ry|j|||j@fqyW|S)Nrg@@)
mathceilrXrVrQr.rYr=rZr<rArRr)rr-rS
fd_event_listreventrr;rrrr.ms(		
	

zPollSelector.select)r%r&r'rr*r+r.rr)rGrrWWs
rWepollcsveZdZfddZddZdfddZfdd	Zdd
dZfdd
ZS)
EpollSelectorcs tjtj|_dS)N)rCrr.r`_epoll)r)rGrrrs
zEpollSelector.__init__cCs
|jjS)N)rbr	)rrrrr	szEpollSelector.filenoNcstj|||}d}|t@r5|tjO}|t@rL|tjO}y|jj|j|Wn%t	k
rtj
|YnX|S)Nr)rCr*r<r.EPOLLINr=EPOLLOUTrbr
BaseExceptionr+)rrrrr;epoll_events)rGrrr*s




zEpollSelector.registercsBtj|}y|jj|jWntk
r=YnX|S)N)rCr+rbrOSError)rrr;)rGrrr+s
zEpollSelector.unregisterc	
Cs|dkrd}n,|dkr*d}ntj|dd}tt|jd}g}y|jj||}Wntk
r|SYnXxy|D]q\}}d}|tj	@r|t
O}|tj@r|tO}|j
|}|r|j|||j@fqW|S)Nrrg@@gMbP?)r\r]rPrrrbrVrQr.rcr=rdr<rArRr)	rr-max_evrSr^rr_rr;rrrr.s*		
	

zEpollSelector.selectcs|jjtjdS)N)rbr/rC)r)rGrrr/s
zEpollSelector.close)	r%r&r'rr	r*r+r.r/rr)rGrras
 radevpollcsveZdZfddZddZdfddZfdd	Zdd
dZfdd
ZS)DevpollSelectorcs tjtj|_dS)N)rCrr.rj_devpoll)r)rGrrrs
zDevpollSelector.__init__cCs
|jjS)N)rlr	)rrrrr	szDevpollSelector.filenoNcsftj|||}d}|t@r5|tjO}|t@rL|tjO}|jj|j||S)Nr)	rCr*r<r.rYr=rZrlr)rrrrr;r[)rGrrr*s



zDevpollSelector.registercs)tj|}|jj|j|S)N)rCr+rlr)rrr;)rGrrr+szDevpollSelector.unregisterc
Cs|dkrd}n(|dkr*d}ntj|d}g}y|jj|}Wntk
rq|SYnXxy|D]q\}}d}|tj@r|tO}|tj@r|t	O}|j
|}|ry|j|||j@fqyW|S)Nrg@@)
r\r]rlrVrQr.rYr=rZr<rArRr)rr-rSr^rr_rr;rrrr.s(		
	

zDevpollSelector.selectcs|jjtjdS)N)rlr/rC)r)rGrrr/s
zDevpollSelector.close)	r%r&r'rr	r*r+r.r/rr)rGrrks
rkkqueuecsveZdZfddZddZdfddZfdd	Zdd
dZfdd
ZS)KqueueSelectorcs tjtj|_dS)N)rCrr.rm_kqueue)r)rGrrrs
zKqueueSelector.__init__cCs
|jjS)N)ror	)rrrrr	szKqueueSelector.filenoNcstj|||}y|t@r\tj|jtjtj}|jj	|gdd|t
@rtj|jtjtj}|jj	|gddWn%tk
rtj
|YnX|S)Nr)rCr*r<r.keventrKQ_FILTER_READZ	KQ_EV_ADDrocontrolr=KQ_FILTER_WRITErer+)rrrrr;kev)rGrrr*s


zKqueueSelector.registercstj|}|jt@rotj|jtjtj}y|j	j
|gddWntk
rnYnX|jt@rtj|jtj
tj}y|j	j
|gddWntk
rYnX|S)Nr)rCr+rr<r.rprrqZKQ_EV_DELETErorrrgr=rs)rrr;rt)rGrrr+'s 



zKqueueSelector.unregisterc

Cs|dkrdnt|d}t|j}g}y|jjd||}Wntk
rj|SYnXx|D]}|j}|j}d}|tj	kr|t
O}|tjkr|tO}|j
|}	|	rr|j|	||	j@fqrW|S)Nr)rPrrrorrrQidentfilterr.rqr<rsr=rArRr)
rr-rirSZkev_listrtrflagrr;rrrr.<s&!
	
		

zKqueueSelector.selectcs|jjtjdS)N)ror/rC)r)rGrrr/Rs
zKqueueSelector.close)	r%r&r'rr	r*r+r.r/rr)rGrrn
srnr)rr)abcrrcollectionsrrr\r.rTr<r=rr__doc__version_inforrrrrr(r8rBhasattrrWrarkrnglobalsDefaultSelectorrrrr<module>sF	~U31G8M				
Back to Directory File Manager