f  ddlZGddZy)NceZdZdZdZdej fdZedZedZ edZ dZ d Z d Z d Zd Zd ZdZdZdZdZdZdZdZdZy)TransportSocketzA socket-like wrapper for exposing real transport sockets. These objects can be safely returned by APIs like `transport.get_extra_info('socket')`. All potentially disruptive operations (like "socket.close()") are banned. _socksockc||_yNr)selfrs %/usr/lib/python3.12/asyncio/trsock.py__init__zTransportSocket.__init__s  c.|jjSr )rfamilyr s r rzTransportSocket.familyszz   r c.|jjSr )rtypers r rzTransportSocket.typeszzr c.|jjSr )rprotors r rzTransportSocket.protoszzr crd|jd|jd|jd|j}|jdk7r4 |j }|r|d|} |j}|r|d|}|dS#t j $rY4wxYw#t j $rY3wxYw) Nz)filenorrr getsocknamesocketerror getpeername)r sladdrraddrs r __repr__zTransportSocket.__repr__s*4;;=/:kk_GDII=9ZZL " ;;=B  ((*#XeW-A ((*#XeW-AAw<<   <<  s$B)B BB B65B6ctd)Nz/Cannot serialize asyncio.TransportSocket object) TypeErrorrs r __getstate__zTransportSocket.__getstate__5sIJJr c6|jjSr )rrrs r rzTransportSocket.fileno8szz  ""r c6|jjSr )rduprs r r&zTransportSocket.dup;szz~~r c6|jjSr )rget_inheritablers r r(zTransportSocket.get_inheritable>szz))++r c:|jj|yr )rshutdown)r hows r r*zTransportSocket.shutdownAs C r c:|jj|i|Sr )r getsockoptr argskwargss r r-zTransportSocket.getsockoptFs$tzz$$d5f55r c<|jj|i|yr )r setsockoptr.s r r2zTransportSocket.setsockoptIs t.v.r c6|jjSr )rrrs r rzTransportSocket.getpeernameLzz%%''r c6|jjSr )rrrs r rzTransportSocket.getsocknameOr4r c6|jjSr )r getsockbynamers r r7zTransportSocket.getsockbynameRszz''))r c$|dk(rytd)Nrzr r rrsIV]]!!  .K# ,! 6/((*L Cr r)rrr>r r rIs ^C^Cr