simple-lock

Simple Lockfile System.


License
MIT
Install
pip install simple-lock==1.0.6

Documentation

LICENCE PYTHON version PyPI version Build Status codecov Maintainability BCH compliance Downloads

simple-lock

simple-lock provides lock system as a decorator or with-statement in your code. It is easy to use them.

Concept

You can easily implement lock system in your application with modifing a few line. There are mainly two decorator in simple_lock. First, simple_lock.lock locks function and create a lockfile. After that, other functions refer to the lockfile can't be executed normally. Second, without creating a new lockfile, simple_lock.watch watchs a lockfile provieded as one of arguments without creating a new lockfile.

Instalation

$ pip install simple-lock

How to use

Lock your function with simple_lock.lock decorator.

When a funciton try to create a lockfile and the lockfile already exists. simple_lock.lock decorator returns return_value like the following codes.

from simple_lock import lock

@lock(filename='simple.lock', path='~/locks',
                              return_value=10)
def sleep():
    import time
    time.sleep(10)
    
sleep() # -> 10

You can provide a function as 'return_value' argument and arguments of 'return_value'.

from simple_lock import lock

def add(a, b):
    return a + b

@lock(filename='simple.lock', path='~/locks',
                              return_value=add
                              a=1, b=1)
def sleep():
    import time
    time.sleep(10)
    
sleep() # -> 2

simple_lock.watch also provides functions similar to simple_lock.lock. The difference between simple_lock.lock and simple_lock.watch is just whether lockfile is created or not.

from simple_lock import watch

@watch(filename='simple.lock', path='~/locks',
                              return_value=10)
def sleep():
    import time
    time.sleep(10)
    
sleep() # -> 10
from simple_lock import watch

def add(a, b):
    return a + b

@watch(filename='simple.lock', path='~/locks',
                              return_value=add,
                              a=1, b=1)
def sleep():
    import time
    time.sleep(10)
    
sleep() # -> 2

References