Sindbad~EG File Manager

Current Path : /lib/python3.6/site-packages/vdo/utils/__pycache__/
Upload File :
Current File : //lib/python3.6/site-packages/vdo/utils/__pycache__/FileUtils.cpython-36.pyc

3

x?ag11�@s�dZddlmZddlmZddlmZddlmZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlmZdd	lmZmZejd
�Gdd�de�ZGd
d�de�ZGdd�de�ZGdd�de�ZdS)z�

  FileUtils - Provides dmmgmnt file-related capabilities.

  $Id: //eng/vdo-releases/aluminum/src/python/vdo/utils/FileUtils.py#4 $

�)�absolute_import)�division)�print_function)�unicode_literalsN�)�Command)�Timeout�TimeoutErrorZutilscs`eZdZdZejd�Zedd��Z�fdd�Z	dd�Z
d	d
�Zedd��Zej
d
d��Z�ZS)�FileBasez�The FileBase object; provides basic file control.

  Class attributes:
    log (logging.Logger) - logger for this class
  Attributes:
    None
  zutils.FileBasecCs|jS)N)�_FileBase__filePath)�self�r
�/usr/lib/python3.6/FileUtils.py�path=sz
FileBase.pathcs.tt|�j�tjj|�|_|jdd�|_dS)z:
    Arguments:
      None
    Returns:
      Nothing
    �fdN)	�superr
�__init__�osr�realpathr�get�
_FileBase__fd)r�filePath�args�kwargs)�	__class__r
rrDszFileBase.__init__cCs|S)Nr
)rr
r
r�	__enter__PszFileBase.__enter__cCsdS)NFr
)r�
exceptionType�exceptionValue�	tracebackr
r
r�__exit__TszFileBase.__exit__cCs|jS)N)r)rr
r
r�_fd[szFileBase._fdcCs
||_dS)N)r)r�valuer
r
rr bs)�__name__�
__module__�__qualname__�__doc__�logging�	getLogger�log�propertyrrrrr �setter�
__classcell__r
r
)rrr
0s
r
cs>eZdZdZejd�Z�fdd�Z�fdd�Zdd�Z	�Z
S)	�	FileTouchz�The FileTouch object; touches the file.

  Class attributes:
    log (logging.Logger) - logger for this class
  Attributes:
    None
  zutils.FileTouchcstt|�j|f|�|�dS)z:
    Arguments:
      None
    Returns:
      Nothing
    N)rr,r)rrrr)rr
rr|szFileTouch.__init__csjtt|�j�|jdkrftjj|j�}tj|tj�sNt	dddd|g�}|j
�tj|jtj�sf|j�|S)z0Make certain the file exists and return ourself.N�mkdirz-pz-mZ755)rr,rr rr�dirname�access�F_OKr�run�_createFile)rZdirPath�cmd)rr
rr�s
zFileTouch.__enter__cCstd|jg�}|j�dS)zCreates the targe file.ZtouchN)rrr1)rr3r
r
rr2�szFileTouch._createFile)r"r#r$r%r&r'r(rrr2r+r
r
)rrr,ks

	
r,cs�eZdZdZejd�Zedd��Zdd�Z	d%dd	�Z
d'd
d�Zd(d
d�Ze
jfdd�Zd)dd�Zdd�Zdd�Zdd�ZeZ�fdd�Z�fdd�Zd*�fdd�	Zd d!�Zed"d#��Z�ZS)+�FileOpenz�The FileOpen object; provides basic access to a file.

  Class attributes:
    log (logging.Logger) - logger for this class
  Attributes:
    None
  zutils.FileOpencCs|jS)N)�_FileOpen__file)rr
r
r�file�sz
FileOpen.filecCs|jj�dS)N)r6�flush)rr
r
rr7�szFileOpen.flushrcCs|jj|�S)N)r6�read)r�
numberOfBytesr
r
rr8�sz
FileOpen.readcCs|jj|�S)N)r6�readline)rr9r
r
rr:�szFileOpen.readlineNcCs"|dkr|jj�S|jj|�SdS)N)r6�	readlines)rZnumberOfBytesHintr
r
rr;�s
zFileOpen.readlinescCs|jj||�dS)N)r6�seek)r�offset�whencer
r
rr<�sz
FileOpen.seekcCs$|dkr|jj�n|jj|�dS)N)r6�truncate)r�sizer
r
rr?�szFileOpen.truncatecCs|jj|�dS)N)r6�write)r�stringr
r
rrA�szFileOpen.writecCs|jj|�dS)N)r6Z	writeline)rZsequenceOfStringsr
r
r�
writelines�szFileOpen.writelinescCs
t|j�S)N)�nextr6)rr
r
r�__next__�szFileOpen.__next__cs@tt|�j�|jdkr*tj|j|j�|_tj|j|j	�|_
|S)z!Open the file and return ourself.N)rr4rr r�openr�_osMode�fdopen�_FileOpen__moder5)r)rr
rr�s

zFileOpen.__enter__cs|jj�tt|�j|||�S)z Close the file.)r6�closerr4r)rrrr)rr
rr�s
zFileOpen.__exit__�rcs�tt|�j|f|�|�d}t|�dkr@d|dd�kr@tj}n4|ddkrTtj}n |ddkrntjtjB}ntj}|ddkr�|tj	B}d|_
||_||_dS)z:
    Arguments:
      None
    Returns:
      Nothing
    Nr�+rrK�w�a)
rr4r�lenr�O_RDWR�O_RDONLY�O_WRONLY�O_TRUNC�O_APPENDr5rI�_FileOpen__osMode)rr�moderrZosMode)rr
rrs
zFileOpen.__init__cCs|S)Nr
)rr
r
r�__iter__szFileOpen.__iter__cCs|jS)N)rU)rr
r
rrG$szFileOpen._osMode���)rXrX)rX)N)N)rK)r"r#r$r%r&r'r(r)r6r7r8r:r;r�SEEK_SETr<r?rArCrErDrrrrWrGr+r
r
)rrr4�s$




	r4csDeZdZdZejd�Zd
�fdd�	Z�fdd�Z�fdd	�Z	�Z
S)�FileLockaThe FileLock object; a context manager providing interlocked access on
  a file.

  The file is created, if necessary.

  Class attributes:
    log (logging.Logger) - logger for this class
  Attributes:
    _timeout - timeout in seconds (None = no timeout)
  zutils.FileLockNcstt|�j||�||_dS)z�
    Arguments:
      filePath - (str) path to file
      mode - (str) open mode
      timeout - (int) timeout in seconds; may be None
    Returns:
      Nothing
    N)rrZr�_timeout)rrrVZtimeoutrr)rr
rrBs	zFileLock.__init__c
s�tt|�j�|jtjkr&tj}d}n
tj}d}|j	dk	r�|j
jdj|j
|j	|d��t|j	td�j|j
|j	d���tj|j|�WdQRXn&|j
jdj|j
|d	��tj|j|�|S)
z_If the open mode is read-only the file is locked shared else it is
    locked exclusively.
    ZsharedZ	exclusiveNz'attempting to lock {f} in {s}s mode {m})�f�s�mz!Could not lock {f} in {s} seconds)r\r]zattempting to lock {f} mode {m})r\r^)rrZrrGrrQ�fcntlZLOCK_SHZLOCK_EXr[r(�debug�formatrr�_�flockr6)rZ	flockModeZlockModeString)rr
rrOs(





zFileLock.__enter__csBtj|jtj�|tk	r.|jjdj|jd��t	t
|�j|||�S)z Unlocks and closes the file.zreleased lock {f})r\)r_rcr6ZLOCK_UNr	r(r`rarrrZr)rrrr)rr
rrlszFileLock.__exit__)N)r"r#r$r%r&r'r(rrrr+r
r
)rrrZ.s


	
rZ)r%Z
__future__rrrr�errnor_�gettextZgrpr&r�statZtempfileZtimerrr	Zinstall�objectr
r,r4rZr
r
r
r�<module>s*
;=

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists