3 nf·\°ã@s&dZddlZddlmZddd„ZdS)z� backports.makefile ~~~~~~~~~~~~~~~~~~ Backports the Python 3 ``socket.makefile`` method for use with anything that wants to create a "fake" socket object. éN)ÚSocketIOÚrc Csüt|ƒdddhks td|fƒ‚d|k}d|kp4| }d|k}d} |rN| d7} |rZ| d7} t|| ƒ} |jd7_|dkr~d }|dkrŒtj}|dkr¤|s td ƒ‚| S|r¼|r¼tj| | |ƒ} n|rÎtj| |ƒ} n tj| |ƒ} |râ| Stj | |||ƒ} || _ | S) z: Backport of ``socket.makefile`` from Python 3.5. rÚwÚbz&invalid mode %r (only r, w, b allowed)ÚéNrz!unbuffered streams must be binaryéÿÿÿÿ) ÚsetÚ ValueErrorrZ_makefile_refsÚioÚDEFAULT_BUFFER_SIZEÚBufferedRWPairÚBufferedReaderÚBufferedWriterÚ TextIOWrapperÚmode) ÚselfrÚ bufferingÚencodingÚerrorsÚnewlineZwritingZreadingZbinaryZrawmodeÚrawÚbufferÚtext©rú/usr/lib/python3.6/makefile.pyÚbackport_makefiles>   r)rNNNN)Ú__doc__r ZsocketrrrrrrÚs