HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: sport3497 (1034)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/lib64/python3.10/site-packages/paramiko/__pycache__/sftp_attr.cpython-310.pyc
o

�hB �@s:ddlZddlZddlmZmZmZmZGdd�d�ZdS)�N)�	x80000000�o700�o70�	xffffffffc@s�eZdZdZdZdZdZdZeZ	dd�Z
edd	d
��Zdd�Z
edd
d��Zdd�Zdd�Zdd�Zeddd��Zdd�Zdd�ZdS)�SFTPAttributesai
    Representation of the attributes of a file (or proxied file) for SFTP in
    client or server mode.  It attempts to mirror the object returned by
    `os.stat` as closely as possible, so it may have the following fields,
    with the same meanings as those returned by an `os.stat` object:

        - ``st_size``
        - ``st_uid``
        - ``st_gid``
        - ``st_mode``
        - ``st_atime``
        - ``st_mtime``

    Because SFTP allows flags to have other arbitrary named attributes, these
    are stored in a dict named ``attr``.  Occasionally, the filename is also
    stored, in ``filename``.
    ����cCs4d|_d|_d|_d|_d|_d|_d|_i|_dS)zX
        Create a new (empty) SFTPAttributes object.  All fields will be empty.
        rN)�_flags�st_size�st_uid�st_gid�st_mode�st_atime�st_mtime�attr��self�r�E/usr/local/CyberCP/lib/python3.10/site-packages/paramiko/sftp_attr.py�__init__1s
zSFTPAttributes.__init__NcCsH|�}|j|_|j|_|j|_|j|_|j|_|j|_|dur"||_|S)a`
        Create an `.SFTPAttributes` object from an existing ``stat`` object (an
        object returned by `os.stat`).

        :param object obj: an object returned by `os.stat` (or equivalent).
        :param str filename: the filename associated with this file.
        :return: new `.SFTPAttributes` object with the same attribute fields.
        N)rr
rrrr�filename)�cls�objrrrrr�	from_stat>s
zSFTPAttributes.from_statcCsd�|���S)Nz<SFTPAttributes: {}>)�format�
_debug_strrrrr�__repr__SszSFTPAttributes.__repr__cCs0|�}|�|�|dur||_|dur||_|S�N)�_unpackr�longname)r�msgrr!rrrr�	_from_msgWs
zSFTPAttributes._from_msgcCs�|��|_|j|j@r|��|_|j|j@r |��|_|��|_|j|j@r+|��|_	|j|j
@r;|��|_|��|_|j|j
@rU|��}t|�D]
}|��|j|��<qIdSdSr)�get_intr�	FLAG_SIZE�	get_int64r�FLAG_UIDGIDr
r�FLAG_PERMISSIONSr�FLAG_AMTIMErr�
FLAG_EXTENDED�range�
get_stringr)rr"�count�irrrr as"






�zSFTPAttributes._unpackcCstd|_|jdur|j|jO_|jdur"|jdur"|j|jO_|jdur/|j|jO_|jdurA|j	durA|j|j
O_t|j�dkrP|j|j
O_|�|j�|j|j@rb|�|j�|j|j@rt|�|j�|�|j�|j|j@r�|�|j�|j|j
@r�|�t|j��|�t|j	��|j|j
@r�|�t|j��|j��D]\}}|�|�|�|�q�dS)Nr)rrr%r
rr'rr(rrr)�lenrr*�add_int�	add_int64�int�items�
add_string)rr"�key�valrrr�_packrs8


zSFTPAttributes._packcCs�d}|jdur|d�|j�7}|jdur#|jdur#|d�|j|j�7}|jdur3|dt|j�d7}|jdurG|jdurG|d�|j|j�7}|j�	�D]\}}|d�t
|�|�7}qL|d7}|S)	Nz[ zsize={} zuid={} gid={} zmode=� zatime={} mtime={} z
"{}"={!r} �])rrr
rr�octrrrr3�str)r�out�k�vrrrr�s

zSFTPAttributes._debug_strFcCsX|rd}d|d?d|d?d@}|r |d||d@7}|S|d||d@7}|S)Nrz-rz-wrz-xTtz-xSsr)�n�suid�stickyr<rrr�_rwx�s�zSFTPAttributes._rwxc	Cs�|jdurxt�|j�}|tjkrd}n2|tjkrd}n*|tjkr#d}n"|tjkr+d}n|tjkr3d}n|tjkr;d}n
|tj	krCd}nd	}||�
|jt@d
?|jtj@�7}||�
|jt
@d?|jtj@�7}||�
|jd@|jtj@d
�7}nd}|jdus�|jtkr�d}nt�|j�}tt��|j�dkr�t�d|�}nt�d|�}t|dd	�}|j}|j}|j}|dur�d}|dur�d}|dur�d}d||||||fS)z=create a unix-style long description of the file (like ls -l)N�p�c�d�b�-�l�s�?���Tz
?---------z(unknown date)iN�z%d %b %Yz%d %b %H:%Mrrz%s   1 %-8d %-8d %8d %-12s %s)r�stat�S_IFMT�S_IFIFO�S_IFCHR�S_IFDIR�S_IFBLK�S_IFREG�S_IFLNK�S_IFSOCKrBr�S_ISUIDr�S_ISGID�S_ISVTXrr�time�	localtime�abs�strftime�getattrr
rr)	r�kind�ks�datestr�
time_tupler�uid�gid�sizerrr�__str__�sf







����zSFTPAttributes.__str__cCst|���Sr)r;�encoderrrr�asbytes�szSFTPAttributes.asbytesr)NN)F)�__name__�
__module__�__qualname__�__doc__r%r'r(r)rr*r�classmethodrrr#r r7r�staticmethodrBrfrhrrrrrs(
	
Cr)rNrZ�paramiko.commonrrrrrrrrr�<module>s