� ��^c@s>dZddlZddlmZdddddd�ZdS(s� backports.makefile ~~~~~~~~~~~~~~~~~~ Backports the Python 3 ``socket.makefile`` method for use with anything that wants to create a "fake" socket object. i����N(tSocketIOtrc Cs�t|�dddhks1td|f��nd|k}d|kpM| }|sb|sbt�d|k}d} |r�| d7} n|r�| d7} nt|| �} |jd7_|d kr�d}n|dkr�tj}n|dkr |std ��n| S|r.|r.tj| | |�} n9|rItj | |�} n|sUt�tj | |�} |rq| Stj | |||�} || _ | S( s: Backport of ``socket.makefile`` from Python 3.5. Rtwtbs&invalid mode %r (only r, w, b allowed)tii����is!unbuffered streams must be binaryN( tsett ValueErrortAssertionErrorRt_makefile_refstNonetiotDEFAULT_BUFFER_SIZEtBufferedRWPairtBufferedReadertBufferedWritert TextIOWrappertmode( tselfRt bufferingtencodingterrorstnewlinetwritingtreadingtbinarytrawmodetrawtbufferttext((sD/tmp/pip-build-1THPZW/urllib3/urllib3/packages/backports/makefile.pytbackport_makefiles@            (t__doc__R tsocketRR R(((sD/tmp/pip-build-1THPZW/urllib3/urllib3/packages/backports/makefile.pyts