3 L]6@sddlZddlZddlZddlmZddlmZmZddlm Z ddl m Z m Z e dd\ZZZZZZZZZZZZZZZZZZZ Z!e dd \Z"Z#Z$Z%Z&e d d \Z'Z(dZ)e dd \Z*Z+Z,Z-Z.Z/Z0Z1d ddddddddg Z2dZ3dZ4dZ5dZ6dZ7dZ8dZ9ededededed ed!ed"ed#ed$ed%ed&ed'ed(ed)ed*ed+ed,ed-e d.e!d/e"d0e#d1e$d2e%d3e&d4e'd5e(d6iZ:Gd7d8d8e;ZdS);N)util)asbytesDEBUG)Message)byte_chrbyte_ordej ZSuccessz End of filez No such filezPermission deniedZFailurez Bad messagez No connectionzConnection lostzOperation unsupported initversionopenclosereadwritelstatfstatZsetstatZfsetstatZopendirZreaddirremovemkdirrmdirrealpathstatrenamereadlinksymlinkstatushandledatanameattrsextendedZextended_replyc@s eZdZdS) SFTPErrorN)__name__ __module__ __qualname__r/r/3/tmp/pip-install-wfra5znf/paramiko/paramiko/sftp.pyr+xsr+c@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS)BaseSFTPcCstjd|_d|_d|_dS)Nz paramiko.sftpF)rZ get_loggerloggersock ultra_debug)selfr/r/r0__init__}s zBaseSFTP.__init__cCsL|jttjdt|j\}}|tkr0tdtjd|ddd}|S)Nz>IzIncompatible sftp protocolrr) _send_packetCMD_INITstructpack_VERSION _read_packet CMD_VERSIONr+unpack)r5tr'rr/r/r0 _send_versions  zBaseSFTP._send_versioncCsf|j\}}|tkrtdtjd|ddd}ddg}t}|jt|j||j t ||S)NzIncompatible sftp protocolz>Irrz check-filezmd5,sha1) r<r8r+r9r>rZadd_intr;addr7r=)r5r?r'rZextension_pairsmsgr/r/r0_send_server_versions    zBaseSFTP._send_server_versioncGs|jj||f|dS)N)r2log)r5levelrBargsr/r/r0_logsz BaseSFTP._logcCsLxFt|dkrF|jj|}|dkr(t|t|kr8dS||d}qWdS)Nr)lenr3sendEOFError)r5outnr/r/r0 _write_alls  zBaseSFTP._write_allcCst}x|dkrt|jtjrZxFtj|jgggd\}}}t|dkr |jj|}Pq Wn |jj|}t|dkrxt||7}|t|8}qW|S)Nrg?)bytes isinstancer3socketselectrHrecvrJ)r5rLrKrrerrxr/r/r0 _read_alls     zBaseSFTP._read_allcCsPt|}tjdt|dt||}|jrB|jttj |d|j |dS)Nz>IrzOUT: ) rr9r:rHrr4rGrr format_binaryrM)r5r?packetrKr/r/r0r7s  zBaseSFTP._send_packetcCs|jd}t|drtdtjd|d}|j|}|jrR|jttj |d|dkrvt|d}||ddfSdt fS)NrrzGarbage packet receivedz>IzIN: r) rUrr+r9r>r4rGrrrVrN)r5rTsizer'r?r/r/r0r<s    zBaseSFTP._read_packetN) r,r-r.r6r@rCrGrMrUr7r<r/r/r/r0r1|s  r1)?rQrPr9ZparamikorZparamiko.commonrrZparamiko.messagerZparamiko.py3compatrrranger8r=ZCMD_OPENZ CMD_CLOSEZCMD_READZ CMD_WRITEZ CMD_LSTATZ CMD_FSTATZ CMD_SETSTATZ CMD_FSETSTATZ CMD_OPENDIRZ CMD_READDIRZ CMD_REMOVEZ CMD_MKDIRZ CMD_RMDIRZ CMD_REALPATHZCMD_STATZ CMD_RENAMEZ CMD_READLINKZ CMD_SYMLINKZ CMD_STATUSZ CMD_HANDLEZCMD_DATAZCMD_NAMEZ CMD_ATTRSZ CMD_EXTENDEDZCMD_EXTENDED_REPLYZSFTP_OKZSFTP_EOFZSFTP_NO_SUCH_FILEZSFTP_PERMISSION_DENIEDZ SFTP_FAILUREZSFTP_BAD_MESSAGEZSFTP_NO_CONNECTIONZSFTP_CONNECTION_LOSTZSFTP_OP_UNSUPPORTEDZ SFTP_DESCZSFTP_FLAG_READZSFTP_FLAG_WRITEZSFTP_FLAG_APPENDZSFTP_FLAG_CREATEZSFTP_FLAG_TRUNCZSFTP_FLAG_EXCLr;Z CMD_NAMES Exceptionr+objectr1r/r/r/r0sp  2