[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@13.59.217.1: ~ $
U

��UV�$�
@s�dZddlmZddlZddlZddlZddlZddlZeed�sJej	e_
eejd�sbejjej_
dddd	d
ddd
dddddg
ZGdd�de�ZGdd�de�ZGdd�de�ZGdd	�d	e�ZGdd
�d
e�ZGdd�de�ZGdd�de�ZGdd
�d
e�ZGdd�de�ZGdd�de�Zdd�Zd d�Zd!d�Zd"d�Zd(d#d�Zeed$��rjd%d&l m!Z"e"j#Z$nd%d'l m%Z&e&j'Z$e$Z(dS))a
lockfile.py - Platform-independent advisory file locks.

Requires Python 2.5 unless you apply 2.4.diff
Locking is done on a per-thread basis instead of a per-process basis.

Usage:

>>> lock = LockFile('somefile')
>>> try:
...     lock.acquire()
... except AlreadyLocked:
...     print 'somefile', 'is locked already.'
... except LockFailed:
...     print 'somefile', 'can\'t be locked.'
... else:
...     print 'got lock'
got lock
>>> print lock.is_locked()
True
>>> lock.release()

>>> lock = LockFile('somefile')
>>> print lock.is_locked()
False
>>> with lock:
...    print lock.is_locked()
True
>>> print lock.is_locked()
False

>>> lock = LockFile('somefile')
>>> # It is okay to lock twice from the same thread...
>>> with lock:
...     lock.acquire()
...
>>> # Though no counter is kept, so you can't unlock multiple times...
>>> print lock.is_locked()
False

Exceptions:

    Error - base class for other exceptions
        LockError - base class for all locking exceptions
            AlreadyLocked - Another thread or process already holds the lock
            LockFailed - Lock failed for some other reason
        UnlockError - base class for all unlocking exceptions
            AlreadyUnlocked - File was not locked.
            NotMyLock - File was locked but not by the current thread/process
�)�absolute_importN�current_thread�get_name�Error�	LockError�LockTimeout�
AlreadyLocked�
LockFailed�UnlockError�	NotLocked�	NotMyLock�LinkFileLock�
MkdirFileLock�SQLiteFileLock�LockBase�lockedc@seZdZdZdS)rzw
    Base class for other exceptions.

    >>> try:
    ...   raise Error
    ... except Exception:
    ...   pass
    N��__name__�
__module__�__qualname__�__doc__�rr�/__init__.pyrJsc@seZdZdZdS)rz�
    Base class for error arising from attempts to acquire the lock.

    >>> try:
    ...   raise LockError
    ... except Error:
    ...   pass
    NrrrrrrVsc@seZdZdZdS)rz�Raised when lock creation fails within a user-defined period of time.

    >>> try:
    ...   raise LockTimeout
    ... except LockError:
    ...   pass
    Nrrrrrrbsc@seZdZdZdS)rz�Some other thread/process is locking the file.

    >>> try:
    ...   raise AlreadyLocked
    ... except LockError:
    ...   pass
    Nrrrrrrmsc@seZdZdZdS)r	z�Lock file creation failed for some other reason.

    >>> try:
    ...   raise LockFailed
    ... except LockError:
    ...   pass
    Nrrrrrr	xsc@seZdZdZdS)r
z�
    Base class for errors arising from attempts to release the lock.

    >>> try:
    ...   raise UnlockError
    ... except Error:
    ...   pass
    Nrrrrrr
�sc@seZdZdZdS)rz�Raised when an attempt is made to unlock an unlocked file.

    >>> try:
    ...   raise NotLocked
    ... except UnlockError:
    ...   pass
    Nrrrrrr�sc@seZdZdZdS)rz�Raised when an attempt is made to unlock a file someone else locked.

    >>> try:
    ...   raise NotMyLock
    ... except UnlockError:
    ...   pass
    Nrrrrrr�sc@s>eZdZdd�Zddd�Zdd�Zdd	�Zd
d�Zdd
�ZdS)�_SharedBasecCs
||_dS)N)�path)�selfrrrr�__init__�sz_SharedBase.__init__NcCstd��dS)a�
        Acquire the lock.

        * If timeout is omitted (or None), wait forever trying to lock the
          file.

        * If timeout > 0, try to acquire the lock for that many seconds.  If
          the lock period expires and the file is still locked, raise
          LockTimeout.

        * If timeout <= 0, raise AlreadyLocked immediately if the file is
          already locked.
        �implement in subclassN��NotImplemented)r�timeoutrrr�acquire�sz_SharedBase.acquirecCstd��dS)zX
        Release the lock.

        If the file is not locked, raise NotLocked.
        rNr�rrrr�release�sz_SharedBase.releasecCs|��|S)�*
        Context manager support.
        )r!r"rrr�	__enter__�sz_SharedBase.__enter__cGs|��dS)r$N)r#)rZ_excrrr�__exit__�sz_SharedBase.__exit__cCsd|jj|jfS)Nz<%s: %r>)�	__class__rrr"rrr�__repr__�sz_SharedBase.__repr__)N)	rrrrr!r#r%r&r(rrrrr�s
rcsBeZdZdZd�fdd�	Zdd�Zdd	�Zd
d�Zdd
�Z�Z	S)rz.Base class for platform-specific lock classes.TNc	s�tt|��|�tj�|�d|_t��|_	t�
�|_|rbt�
�}t|dt|��}d|d@|_nd|_tj�|j�}tj�|d|j	|j|jt|j�f�|_||_dS)zi
        >>> lock = LockBase('somefile')
        >>> lock = LockBase('somefile', threaded=False)
        z.lock�identz-%xl���z	%s%s.%s%sN)�superrr�osr�abspathZ	lock_file�socketZgethostnameZhostname�getpid�pid�	threadingr�getattr�hashZtname�dirname�join�unique_namer )rr�threadedr �tr)r4�r'rrr�s$

	��zLockBase.__init__cCstd��dS)z9
        Tell whether or not the file is locked.
        rNrr"rrr�	is_locked�szLockBase.is_lockedcCstd��dS)zA
        Return True if this object is locking the file.
        rNrr"rrr�i_am_locking�szLockBase.i_am_lockingcCstd��dS)zN
        Remove a lock.  Useful if a locking thread failed to unlock.
        rNrr"rrr�
break_lockszLockBase.break_lockcCsd|jj|j|jfS)Nz<%s: %r -- %r>)r'rr6rr"rrrr(s�zLockBase.__repr__)TN)
rrrrrr:r;r<r(�
__classcell__rrr9rr�s!cOsPtjd|tdd�t|dt�s.|dd�}t|�dkrF|sFd|d<|||�S)Nz1Import from %s module instead of lockfile package�)�
stacklevelr�Tr7)�warnings�warn�DeprecationWarning�
isinstance�str�len)�cls�mod�args�kwdsrrr�
_fl_helpers
�rKcOs ddlm}t|jdf|�|�S)z�Factory function provided for backwards compatibility.

    Do not use in new code.  Instead, import LinkLockFile from the
    lockfile.linklockfile module.
    r@��linklockfilezlockfile.linklockfile)r*rMrK�LinkLockFile)rIrJrMrrrr
s
��cOs ddlm}t|jdf|�|�S)z�Factory function provided for backwards compatibility.

    Do not use in new code.  Instead, import MkdirLockFile from the
    lockfile.mkdirlockfile module.
    r@��
mkdirlockfilezlockfile.mkdirlockfile)r*rPrK�
MkdirLockFile)rIrJrPrrrr%s
��cOs ddlm}t|jdf|�|�S)z�Factory function provided for backwards compatibility.

    Do not use in new code.  Instead, import SQLiteLockFile from the
    lockfile.mkdirlockfile module.
    r@)�sqlitelockfilezlockfile.sqlitelockfile)r*rRrKZSQLiteLockFile)rIrJrRrrrr0s
��cs��fdd�}|S)aDecorator which enables locks for decorated function.

    Arguments:
     - path: path for lockfile.
     - timeout (optional): Timeout for acquiring lock.

     Usage:
         @locked('/var/run/myname', timeout=0)
         def myname(...):
             ...
    cst������fdd��}|S)Ncs2t��d�}|��z�||�W�S|��XdS)N)r )�FileLockr!r#)rI�kwargs�lock)�funcrr rr�wrapperHs
z&locked.<locals>.decor.<locals>.wrapper)�	functools�wraps)rVrW�rr )rVr�decorGszlocked.<locals>.decorr)rr r[rrZrr;s
�linkr@rLrO)N))rZ
__future__rrXr,r.r1rA�hasattrZ
currentThreadrZThreadZgetNamer�__all__�	Exceptionrrrrr	r
rr�objectrrrKr
rrrr*rMZ_llfrNZLockFilerPZ_mlfrQrSrrrr�<module>sT3
�-:


Filemanager

Name Type Size Permission Actions
__init__.cpython-38.opt-1.pyc File 9.49 KB 0644
__init__.cpython-38.pyc File 9.49 KB 0644
linklockfile.cpython-38.opt-1.pyc File 2.17 KB 0644
linklockfile.cpython-38.pyc File 2.17 KB 0644
mkdirlockfile.cpython-38.opt-1.pyc File 2.53 KB 0644
mkdirlockfile.cpython-38.pyc File 2.53 KB 0644
pidlockfile.cpython-38.opt-1.pyc File 4.68 KB 0644
pidlockfile.cpython-38.pyc File 4.68 KB 0644
sqlitelockfile.cpython-38.opt-1.pyc File 3.56 KB 0644
sqlitelockfile.cpython-38.pyc File 3.56 KB 0644
symlinklockfile.cpython-38.opt-1.pyc File 2.06 KB 0644
symlinklockfile.cpython-38.pyc File 2.06 KB 0644