Metadata-Version: 1.1 Name: pid Version: 2.1.1 Summary: Pidfile featuring stale detection and file-locking, can also be used as context-manager or decorator Home-page: https://github.com/trbs/pid/ Author: Trbs Author-email: trbs@trbs.net License: ASL Description: pid === .. image:: https://travis-ci.org/trbs/pid.svg?branch=master :target: https://travis-ci.org/trbs/pid .. image:: https://coveralls.io/repos/trbs/pid/badge.png :target: https://coveralls.io/r/trbs/pid .. image:: https://pypip.in/v/pid/badge.png :target: https://pypi.python.org/pypi/pid/ :alt: Latest PyPI version .. image:: https://pypip.in/d/pid/badge.png :target: https://pypi.python.org/pypi/pid/ :alt: Number of PyPI downloads PidFile class featuring: - stale detection - pidfile locking (fcntl) - chmod (default is 0o644) - chown - custom exceptions Context Manager --------------- PidFile can be used as a context manager:: from pid import PidFile with PidFile(): do_something() Decorator --------- PidFile can also be used a a decorator:: from pid.decorator import pidfile @pidfile() def main(): pass if __name__ == "__main__": main() Exception Order --------------- In default mode PidFile will try to acquire a file lock before anything else. This means that normally you get a PidFileAlreadyLockedError instead of the PidFileAlreadyRunningError when running a program twice. If you just want to know if a program is already running its easiest to catch just PidFileError since it will capture all possible PidFile exceptions. Behaviour --------- Changes in version 2.0.0 and going forward: * pid is now friendly with daemon context managers such as `python-daemon `_ where the PidFile context manager is passed as a parameter. The new corrected behaviour will ensure the process environment is determinde at the time of acquiring/checking the lock. Prior behaviour would determine the process environment when instancing the class which may result in incorrect determination of the PID in the case of a process forking after instancing PidFile. \ * Cleanup of pidfile on termination is done using `atexit` module. The default SIGTERM handler doesn't cleanly exit and therefore the atexit registered functions will not execute. A custom handler which triggers the atexit registered functions for cleanup will override the default SIGTERM handler. If a prior signal handler has been configured, then it will not be overridden. Keywords: pid pidfile context manager decorator Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.6 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: Implementation :: PyPy