############################################
portalocker - Cross-platform locking library
############################################

Overview
--------

Portalocker is a library to provide an easy API to file locking.

Originally created as a Python Recipe by Jonathan Feinberg and  Lowell Alleman
http://code.activestate.com/recipes/65203-portalocker-cross-platform-posixnt-api-for-flock-s/

Examples
--------

To make sure your cache generation scripts don't race, use the `Lock` class:

>>> import portalocker
>>> with portalocker.Lock('somefile', timeout=1) as fh:
    print >>fh, 'writing some stuff to my cache...'

To lock a file exclusively, use the `lock` method:

>>> import portalocker
>>> file = open('somefile', 'r+')
>>> portalocker.lock(file, portalocker.LOCK_EX)
>>> file.seek(12)
>>> file.write('foo')
>>> file.close()

There is no explicit need to unlock the file as it is automatically unlocked
after `file.close()`. If you still feel the need to manually unlock a file
than you can do it like this:

>>> portalocker.unlock(file)

Do note that your data might still be in a buffer so it is possible that your
data is not available until you `flush()` or `close()`.

Contact
-------

The module is maintaned by Rick van Hattem <Rick.van.Hattem@Fawo.nl>.
The project resides at https://github.com/WoLpH/portalocker . Bugs and feature
requests can be submitted there. Patches are also very welcome.

Changelog
---------

See CHANGELOG file

License
-------

see the LICENSE file


