Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

Download
ActivePython
INSTALL>
pypm install zc.lockfile

How to install zc.lockfile

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install zc.lockfile
 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
1.0.0
1.1.0Never BuiltWhy not?
1.0.0 Available View build log
1.0.0
1.1.0Never BuiltWhy not?
1.0.0 Available View build log
Windows (64-bit)
1.0.0
1.1.0Never BuiltWhy not?
1.0.0 Available View build log
1.0.0
1.1.0Never BuiltWhy not?
1.0.0 Available View build log
Mac OS X (10.5+)
1.0.1
1.1.0Never BuiltWhy not?
1.0.1 Available View build log
1.0.0 Available View build log
1.0.0
1.1.0Never BuiltWhy not?
1.0.0 Available View build log
Linux (32-bit)
1.0.1
1.1.0Never BuiltWhy not?
1.0.1 Available View build log
1.0.0 Available View build log
1.0.0
1.1.0Never BuiltWhy not?
1.0.0 Available View build log
Linux (64-bit)
1.1.0 Available View build log
1.0.1 Available View build log
1.0.0 Available View build log
1.0.0
1.1.0Never BuiltWhy not?
1.0.0 Available View build log
1.1.0 Available View build log
 
Author
License
ZPL 2.1
Dependencies
Imports
Lastest release
version 1.1.0 on Sep 20th, 2013

The zc.lockfile package provides a basic portable implementation of interprocess locks using lock files. The purpose if not specifically to lock files, but to simply provide locks with an implementation based on file-locking primitives. Of course, these locks could be used to mediate access to other files. For example, the ZODB file storage implementation uses file locks to mediate access to file-storage database files. The database files and lock file files are separate files.

Detailed Documentation

Lock file support

The ZODB lock_file module provides support for creating file system locks. These are locks that are implemented with lock files and OS-provided locking facilities. To create a lock, instantiate a LockFile object with a file name:

>>> import zc.lockfile
>>> lock = zc.lockfile.LockFile('lock')

If we try to lock the same name, we'll get a lock error:

>>> import zope.testing.loggingsupport
>>> handler = zope.testing.loggingsupport.InstalledHandler('zc.lockfile')
>>> try:
...     zc.lockfile.LockFile('lock')
... except zc.lockfile.LockError:
...     print("Can't lock file")
Can't lock file
>>> for record in handler.records: # doctest: +ELLIPSIS
...     print(record.levelname+' '+record.getMessage())
ERROR Error locking file lock; pid=...

To release the lock, use it's close method:

>>> lock.close()

The lock file is not removed. It is left behind:

>>> import os
>>> os.path.exists('lock')
True

Of course, now that we've released the lock, we can create it again:

>>> lock = zc.lockfile.LockFile('lock')
>>> lock.close()

Change History

1.1.0 (2013-02-12)
  • Added Trove classifiers and made setup.py zest.releaser friendly.
  • Added Python 3.2, 3.3 and PyPy 1.9 support.
  • Removed Python 2.4 and Python 2.5 support.
1.0.2 (2012-12-02)
  • Fixed: the fix included in 1.0.1 caused multiple pids to be written to the lock file
1.0.1 (2012-11-30)
  • Fixed: when there was lock contention, the pid in the lock file was lost.

    Thanks to Daniel Moisset reporting the problem and providing a fix with tests.

  • Added test extra to declare test dependency on zope.testing.

  • Using Python's doctest module instead of depreacted zope.testing.doctest.

1.0.0 (2008-10-18)
  • Fixed a small bug in error logging.
1.0.0b1 (2007-07-18)

Initial release

Subscribe to package updates

Last updated Sep 20th, 2013

Download Stats

Last month:3

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.