� ��abc @@ sp d d l m Z d d l Z d d l Z d d l m Z m Z m Z m Z m Z m Z d e f d � � YZ d S( i ( t absolute_importNi ( t LockBaset LockFailedt NotLockedt NotMyLockt LockTimeoutt AlreadyLockedt LinkLockFilec B@ s> e Z d Z d d � Z d � Z d � Z d � Z d � Z RS( s� Lock access to a file using atomic property of link(2). >>> lock = LinkLockFile('somefile') >>> lock = LinkLockFile('somefile', threaded=False) c C@ s~ y t | j d � j � Wn$ t k r@ t d | j � � n X| d k rS | n | j } t j � } | d k r� | d k r� | | 7} n x� t ryy t j | j | j � Wn� t k rqt j | j � j } | d k r� d S| d k rKt j � | k rKt j | j � | d k r5t d | j � � qKt d | j � � n t j | d k rg| d pjd � q� Xd Sq� Wd S( Nt wbs failed to create %si i s&