/opt/alt/python34/lib64/python3.4/__pycache__
NameSizeModeActions
abc.cpython-34.pyc78770644editdlrm
abc.cpython-34.pyo78270644editdlrm
aifc.cpython-34.pyc279120644editdlrm
aifc.cpython-34.pyo279120644editdlrm
antigravity.cpython-34.pyc8470644editdlrm
antigravity.cpython-34.pyo8470644editdlrm
argparse.cpython-34.pyc658740644editdlrm
argparse.cpython-34.pyo657150644editdlrm
ast.cpython-34.pyc123600644editdlrm
ast.cpython-34.pyo123600644editdlrm
asynchat.cpython-34.pyc83590644editdlrm
asynchat.cpython-34.pyo83590644editdlrm
asyncore.cpython-34.pyc179630644editdlrm
asyncore.cpython-34.pyo179630644editdlrm
base64.cpython-34.pyc182970644editdlrm
base64.cpython-34.pyo180990644editdlrm
bdb.cpython-34.pyc186940644editdlrm
bdb.cpython-34.pyo186940644editdlrm
binhex.cpython-34.pyc135410644editdlrm
binhex.cpython-34.pyo135410644editdlrm
bisect.cpython-34.pyc28580644editdlrm
bisect.cpython-34.pyo28580644editdlrm
bz2.cpython-34.pyc151560644editdlrm
bz2.cpython-34.pyo151560644editdlrm
calendar.cpython-34.pyc275670644editdlrm
calendar.cpython-34.pyo275670644editdlrm
cgi.cpython-34.pyc298270644editdlrm
cgi.cpython-34.pyo298270644editdlrm
cgitb.cpython-34.pyc110640644editdlrm
cgitb.cpython-34.pyo110640644editdlrm
chunk.cpython-34.pyc52700644editdlrm
chunk.cpython-34.pyo52700644editdlrm
cmd.cpython-34.pyc134560644editdlrm
cmd.cpython-34.pyo134560644editdlrm
code.cpython-34.pyc97020644editdlrm
code.cpython-34.pyo97020644editdlrm
codecs.cpython-34.pyc351320644editdlrm
codecs.cpython-34.pyo351320644editdlrm
codeop.cpython-34.pyc64660644editdlrm
codeop.cpython-34.pyo64660644editdlrm
colorsys.cpython-34.pyc36590644editdlrm
colorsys.cpython-34.pyo36590644editdlrm
compileall.cpython-34.pyc73780644editdlrm
compileall.cpython-34.pyo73780644editdlrm
configparser.cpython-34.pyc448820644editdlrm
configparser.cpython-34.pyo448820644editdlrm
contextlib.cpython-34.pyc103700644editdlrm
contextlib.cpython-34.pyo103700644editdlrm
copy.cpython-34.pyc80610644editdlrm
copy.cpython-34.pyo79750644editdlrm
copyreg.cpython-34.pyc46070644editdlrm
copyreg.cpython-34.pyo45660644editdlrm
cProfile.cpython-34.pyc46220644editdlrm
cProfile.cpython-34.pyo46220644editdlrm
crypt.cpython-34.pyc24370644editdlrm
crypt.cpython-34.pyo24370644editdlrm
csv.cpython-34.pyc129970644editdlrm
csv.cpython-34.pyo129970644editdlrm
datetime.cpython-34.pyc562640644editdlrm
datetime.cpython-34.pyo542960644editdlrm
decimal.cpython-34.pyc1725260644editdlrm
decimal.cpython-34.pyo1725260644editdlrm
difflib.cpython-34.pyc605150644editdlrm
difflib.cpython-34.pyo604670644editdlrm
dis.cpython-34.pyc145870644editdlrm
dis.cpython-34.pyo145870644editdlrm
doctest.cpython-34.pyc801100644editdlrm
doctest.cpython-34.pyo798370644editdlrm
dummy_threading.cpython-34.pyc12140644editdlrm
dummy_threading.cpython-34.pyo12140644editdlrm
enum.cpython-34.pyc163390644editdlrm
enum.cpython-34.pyo163390644editdlrm
filecmp.cpython-34.pyc91200644editdlrm
filecmp.cpython-34.pyo91200644editdlrm
fileinput.cpython-34.pyc142970644editdlrm
fileinput.cpython-34.pyo142970644editdlrm
fnmatch.cpython-34.pyc31460644editdlrm
fnmatch.cpython-34.pyo31460644editdlrm
formatter.cpython-34.pyc189160644editdlrm
formatter.cpython-34.pyo189160644editdlrm
fractions.cpython-34.pyc192700644editdlrm
fractions.cpython-34.pyo192700644editdlrm
ftplib.cpython-34.pyc333220644editdlrm
ftplib.cpython-34.pyo333220644editdlrm
functools.cpython-34.pyc236140644editdlrm
functools.cpython-34.pyo236140644editdlrm
genericpath.cpython-34.pyc34930644editdlrm
genericpath.cpython-34.pyo34930644editdlrm
getopt.cpython-34.pyc67330644editdlrm
getopt.cpython-34.pyo66910644editdlrm
getpass.cpython-34.pyc46240644editdlrm
getpass.cpython-34.pyo46240644editdlrm
gettext.cpython-34.pyc151740644editdlrm
gettext.cpython-34.pyo151740644editdlrm
glob.cpython-34.pyc28800644editdlrm
glob.cpython-34.pyo28800644editdlrm
gzip.cpython-34.pyc194460644editdlrm
gzip.cpython-34.pyo193920644editdlrm
hashlib.cpython-34.pyc79440644editdlrm
hashlib.cpython-34.pyo79440644editdlrm
heapq.cpython-34.pyc139100644editdlrm
heapq.cpython-34.pyo139100644editdlrm
hmac.cpython-34.pyc51460644editdlrm
hmac.cpython-34.pyo51460644editdlrm
imaplib.cpython-34.pyc434790644editdlrm
imaplib.cpython-34.pyo409550644editdlrm
imghdr.cpython-34.pyc41430644editdlrm
imghdr.cpython-34.pyo41430644editdlrm
imp.cpython-34.pyc98670644editdlrm
imp.cpython-34.pyo98670644editdlrm
inspect.cpython-34.pyc763270644editdlrm
inspect.cpython-34.pyo760060644editdlrm
io.cpython-34.pyc34580644editdlrm
io.cpython-34.pyo34580644editdlrm
ipaddress.cpython-34.pyc629840644editdlrm
ipaddress.cpython-34.pyo629840644editdlrm
keyword.cpython-34.pyc19460644editdlrm
keyword.cpython-34.pyo19460644editdlrm
linecache.cpython-34.pyc31120644editdlrm
linecache.cpython-34.pyo31120644editdlrm
locale.cpython-34.pyc372760644editdlrm
locale.cpython-34.pyo372760644editdlrm
lzma.cpython-34.pyc159170644editdlrm
lzma.cpython-34.pyo159170644editdlrm
macpath.cpython-34.pyc60060644editdlrm
macpath.cpython-34.pyo60060644editdlrm
macurl2path.cpython-34.pyc21020644editdlrm
macurl2path.cpython-34.pyo21020644editdlrm
mailbox.cpython-34.pyc702880644editdlrm
mailbox.cpython-34.pyo701890644editdlrm
mailcap.cpython-34.pyc65440644editdlrm
mailcap.cpython-34.pyo65440644editdlrm
mimetypes.cpython-34.pyc168070644editdlrm
mimetypes.cpython-34.pyo168070644editdlrm
modulefinder.cpython-34.pyc173760644editdlrm
modulefinder.cpython-34.pyo172970644editdlrm
netrc.cpython-34.pyc42770644editdlrm
netrc.cpython-34.pyo42770644editdlrm
nntplib.cpython-34.pyc363100644editdlrm
nntplib.cpython-34.pyo363100644editdlrm
ntpath.cpython-34.pyc133050644editdlrm
ntpath.cpython-34.pyo133050644editdlrm
nturl2path.cpython-34.pyc17160644editdlrm
nturl2path.cpython-34.pyo17160644editdlrm
numbers.cpython-34.pyc126670644editdlrm
numbers.cpython-34.pyo126670644editdlrm
opcode.cpython-34.pyc51740644editdlrm
opcode.cpython-34.pyo51740644editdlrm
operator.cpython-34.pyc127780644editdlrm
operator.cpython-34.pyo127780644editdlrm
optparse.cpython-34.pyc515370644editdlrm
optparse.cpython-34.pyo514600644editdlrm
os.cpython-34.pyc295990644editdlrm
os.cpython-34.pyo295990644editdlrm
pathlib.cpython-34.pyc404830644editdlrm
pathlib.cpython-34.pyo404830644editdlrm
pdb.cpython-34.pyc494720644editdlrm
pdb.cpython-34.pyo494060644editdlrm
pickle.cpython-34.pyc469840644editdlrm
pickle.cpython-34.pyo468380644editdlrm
pickletools.cpython-34.pyc702540644editdlrm
pickletools.cpython-34.pyo691670644editdlrm
pipes.cpython-34.pyc84310644editdlrm
pipes.cpython-34.pyo84310644editdlrm
pkgutil.cpython-34.pyc176000644editdlrm
pkgutil.cpython-34.pyo176000644editdlrm
platform.cpython-34.pyc311720644editdlrm
platform.cpython-34.pyo311720644editdlrm
plistlib.cpython-34.pyc301510644editdlrm
plistlib.cpython-34.pyo300680644editdlrm
poplib.cpython-34.pyc137540644editdlrm
poplib.cpython-34.pyo137540644editdlrm
posixpath.cpython-34.pyc98090644editdlrm
posixpath.cpython-34.pyo98090644editdlrm
pprint.cpython-34.pyc114600644editdlrm
pprint.cpython-34.pyo112950644editdlrm
profile.cpython-34.pyc151510644editdlrm
profile.cpython-34.pyo148980644editdlrm
pstats.cpython-34.pyc236750644editdlrm
pstats.cpython-34.pyo236750644editdlrm
pty.cpython-34.pyc42250644editdlrm
pty.cpython-34.pyo42250644editdlrm
pyclbr.cpython-34.pyc91920644editdlrm
pyclbr.cpython-34.pyo91920644editdlrm
pydoc.cpython-34.pyc909150644editdlrm
pydoc.cpython-34.pyo908540644editdlrm
py_compile.cpython-34.pyc68570644editdlrm
py_compile.cpython-34.pyo68570644editdlrm
queue.cpython-34.pyc92620644editdlrm
queue.cpython-34.pyo92620644editdlrm
quopri.cpython-34.pyc64460644editdlrm
quopri.cpython-34.pyo62360644editdlrm
random.cpython-34.pyc190590644editdlrm
random.cpython-34.pyo190590644editdlrm
re.cpython-34.pyc145500644editdlrm
re.cpython-34.pyo145500644editdlrm
reprlib.cpython-34.pyc58720644editdlrm
reprlib.cpython-34.pyo58720644editdlrm
rlcompleter.cpython-34.pyc56950644editdlrm
rlcompleter.cpython-34.pyo56950644editdlrm
runpy.cpython-34.pyc77530644editdlrm
runpy.cpython-34.pyo77530644editdlrm
sched.cpython-34.pyc65730644editdlrm
sched.cpython-34.pyo65730644editdlrm
selectors.cpython-34.pyc167440644editdlrm
selectors.cpython-34.pyo167440644editdlrm
shelve.cpython-34.pyc99550644editdlrm
shelve.cpython-34.pyo99550644editdlrm
shlex.cpython-34.pyc75180644editdlrm
shlex.cpython-34.pyo75180644editdlrm
shutil.cpython-34.pyc330150644editdlrm
shutil.cpython-34.pyo330150644editdlrm
site.cpython-34.pyc179710644editdlrm
site.cpython-34.pyo179710644editdlrm
smtpd.cpython-34.pyc256690644editdlrm
smtpd.cpython-34.pyo256690644editdlrm
smtplib.cpython-34.pyc331290644editdlrm
smtplib.cpython-34.pyo330550644editdlrm
sndhdr.cpython-34.pyc67690644editdlrm
sndhdr.cpython-34.pyo67690644editdlrm
socket.cpython-34.pyc181110644editdlrm
socket.cpython-34.pyo180610644editdlrm
socketserver.cpython-34.pyc232550644editdlrm
socketserver.cpython-34.pyo232550644editdlrm
sre_compile.cpython-34.pyc119350644editdlrm
sre_compile.cpython-34.pyo117780644editdlrm
sre_constants.cpython-34.pyc55810644editdlrm
sre_constants.cpython-34.pyo55810644editdlrm
sre_parse.cpython-34.pyc202380644editdlrm
sre_parse.cpython-34.pyo202380644editdlrm
ssl.cpython-34.pyc276080644editdlrm
ssl.cpython-34.pyo276080644editdlrm
stat.cpython-34.pyc35780644editdlrm
stat.cpython-34.pyo35780644editdlrm
statistics.cpython-34.pyc171580644editdlrm
statistics.cpython-34.pyo168560644editdlrm
string.cpython-34.pyc83760644editdlrm
string.cpython-34.pyo83760644editdlrm
stringprep.cpython-34.pyc136360644editdlrm
stringprep.cpython-34.pyo135730644editdlrm
struct.cpython-34.pyc3470644editdlrm
struct.cpython-34.pyo3470644editdlrm
subprocess.cpython-34.pyc433590644editdlrm
subprocess.cpython-34.pyo432460644editdlrm
sunau.cpython-34.pyc183090644editdlrm
sunau.cpython-34.pyo183090644editdlrm
symbol.cpython-34.pyc26620644editdlrm
symbol.cpython-34.pyo26620644editdlrm
symtable.cpython-34.pyc113050644editdlrm
symtable.cpython-34.pyo111830644editdlrm
sysconfig.cpython-34.pyc172870644editdlrm
sysconfig.cpython-34.pyo172870644editdlrm
tabnanny.cpython-34.pyc77490644editdlrm
tabnanny.cpython-34.pyo77490644editdlrm
tarfile.cpython-34.pyc680400644editdlrm
tarfile.cpython-34.pyo680400644editdlrm
telnetlib.cpython-34.pyc193940644editdlrm
telnetlib.cpython-34.pyo193940644editdlrm
tempfile.cpython-34.pyc215760644editdlrm
tempfile.cpython-34.pyo215760644editdlrm
textwrap.cpython-34.pyc138000644editdlrm
textwrap.cpython-34.pyo137140644editdlrm
this.cpython-34.pyc13160644editdlrm
this.cpython-34.pyo13160644editdlrm
threading.cpython-34.pyc389650644editdlrm
threading.cpython-34.pyo382520644editdlrm
timeit.cpython-34.pyc110620644editdlrm
timeit.cpython-34.pyo110620644editdlrm
token.cpython-34.pyc36150644editdlrm
token.cpython-34.pyo36150644editdlrm
tokenize.cpython-34.pyc199510644editdlrm
tokenize.cpython-34.pyo199010644editdlrm
trace.cpython-34.pyc241840644editdlrm
trace.cpython-34.pyo241270644editdlrm
traceback.cpython-34.pyc110910644editdlrm
traceback.cpython-34.pyo110910644editdlrm
tracemalloc.cpython-34.pyc171300644editdlrm
tracemalloc.cpython-34.pyo171300644editdlrm
tty.cpython-34.pyc11460644editdlrm
tty.cpython-34.pyo11460644editdlrm
types.cpython-34.pyc55600644editdlrm
types.cpython-34.pyo55600644editdlrm
uu.cpython-34.pyc40210644editdlrm
uu.cpython-34.pyo40210644editdlrm
uuid.cpython-34.pyc218640644editdlrm
uuid.cpython-34.pyo218020644editdlrm
warnings.cpython-34.pyc122680644editdlrm
warnings.cpython-34.pyo115360644editdlrm
wave.cpython-34.pyc191350644editdlrm
wave.cpython-34.pyo190740644editdlrm
weakref.cpython-34.pyc203450644editdlrm
weakref.cpython-34.pyo203080644editdlrm
webbrowser.cpython-34.pyc171320644editdlrm
webbrowser.cpython-34.pyo170930644editdlrm
xdrlib.cpython-34.pyc90020644editdlrm
xdrlib.cpython-34.pyo90020644editdlrm
zipfile.cpython-34.pyc458200644editdlrm
zipfile.cpython-34.pyo457710644editdlrm
_bootlocale.cpython-34.pyc10470644editdlrm
_bootlocale.cpython-34.pyo10160644editdlrm
_collections_abc.cpython-34.pyc239490644editdlrm
_collections_abc.cpython-34.pyo239490644editdlrm
_compat_pickle.cpython-34.pyc75010644editdlrm
_compat_pickle.cpython-34.pyo74270644editdlrm
_dummy_thread.cpython-34.pyc48250644editdlrm
_dummy_thread.cpython-34.pyo48250644editdlrm
_markupbase.cpython-34.pyc89320644editdlrm
_markupbase.cpython-34.pyo87450644editdlrm
_osx_support.cpython-34.pyc106300644editdlrm
_osx_support.cpython-34.pyo106300644editdlrm
_pyio.cpython-34.pyc649330644editdlrm
_pyio.cpython-34.pyo649070644editdlrm
_sitebuiltins.cpython-34.pyc36770644editdlrm
_sitebuiltins.cpython-34.pyo36770644editdlrm
_strptime.cpython-34.pyc157790644editdlrm
_strptime.cpython-34.pyo157790644editdlrm
_sysconfigdata.cpython-34.pyc227000644editdlrm
_sysconfigdata.cpython-34.pyo227000644editdlrm
_threading_local.cpython-34.pyc69460644editdlrm
_threading_local.cpython-34.pyo69460644editdlrm
_weakrefset.cpython-34.pyc84650644editdlrm
_weakrefset.cpython-34.pyo84650644editdlrm
__future__.cpython-34.pyc41680644editdlrm
__future__.cpython-34.pyo41680644editdlrm
__phello__.foo.cpython-34.pyc1340644editdlrm
__phello__.foo.cpython-34.pyo1340644editdlrm
Edit: /opt/alt/python34/lib64/python3.4/__pycache__/asyncore.cpython-34.pyo (17963B)
fR@sdZddlZddlZddlZddlZddlZddlZddlmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZee e eeeefZyeWnek riZYnXddZGdddeZeeefZdd Zd d Z d d Z!ddZ"ddddZ#ddddZ$e$Z%ddddddZ&GdddZ'Gddde'Z(ddZ)dddd Z*ej+d!krddl,Z,Gd"d#d#Z-Gd$d%d%e'Z.ndS)&aBasic infrastructure for asynchronous socket service clients and servers. There are only two ways to have a program on a single processor do "more than one thing at a time". Multi-threaded programming is the simplest and most popular way to do it, but there is another very different technique, that lets you have nearly all the advantages of multi-threading, without actually using multiple threads. it's really only practical if your program is largely I/O bound. If your program is CPU bound, then pre-emptive scheduled threads are probably what you really need. Network servers are rarely CPU-bound, however. If your operating system supports the select() system call in its I/O library (and nearly all do), then you can use it to juggle multiple communication channels at once; doing other work while your I/O is taking place in the "background." Although this strategy can seem strange and complex, especially at first, it is in many ways easier to understand and control than multi-threaded programming. The module documented here solves many of the difficult problems for you, making the task of building sophisticated high-performance network servers and clients a snap. N) EALREADY EINPROGRESS EWOULDBLOCK ECONNRESETEINVALENOTCONN ESHUTDOWNEISCONNEBADF ECONNABORTEDEPIPEEAGAIN errorcodec CsOytj|SWn7tttfk rJ|tkr>t|Sd|SYnXdS)NzUnknown error %s)osstrerror ValueError OverflowError NameErrorr)errr-/opt/alt/python34/lib64/python3.4/asyncore.py _strerrorDs  rc@seZdZdS)ExitNowN)__name__ __module__ __qualname__rrrrrLs rc Cs;y|jWn&tk r%Yn|jYnXdS)N)handle_read_event_reraised_exceptions handle_error)objrrrreadQs  r c Cs;y|jWn&tk r%Yn|jYnXdS)N)handle_write_eventrr)rrrrwriteYs  r"c Cs;y|jWn&tk r%Yn|jYnXdS)N)handle_expt_eventrr)rrrr _exceptionas  r$cCsyz|tj@r|jn|tj@r7|jn|tj@rQ|jn|tjtjBtj B@ry|j nWntt k r}z/|j dt kr|jn |j WYdd}~Xn&tk rYn|jYnXdS)Nr)selectPOLLINrPOLLOUTr!POLLPRIr#ZPOLLHUPZPOLLERRZPOLLNVAL handle_closeOSErrorargs _DISCONNECTEDrr)rflagserrr readwriteis"        r/gc Cs|dkrt}n|rg}g}g}xt|jD]v\}}|j}|j}|rz|j|n|r|j r|j|n|s|r@|j|q@q@Wg|ko|ko|knrtj|dSy%t j ||||\}}}Wnt k r/dSYnXx9|D]1}|j |}|dkr^q7nt |q7Wx9|D]1}|j |}|dkrqsnt |qsWx<|D]1}|j |}|dkrqnt|qWndS)N) socket_maplistitemsreadablewritableappend acceptingtimeZsleepr%InterruptedErrorgetr r"r$) timeoutmaprwr.fdrZis_rZis_wrrrpoll}sJ     ' %        r?c CsK|dkrt}n|dk r4t|d}ntj}|rGxt|jD]t\}}d}|jr|tjtjBO}n|j r|j r|tj O}n|rY|j ||qYqYWy|j|}Wnt k rg}YnXxE|D]:\}}|j|}|dkr3qnt||qWndS)Nir)r0intr%r?r1r2r3r&r(r4r6r'registerr8r9r/)r:r;Zpollsterr>rr-r<rrrpoll2s.        rBg>@FcCs|dkrt}n|r3ttdr3t}nt}|dkrbxJ|r^|||qHWn0x-|r|dkr||||d}qeWdS)Nr?r)r0hasattrr%rBr?)r:Zuse_pollr;countZpoll_funrrrloops      rFc@seZdZdZdZdZdZdZdZe dgZ ddddZ ddZ e Z ddd Zdd d Zejejd d ZdddZddZddZddZddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Z d(d)d*Z!d+d,Z"d-d.Z#d/d0Z$d1d2Z%d3d4Z&d5d6Z'd7d8Z(d9d:Z)d;d<Z*d=d>Z+d?d@Z,dAdBZ-dS)C dispatcherFNwarningcCs|dkrt|_n ||_d|_|r|jd|j||d|_y|j|_Wqtk r}z:|j dt t fkrd|_n|j |WYdd}~XqXn d|_ dS)NrTF)r0_map_fileno setblocking set_socket connectedZ getpeernameaddrr*r+rr del_channelsocket)selfsockr;rrrr__init__s         zdispatcher.__init__c Cs|jjd|jjg}|jr?|jr?|jdn|jrX|jdn|jdk ry|jd|jWqtk r|jt|jYqXnddj |t |fS)N.Z listeningrMz%s:%dz <%s at %#x> ) __class__rrr6rNr5rM TypeErrorreprjoinid)rQZstatusrrr__repr__s  zdispatcher.__repr__cCs)|dkr|j}n|||jrrrrOs      zdispatcher.del_channelcCs?||f|_tj||}|jd|j|dS)Nr)Zfamily_and_typerPrKrL)rQZfamilytyperRrrr create_sockets zdispatcher.create_socketcCs)||_|j|_|j|dS)N)rPfilenorJr\)rQrRr;rrrrL%s zdispatcher.set_socketc CsRy9|jjtjtj|jjtjtjdBWntk rMYnXdS)NrC)rPZ setsockopt SOL_SOCKETZ SO_REUSEADDR getsockoptr*)rQrrrset_reuse_addr+s   zdispatcher.set_reuse_addrcCsdS)NTr)rQrrrr3<szdispatcher.readablecCsdS)NTr)rQrrrr4?szdispatcher.writablecCs=d|_tjdkr-|dkr-d}n|jj|S)NTnt)r6rnamerPlisten)rQZnumrrrrfFs  zdispatcher.listencCs||_|jj|S)N)rNrPbind)rQrNrrrrgLs zdispatcher.bindcCsd|_d|_|jj|}|tttfksT|tkratj dkra||_ dS|dt fkr||_ |j nt |t|dS)NFTrccer)zntrh)rM connectingrPZ connect_exrrrrrrerNr handle_connect_eventr*r)rQZaddressrrrrconnectPs     zdispatcher.connectcCsy|jj\}}Wn]tk r1dSYnRtk rx}z(|jdtttfkrcdSWYdd}~Xn X||fSdS)Nr)rPacceptrWr*r+rr r )rQZconnrNwhyrrrrl^s zdispatcher.acceptcCsy|jj|}|SWn`tk r|}z@|jdtkrFdS|jdtkrg|jdSWYdd}~XnXdS)Nr)rPsendr*r+rr,r))rQdataresultrmrrrrnls zdispatcher.sendcCs~y.|jj|}|s)|jdS|SWnItk ry}z)|jdtkrd|jdSWYdd}~XnXdS)Nr)rPrecvr)r*r+r,)rQZ buffer_sizerormrrrrrys  zdispatcher.recvcCsd|_d|_d|_|j|jdk ry|jjWqtk r}z$|jdtt fkrynWYdd}~XqXndS)NFr) rMr6rirOrPcloser*r+rr )rQrmrrrrss    zdispatcher.closec Csyt|j|}Wn.tk rFtd|jj|fYn9Xdi|jjd6|d6}tj|tdd|SdS)Nz!%s instance has no attribute '%s'zA%(me)s.%(attr)s is deprecated; use %(me)s.socket.%(attr)s insteadmeattr stacklevel)getattrrPAttributeErrorrVrwarningswarnDeprecationWarning)rQruZretattrmsgrrr __getattr__s zdispatcher.__getattr__cCstjjdt|dS)Nzlog: %s )sysstderrr"str)rQmessagerrrlogszdispatcher.loginfocCs*||jkr&td||fndS)Nz%s: %s)ignore_log_typesprint)rQrr]rrrlog_infoszdispatcher.log_infocCsP|jr|jn6|jsB|jr5|jn|jn |jdS)N)r6 handle_acceptrMrirj handle_read)rQrrrrs      zdispatcher.handle_read_eventcCs_|jjtjtj}|dkr?t|t|n|jd|_d|_dS)NrTF) rPrar`SO_ERRORr*rhandle_connectrMri)rQrrrrrjs    zdispatcher.handle_connect_eventcCs=|jr dS|js/|jr/|jq/n|jdS)N)r6rMrirj handle_write)rQrrrr!s    zdispatcher.handle_write_eventcCsB|jjtjtj}|dkr4|jn |jdS)Nr)rPrar`rr) handle_expt)rQrrrrr#s  zdispatcher.handle_expt_eventc Csnt\}}}}yt|}Wndt|}YnX|jd||||fd|jdS)Nz)<__repr__(self) failed for object at %0x>z:uncaptured python exception, closing channel %s (%s:%s %s)error)compact_tracebackrXrZrr))rQZniltvtbinfoZ self_reprrrrrszdispatcher.handle_errorcCs|jdddS)Nz!unhandled incoming priority eventrH)r)rQrrrrszdispatcher.handle_exptcCs|jdddS)Nzunhandled read eventrH)r)rQrrrrszdispatcher.handle_readcCs|jdddS)Nzunhandled write eventrH)r)rQrrrrszdispatcher.handle_writecCs|jdddS)Nzunhandled connect eventrH)r)rQrrrrszdispatcher.handle_connectcCs,|j}|dk r(|j|ndS)N)rlhandle_accepted)rQZpairrrrrs  zdispatcher.handle_acceptcCs|j|jdddS)Nzunhandled accepted eventrH)rsr)rQrRrNrrrrs zdispatcher.handle_acceptedcCs|jdd|jdS)Nzunhandled close eventrH)rrs)rQrrrr)szdispatcher.handle_close).rrrdebugrMr6riclosingrN frozensetrrSr[__str__r\rOrPZAF_INETZ SOCK_STREAMr^rLrbr3r4rfrgrkrlrnrrrsr~rrrrjr!r#rrrrrrrr)rrrrrGsN                       rGc@sReZdZddddZddZddZdd Zd d ZdS) dispatcher_with_sendNcCs tj|||d|_dS)Nrq)rGrS out_buffer)rQrRr;rrrrSszdispatcher_with_send.__init__cCs?d}tj||jdd}|j|d|_dS)Nri)rGrnr)rQZnum_sentrrr initiate_sendsz"dispatcher_with_send.initiate_sendcCs|jdS)N)r)rQrrrrsz!dispatcher_with_send.handle_writecCs|j pt|jS)N)rMlenr)rQrrrr4szdispatcher_with_send.writablecCsA|jr#|jdt|n|j||_|jdS)Nz sending %s)rrrXrr)rQrorrrrn!s zdispatcher_with_send.send)rrrrSrrr4rnrrrrrs    rcCstj\}}}g}|s0tdnxD|rv|j|jjj|jjjt|j f|j }q3W~|d\}}}dj dd|D}|||f|||fS)Nztraceback does not existrCrUcSsg|]}d|qS)z [%s|%s|%s]r).0xrrr <s z%compact_traceback..) rexc_infoAssertionErrorr5tb_framef_code co_filenameco_namer tb_linenotb_nextrY)rrtbrfileZfunctionlinerrrrr+s    rcCs|dkrt}nxt|jD]}y|jWq(tk r}z'|jdtkrgn |ssnWYdd}~Xq(tk rYq(|snYq(Xq(W|jdS)Nr) r0r1valuesrsr*r+r rclear)r;Z ignore_allrrrr close_all?s    rposixc@sseZdZddZddZddZddZd d d ZeZeZ d d Z ddZ d S) file_wrappercCstj||_dS)N)rdupr>)rQr>rrrrSfszfile_wrapper.__init__cCs4|jdkr&tjd|tn|jdS)Nrzunclosed file %r)r>rzr{ResourceWarningrs)rQrrr__del__iszfile_wrapper.__del__cGstj|j|S)N)rr r>)rQr+rrrrrnszfile_wrapper.recvcGstj|j|S)N)rr"r>)rQr+rrrrnqszfile_wrapper.sendNcCs9|tjkr)|tjkr)| r)dStddS)Nrz-Only asyncore specific behaviour implemented.)rPr`rNotImplementedError)rQlevelZoptnameZbuflenrrrrats zfile_wrapper.getsockoptcCs0|jdkrdStj|jd|_dS)NrrCr)r>rrs)rQrrrrsszfile_wrapper.closecCs|jS)N)r>)rQrrrr_szfile_wrapper.fileno) rrrrSrrrrnrar r"rsr_rrrrras      rc@s+eZdZdddZddZdS)file_dispatcherNc Cstj|d|d|_y|j}Wntk r@YnX|j|tj|tjd}|tj B}tj|tj |dS)NTr) rGrSrMr_ryset_filefcntlZF_GETFLr O_NONBLOCKZF_SETFL)rQr>r;r-rrrrSs    zfile_dispatcher.__init__cCs/t||_|jj|_|jdS)N)rrPr_rJr\)rQr>rrrrszfile_dispatcher.set_file)rrrrSrrrrrrs  r)/__doc__r%rPrr7rzrerrnorrrrrrrr r r r r rrr,r0rr ExceptionrKeyboardInterrupt SystemExitrr r"r$r/r?rBZpoll3rFrGrrrrerrrrrrr/sB      X        *:  '