ó •abc @` s’ d d l m Z m Z d d l Z d d l Z y e Wn e k rO e Z n Xd d l m Z m Z m Z m Z m Z d e f d „ ƒ YZ d S( i ( t absolute_importt divisionNi ( t LockBaset NotLockedt NotMyLockt LockTimeoutt AlreadyLockedt SQLiteLockFilec B` s\ e Z d Z d Z e d d „ Z d d „ Z d „ Z d „ Z d „ Z d „ Z d „ Z RS( s Demonstrate SQL-based locking.c C` s t j | | | | ƒ t | j ƒ | _ t | j ƒ | _ t j d k r“ d d l } | j ƒ \ } } t j | ƒ t j | ƒ ~ ~ | t _ n d d l } | j t j ƒ | _ | j j ƒ } y | j d ƒ Wn | j k rê n0 X| j j ƒ d d l } | j t j t j ƒ d S( su >>> lock = SQLiteLockFile('somefile') >>> lock = SQLiteLockFile('somefile', threaded=False) i NsG create table locks( lock_file varchar(32), unique_name varchar(32))( R t __init__t unicodet lock_filet unique_nameR t testdbt Nonet tempfilet mkstempt ost closet unlinkt sqlite3t connectt connectiont cursort executet OperationalErrort committ atexitt register( t selft patht threadedt timeoutR t _fdR R t cR ( ( sG /usr/lib/python2.7/site-packages/pip/_vendor/lockfile/sqlitelockfile.pyR s( c C` sÑ | d k r | n | j } t j ƒ } | d k rL | d k rL | | 7} n | d k ra d } n | d k rv d } n | d } | j j ƒ } x;t rÌ| j ƒ s.| j d | j | j f ƒ | j j ƒ | j d | j f ƒ | j ƒ } t | ƒ d k r'| j d | j f ƒ | j j ƒ qfd Sn8 | j d | j f ƒ | j ƒ } t | ƒ d k rfd S| d k r¼t j ƒ | k r¼| d k r¦t d | j ƒ ‚ q¼t d | j ƒ ‚ n t j | ƒ q’ Wd S( Ni gš™™™™™¹?i s; insert into locks (lock_file, unique_name) values (?, ?)s* select * from locks where unique_name = ?i s( delete from locks where unique_name = ?s&