/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util
NameSizeModeActions
connection.py42370644editdlrm
connection.pyc38710644editdlrm
connection.pyo38710644editdlrm
request.py37050644editdlrm
request.pyc37570644editdlrm
request.pyo37570644editdlrm
response.py23430644editdlrm
response.pyc22970644editdlrm
response.pyo22970644editdlrm
retry.py151040644editdlrm
retry.pyc147280644editdlrm
retry.pyo147280644editdlrm
selectors.py211470644editdlrm
selectors.pyc209850644editdlrm
selectors.pyo209850644editdlrm
ssl_.py122140644editdlrm
ssl_.pyc106050644editdlrm
ssl_.pyo106050644editdlrm
timeout.py97570644editdlrm
timeout.pyc97160644editdlrm
timeout.pyo97160644editdlrm
url.py67980644editdlrm
url.pyc67730644editdlrm
url.pyo67730644editdlrm
wait.py14510644editdlrm
wait.pyc18420644editdlrm
wait.pyo18420644editdlrm
__init__.py10440644editdlrm
__init__.pyc12770644editdlrm
__init__.pyo12770644editdlrm
Edit: /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyo (20985B)
ó •abc@sddlZddlZddlZddlZddlZddlZddlmZmZy ej Z Wn e e fk rejZ nXd#Z d$Z eZeƒZdadefd„ƒYZd„Zejd%kréd „Zn d „Zed d dddgƒZdefd„ƒYZdefd„ƒYZeedƒradefd„ƒYZneedƒr‰defd„ƒYZneedƒr±defd„ƒYZneedƒrÙdefd „ƒYZ needƒsñe!Znd!„Z"d"„Z#dS(&iÿÿÿÿN(t namedtupletMappingiit SelectorErrorcBs#eZd„Zd„Zd„ZRS(cCs tt|ƒjƒ||_dS(N(tsuperRt__init__terrno(tselfterrcode((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyRscCsdj|jƒS(Ns(tformatR(R((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyt__repr__"scCs |jƒS(N(R (R((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyt__str__%s(t__name__t __module__RR R (((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyRs  cCsˆt|tƒr|}nHyt|jƒƒ}Wn/tttfk r_tdj|ƒƒ‚nX|dkr„tdj|ƒƒ‚n|S(sl Return a file descriptor from a file object. If given an integer will simply return that integer back. sInvalid file object: {0!r}isInvalid file descriptor: {0}(t isinstancetinttfilenotAttributeErrort TypeErrort ValueErrorR(tfileobjtfd((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyt_fileobj_to_fd)s  iicOsdy|||ŽSWnLtttjfk r_}d}t|dƒrP|j}nt|ƒ‚nXdS(s¤ This is the short-circuit version of the below logic because in Python 3.5+ all system calls automatically restart and recalculate their timeouts. RN(tOSErrortIOErrortselectterrortNonethasattrRR(tfunct_targstkwargsteR((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyt_syscall_wrapper;s c OsÊ|jddƒ}|dkr-d}t}n.t|ƒ}|dkrNd}n tƒ|}t|ƒ}|rˆd|krˆtdƒ‚nt}x5|tkrÅy|||Ž}Wq‘tt t j fk rÁ}d}t |dƒrï|j }nt |dƒr|jd}n|t jkp8t t dƒo8|t jk} | r¦|dk r‘tƒ} | |krwtdt jƒ‚n|r d|kr|| |d(((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyR4‚s    t BaseSelectorcBsƒeZdZd„Zd„Zd d„Zd„Zd d„Zd d„Z d„Z d„Z d „Z d „Z d „Zd „ZRS(s/ Abstract Selector class A selector supports registering file objects to be monitored for specific I/O events. A file object is a file descriptor or any object with a `fileno()` method. An arbitrary object can be attached to the file object which can be used for example to store context info, a callback, etc. A selector can use various implementations (select(), poll(), epoll(), and kqueue()) depending on the platform. The 'DefaultSelector' class uses the most efficient implementation for the current platform. cCsi|_t|ƒ|_dS(N(R8R4t_map(R((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyR¥s cCsYyt|ƒSWnDtk rTx-|jjƒD]}|j|kr.|jSq.W‚nXdS(sa Return a file descriptor from a file object. This wraps _fileobj_to_fd() to do an exhaustive search in case the object is invalid but we still have it in our map. Used by unregister() so we can unregister an object that was previously registered even if it is closed. It is also used by _SelectorMapping N(RRR8tvaluesRR(RRtkey((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyR:¬s  cCs| s|ttB@r.tdj|ƒƒ‚nt||j|ƒ||ƒ}|j|jkr|tdj||jƒƒ‚n||j|j<|S(s8 Register a file object for a set of events to monitor. sInvalid events: {0!r}s${0!r} (FD {1}) is already registered( t EVENT_READt EVENT_WRITERRR1R:RR8R;(RRR2R3RC((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pytregisterÀs cCsÎy|jj|j|ƒƒ}Wn¨tk rGtdj|ƒƒ‚nƒtjk rÉ}|jtjkrq‚qÊxV|jj ƒD],}|j |kr|jj|j ƒPqqWtdj|ƒƒ‚nX|S(s0 Unregister a file object from being monitored. s{0!r} is not registered( R8tpopR:R;RtsocketRRtEBADFRBRR(RRRCR ((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyt unregisterÎs cCs¯y|j|j|ƒ}Wn&tk rBtdj|ƒƒ‚nX||jkrw|j|ƒ|j|||ƒ}n4||jkr«|jd|ƒ}||j|j |jj|jƒn|t@r^|jj|jƒn|S(N( RRWRFRDRYtaddRRERZ(RRR2R3RC((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyRF&s   cCsBtt|ƒj|ƒ}|jj|jƒ|jj|jƒ|S(N(RRWRJRYtdiscardRRZ(RRRC((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyRJ.scCstj||g|ƒS(s? Wrapper for select.select because timeout is a positional arg (R(RtrtwR"((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyt_select4sc Cst|jƒ r$t|jƒ r$gS|dkr6dn t|dƒ}g}t|jt|j|j|ƒ\}}}t|ƒ}t|ƒ}x|||BD]p}d}||kr½|t O}n||krÖ|t O}n|j |ƒ}|r˜|j |||j @fƒq˜q˜W|S(Ngi(R7RYRZRtmaxR!R_tTrueRXRDRERTtappendR2( RR"treadyR]R^RRR2RC((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyR8s$ !      !N( R R R?RRRFRJR_R(((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyRWs     tpollt PollSelectorcBsDeZdZd„Zdd„Zd„Zdd„Zdd„ZRS(s Poll-based selector cCs&tt|ƒjƒtjƒ|_dS(N(RReRRRdt_poll(R((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyRSscCsrtt|ƒj|||ƒ}d}|t@r>|tjO}n|t@rX|tjO}n|jj|j |ƒ|S(Ni( RReRFRDRtPOLLINREtPOLLOUTRfR(RRR2R3RCt event_mask((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyRFWs  cCs/tt|ƒj|ƒ}|jj|jƒ|S(N(RReRJRfR(RRRC((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyRJascCsM|dk r7|dkr!d}q7tj|dƒ}n|jj|ƒ}|S(sj Wrapper function for select.poll.poll() so that _syscall_wrapper can work with only seconds. ig@@N(RtmathtceilRfRd(RR"R.((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyt _wrap_pollfs    cCs§g}t|jtd|ƒ}x‚|D]z\}}d}|tj@rR|tO}n|tj@rm|tO}n|j|ƒ}|r%|j |||j @fƒq%q%W|S(NR"i( R!RlRaRRgRERhRDRTRbR2(RR"Rct fd_eventsRRiR2RC((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyRts  !N( R R R?RRRFRJRlR(((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyReQs    tepollt EpollSelectorcBsJeZdZd„Zd„Zdd„Zd„Zdd„Zd„Z RS(s Epoll-based selector cCs&tt|ƒjƒtjƒ|_dS(N(RRoRRRnt_epoll(R((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyRˆscCs |jjƒS(N(RpR(R((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyRŒscCsxtt|ƒj|||ƒ}d}|t@r>|tjO}n|t@rX|tjO}nt|j jt |j |ƒ|S(Ni( RRoRFRDRtEPOLLINREtEPOLLOUTR!RpR%R(RRR2R3RCt events_mask((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyRFs  cCsMtt|ƒj|ƒ}yt|jjt|jƒWntk rHnX|S(N(RRoRJR!RpR%RR(RRRC((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyRJ™s  c Cs|dk rG|dkr!d}ntj|dƒd}t|ƒ}nd}tt|jƒdƒ}g}t|jj t d|d|ƒ}x‚|D]z\}}d}|t j @rÀ|t O}n|t j@rÛ|tO}n|j|ƒ}|r“|j|||j@fƒq“q“W|S( Nigg@@gü©ñÒMbP?gð¿iR"t maxevents(RRjRkR&R`R7R8R!RpRdRaRRqRERrRDRTRbR2( RR"t max_eventsRcRmRRiR2RC((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyR¢s*      !cCs$|jjƒtt|ƒjƒdS(N(RpRORRo(R((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyROÃs N( R R R?RRRRFRJRRO(((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyRo†s   !tkqueuetKqueueSelectorcBsJeZdZd„Zd„Zdd„Zd„Zdd„Zd„Z RS(s Kqueue / Kevent-based selector cCs&tt|ƒjƒtjƒ|_dS(N(RRwRRRvt_kqueue(R((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyRËscCs |jjƒS(N(RxR(R((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyRÏscCs¶tt|ƒj|||ƒ}|t@rhtj|jtjtjƒ}t |j j t |gddƒn|t @r²tj|jtjtjƒ}t |j j t |gddƒn|S(Ni(RRwRFRDRtkeventRtKQ_FILTER_READt KQ_EV_ADDR!RxtcontrolR%REtKQ_FILTER_WRITE(RRR2R3RCRy((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyRFÒs   "   "cCsætt|ƒj|ƒ}|jt@r}tj|jtjtj ƒ}y#t |j j t |gddƒWq}tk ryq}Xn|jt@râtj|jtjtj ƒ}y#t |j j t |gddƒWqâtk rÞqâXn|S(Ni(RRwRJR2RDRRyRRzt KQ_EV_DELETER!RxR|R%RRER}(RRRCRy((sF/usr/lib/python2.7/site-packages/pip/_vendor/urllib3/util/selectors.pyRJäs$   #    # c Cs9|dk rt|dƒ}nt|jƒd}i}t|jjtd||ƒ}xÑ|D]É}|j}|j }d}|t j kr–|t O}n|t j kr²|tO}n|j|ƒ} | r\| j|kró| || j@f|| jsF           8ˆ14BR