Hello community,

here is the log from the commit of package python-lockfile for openSUSE:Factory 
checked in at 2019-02-26 22:21:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-lockfile (Old)
 and      /work/SRC/openSUSE:Factory/.python-lockfile.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-lockfile"

Tue Feb 26 22:21:05 2019 rev:15 rq:679178 version:0.12.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-lockfile/python-lockfile.changes  
2018-12-24 11:39:19.233562391 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-lockfile.new.28833/python-lockfile.changes   
    2019-02-26 22:22:45.290058625 +0100
@@ -1,0 +2,24 @@
+Mon Feb 25 21:54:28 UTC 2019 - John Vandenberg <[email protected]>
+
+- Add AUTHORS, ACKS and ChangeLog to %doc
+- Update to v0.12.2
+  * Add warning to README.rst
+- from 0.12.1
+  * Remove Python 2.6 classifier
+  * Remove python 2.6
+  * Remove two unused variables: fix flake8 F841 warn
+  * Fix flake8 warnings
+  * PBR setup requirement only
+  * Support universal wheels
+- from 0.11.0
+  * Add deprecated warnings to index.rst
+  * Fix PIDLockFile.acquire() may loop indefinitely
+  * Fix failure - from lockfile import *
+  * lockfile.acquire doesn't accept a timeout of 0
+  * Update README format for our release script
+  * Begin moving some of the common code to a shared base
+  * Add pbr to dependency list
+  * The version of sphinx being brought in is broken
+  * Fix Git URLs
+
+-------------------------------------------------------------------

Old:
----
  lockfile-0.10.2.tar.gz

New:
----
  lockfile-0.12.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-lockfile.spec ++++++
--- /var/tmp/diff_new_pack.L82l7R/_old  2019-02-26 22:22:45.718058473 +0100
+++ /var/tmp/diff_new_pack.L82l7R/_new  2019-02-26 22:22:45.718058473 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-lockfile
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-lockfile
-Version:        0.10.2
+Version:        0.12.2
 Release:        0
 Summary:        Platform-independent file locking module
 License:        MIT
@@ -60,7 +60,7 @@
 
 %files %{python_files}
 %license LICENSE
-%doc README RELEASE-NOTES
+%doc README.rst AUTHORS ACKS RELEASE-NOTES ChangeLog
 %{python_sitelib}/lockfile*
 
 %changelog

++++++ lockfile-0.10.2.tar.gz -> lockfile-0.12.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/AUTHORS new/lockfile-0.12.2/AUTHORS
--- old/lockfile-0.10.2/AUTHORS 2014-09-19 14:23:48.000000000 +0200
+++ new/lockfile-0.12.2/AUTHORS 2015-11-25 19:29:29.000000000 +0100
@@ -1,5 +1,12 @@
 (no author) <(no author)>
+ChangBo Guo(gcb) <[email protected]>
+Davanum Srinivas <[email protected]>
+Doug Hellmann <[email protected]>
 Elmo Todurov <[email protected]>
+Joshua Harlow <[email protected]>
 Julien Danjou <[email protected]>
 Skip Montanaro <[email protected]>
+Thomas Grainger <[email protected]>
+Thomas Grainger <[email protected]>
+Victor Stinner <[email protected]>
 skip.montanaro <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/ChangeLog 
new/lockfile-0.12.2/ChangeLog
--- old/lockfile-0.10.2/ChangeLog       2014-09-19 14:23:48.000000000 +0200
+++ new/lockfile-0.12.2/ChangeLog       2015-11-25 19:29:29.000000000 +0100
@@ -1,6 +1,34 @@
 CHANGES
 =======
 
+0.12.2
+------
+
+* Add warning to README.rst
+
+0.12.1
+------
+
+* Remove Python 2.6 classifier
+* Remove python 2.6
+* Remove two unused variables: fix flake8 F841 warn
+* Fix flake8 warnings
+* PBR setup requirement only
+* Support universal wheels
+
+0.11.0
+------
+
+* Add deprecated warnings to index.rst
+* Fix PIDLockFile.acquire() may loop indefinitely
+* Fix failure - from lockfile import *
+* lockfile.acquire doesn't accept a timeout of 0
+* Update README format for our release script
+* Begin moving some of the common code to a shared base
+* Add pbr to dependency list
+* The version of sphinx being brought in is broken
+* Fix Git URLs
+
 0.10.2
 ------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/PKG-INFO new/lockfile-0.12.2/PKG-INFO
--- old/lockfile-0.10.2/PKG-INFO        2014-09-19 14:23:48.000000000 +0200
+++ new/lockfile-0.12.2/PKG-INFO        2015-11-25 19:29:29.000000000 +0100
@@ -1,12 +1,18 @@
 Metadata-Version: 1.1
 Name: lockfile
-Version: 0.10.2
+Version: 0.12.2
 Summary: Platform-independent file locking module
 Home-page: http://launchpad.net/pylockfile
 Author: OpenStack
 Author-email: [email protected]
 License: UNKNOWN
-Description: The lockfile package exports a LockFile class which provides a 
simple API for
+Description: Note: This package is **deprecated**. It is highly preferred that 
instead of
+        using this code base that instead `fasteners`_ or `oslo.concurrency`_ 
is
+        used instead. For any questions or comments or further help needed
+        please email `openstack-dev`_ and prefix your email subject
+        with ``[oslo][pylockfile]`` (for a faster response).
+        
+        The lockfile package exports a LockFile class which provides a simple 
API for
         locking files.  Unlike the Windows msvcrt.locking function, the 
fcntl.lockf
         and flock functions, and the deprecated posixfile module, the API is
         identical across both Unix (including Linux and Mac) and Windows 
platforms.
@@ -26,14 +32,14 @@
         The previous module-level definitions of LinkFileLock, MkdirFileLock 
and
         SQLiteFileLock will be retained until the 1.0 release.
         
-        Available on GitHub from:
-        
-            git://github.com/smontanaro/pylockfile.git
-        
         To install:
         
             python setup.py install
         
+        * Documentation: http://docs.openstack.org/developer/pylockfile
+        * Source: http://git.openstack.org/cgit/openstack/pylockfile
+        * Bugs: http://bugs.launchpad.net/pylockfile
+        
         
 Platform: UNKNOWN
 Classifier: Intended Audience :: Developers
@@ -45,7 +51,6 @@
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 2.6
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3.3
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/README new/lockfile-0.12.2/README
--- old/lockfile-0.10.2/README  2014-09-19 14:23:31.000000000 +0200
+++ new/lockfile-0.12.2/README  1970-01-01 01:00:00.000000000 +0100
@@ -1,27 +0,0 @@
-The lockfile package exports a LockFile class which provides a simple API for
-locking files.  Unlike the Windows msvcrt.locking function, the fcntl.lockf
-and flock functions, and the deprecated posixfile module, the API is
-identical across both Unix (including Linux and Mac) and Windows platforms.
-The lock mechanism relies on the atomic nature of the link (on Unix) and
-mkdir (on Windows) system calls.  An implementation based on SQLite is also
-provided, more as a demonstration of the possibilities it provides than as
-production-quality code.
-
-Note: In version 0.9 the API changed in two significant ways:
-
- * It changed from a module defining several classes to a package containing
-   several modules, each defining a single class.
-
- * Where classes had been named SomethingFileLock before the last two words
-   have been reversed, so that class is now SomethingLockFile.
-
-The previous module-level definitions of LinkFileLock, MkdirFileLock and
-SQLiteFileLock will be retained until the 1.0 release.
-
-Available on GitHub from:
-
-    git://github.com/smontanaro/pylockfile.git
-
-To install:
-
-    python setup.py install
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/README.rst 
new/lockfile-0.12.2/README.rst
--- old/lockfile-0.10.2/README.rst      1970-01-01 01:00:00.000000000 +0100
+++ new/lockfile-0.12.2/README.rst      2015-11-25 19:29:13.000000000 +0100
@@ -0,0 +1,33 @@
+Note: This package is **deprecated**. It is highly preferred that instead of
+using this code base that instead `fasteners`_ or `oslo.concurrency`_ is
+used instead. For any questions or comments or further help needed
+please email `openstack-dev`_ and prefix your email subject
+with ``[oslo][pylockfile]`` (for a faster response).
+
+The lockfile package exports a LockFile class which provides a simple API for
+locking files.  Unlike the Windows msvcrt.locking function, the fcntl.lockf
+and flock functions, and the deprecated posixfile module, the API is
+identical across both Unix (including Linux and Mac) and Windows platforms.
+The lock mechanism relies on the atomic nature of the link (on Unix) and
+mkdir (on Windows) system calls.  An implementation based on SQLite is also
+provided, more as a demonstration of the possibilities it provides than as
+production-quality code.
+
+Note: In version 0.9 the API changed in two significant ways:
+
+ * It changed from a module defining several classes to a package containing
+   several modules, each defining a single class.
+
+ * Where classes had been named SomethingFileLock before the last two words
+   have been reversed, so that class is now SomethingLockFile.
+
+The previous module-level definitions of LinkFileLock, MkdirFileLock and
+SQLiteFileLock will be retained until the 1.0 release.
+
+To install:
+
+    python setup.py install
+
+* Documentation: http://docs.openstack.org/developer/pylockfile
+* Source: http://git.openstack.org/cgit/openstack/pylockfile
+* Bugs: http://bugs.launchpad.net/pylockfile
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/doc/source/index.rst 
new/lockfile-0.12.2/doc/source/index.rst
--- old/lockfile-0.10.2/doc/source/index.rst    2014-09-19 14:23:32.000000000 
+0200
+++ new/lockfile-0.12.2/doc/source/index.rst    2015-11-25 19:29:13.000000000 
+0100
@@ -7,6 +7,13 @@
 .. moduleauthor:: Skip Montanaro <[email protected]>
 .. sectionauthor:: Skip Montanaro <[email protected]>
 
+.. warning::
+
+   This package is **deprecated**. It is highly preferred that instead of
+   using this code base that instead `fasteners`_ or `oslo.concurrency`_ is
+   used instead. For any questions or comments or further help needed
+   please email `openstack-dev`_ and prefix your email subject
+   with ``[oslo][pylockfile]`` (for a faster response).
 
 .. note::
 
@@ -273,3 +280,8 @@
 
 If you encounter any problems with ``lockfile``, would like help or want to
 submit a patch, check http://launchpad.net/pylockfile
+
+
+.. _fasteners: http://fasteners.readthedocs.org/
+.. _openstack-dev: mailto:[email protected]
+.. _oslo.concurrency: http://docs.openstack.org/developer/oslo.concurrency/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/lockfile/__init__.py 
new/lockfile-0.12.2/lockfile/__init__.py
--- old/lockfile-0.10.2/lockfile/__init__.py    2014-09-19 14:23:31.000000000 
+0200
+++ new/lockfile-0.12.2/lockfile/__init__.py    2015-11-25 19:29:13.000000000 
+0100
@@ -1,3 +1,5 @@
+# -*- coding: utf-8 -*-
+
 """
 lockfile.py - Platform-independent advisory file locks.
 
@@ -51,14 +53,11 @@
 
 from __future__ import absolute_import
 
-import sys
-import socket
+import functools
 import os
+import socket
 import threading
-import time
-import urllib
 import warnings
-import functools
 
 # Work with PEP8 and non-PEP8 versions of threading module.
 if not hasattr(threading, "current_thread"):
@@ -68,9 +67,10 @@
 
 __all__ = ['Error', 'LockError', 'LockTimeout', 'AlreadyLocked',
            'LockFailed', 'UnlockError', 'NotLocked', 'NotMyLock',
-           'LinkLockFile', 'MkdirLockFile', 'SQLiteLockFile',
+           'LinkFileLock', 'MkdirFileLock', 'SQLiteFileLock',
            'LockBase', 'locked']
 
+
 class Error(Exception):
     """
     Base class for other exceptions.
@@ -82,6 +82,7 @@
     """
     pass
 
+
 class LockError(Error):
     """
     Base class for error arising from attempts to acquire the lock.
@@ -93,6 +94,7 @@
     """
     pass
 
+
 class LockTimeout(LockError):
     """Raised when lock creation fails within a user-defined period of time.
 
@@ -103,6 +105,7 @@
     """
     pass
 
+
 class AlreadyLocked(LockError):
     """Some other thread/process is locking the file.
 
@@ -113,6 +116,7 @@
     """
     pass
 
+
 class LockFailed(LockError):
     """Lock file creation failed for some other reason.
 
@@ -123,6 +127,7 @@
     """
     pass
 
+
 class UnlockError(Error):
     """
     Base class for errors arising from attempts to release the lock.
@@ -134,6 +139,7 @@
     """
     pass
 
+
 class NotLocked(UnlockError):
     """Raised when an attempt is made to unlock an unlocked file.
 
@@ -144,6 +150,7 @@
     """
     pass
 
+
 class NotMyLock(UnlockError):
     """Raised when an attempt is made to unlock a file someone else locked.
 
@@ -154,14 +161,60 @@
     """
     pass
 
-class LockBase:
+
+class _SharedBase(object):
+    def __init__(self, path):
+        self.path = path
+
+    def acquire(self, timeout=None):
+        """
+        Acquire the lock.
+
+        * If timeout is omitted (or None), wait forever trying to lock the
+          file.
+
+        * If timeout > 0, try to acquire the lock for that many seconds.  If
+          the lock period expires and the file is still locked, raise
+          LockTimeout.
+
+        * If timeout <= 0, raise AlreadyLocked immediately if the file is
+          already locked.
+        """
+        raise NotImplemented("implement in subclass")
+
+    def release(self):
+        """
+        Release the lock.
+
+        If the file is not locked, raise NotLocked.
+        """
+        raise NotImplemented("implement in subclass")
+
+    def __enter__(self):
+        """
+        Context manager support.
+        """
+        self.acquire()
+        return self
+
+    def __exit__(self, *_exc):
+        """
+        Context manager support.
+        """
+        self.release()
+
+    def __repr__(self):
+        return "<%s: %r>" % (self.__class__.__name__, self.path)
+
+
+class LockBase(_SharedBase):
     """Base class for platform-specific lock classes."""
     def __init__(self, path, threaded=True, timeout=None):
         """
         >>> lock = LockBase('somefile')
         >>> lock = LockBase('somefile', threaded=False)
         """
-        self.path = path
+        super(LockBase, self).__init__(path)
         self.lock_file = os.path.abspath(path) + ".lock"
         self.hostname = socket.gethostname()
         self.pid = os.getpid()
@@ -189,30 +242,6 @@
                                                        hash(self.path)))
         self.timeout = timeout
 
-    def acquire(self, timeout=None):
-        """
-        Acquire the lock.
-
-        * If timeout is omitted (or None), wait forever trying to lock the
-          file.
-
-        * If timeout > 0, try to acquire the lock for that many seconds.  If
-          the lock period expires and the file is still locked, raise
-          LockTimeout.
-
-        * If timeout <= 0, raise AlreadyLocked immediately if the file is
-          already locked.
-        """
-        raise NotImplemented("implement in subclass")
-
-    def release(self):
-        """
-        Release the lock.
-
-        If the file is not locked, raise NotLocked.
-        """
-        raise NotImplemented("implement in subclass")
-
     def is_locked(self):
         """
         Tell whether or not the file is locked.
@@ -231,23 +260,11 @@
         """
         raise NotImplemented("implement in subclass")
 
-    def __enter__(self):
-        """
-        Context manager support.
-        """
-        self.acquire()
-        return self
-
-    def __exit__(self, *_exc):
-        """
-        Context manager support.
-        """
-        self.release()
-
     def __repr__(self):
         return "<%s: %r -- %r>" % (self.__class__.__name__, self.unique_name,
                                    self.path)
 
+
 def _fl_helper(cls, mod, *args, **kwds):
     warnings.warn("Import from %s module instead of lockfile package" % mod,
                   DeprecationWarning, stacklevel=2)
@@ -261,6 +278,7 @@
         kwds["threaded"] = True
     return cls(*args, **kwds)
 
+
 def LinkFileLock(*args, **kwds):
     """Factory function provided for backwards compatibility.
 
@@ -271,6 +289,7 @@
     return _fl_helper(linklockfile.LinkLockFile, "lockfile.linklockfile",
                       *args, **kwds)
 
+
 def MkdirFileLock(*args, **kwds):
     """Factory function provided for backwards compatibility.
 
@@ -281,6 +300,7 @@
     return _fl_helper(mkdirlockfile.MkdirLockFile, "lockfile.mkdirlockfile",
                       *args, **kwds)
 
+
 def SQLiteFileLock(*args, **kwds):
     """Factory function provided for backwards compatibility.
 
@@ -291,6 +311,7 @@
     return _fl_helper(sqlitelockfile.SQLiteLockFile, "lockfile.sqlitelockfile",
                       *args, **kwds)
 
+
 def locked(path, timeout=None):
     """Decorator which enables locks for decorated function.
 
@@ -315,6 +336,7 @@
         return wrapper
     return decor
 
+
 if hasattr(os, "link"):
     from . import linklockfile as _llf
     LockFile = _llf.LinkLockFile
@@ -323,4 +345,3 @@
     LockFile = _mlf.MkdirLockFile
 
 FileLock = LockFile
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/lockfile/linklockfile.py 
new/lockfile-0.12.2/lockfile/linklockfile.py
--- old/lockfile-0.10.2/lockfile/linklockfile.py        2014-09-19 
14:23:31.000000000 +0200
+++ new/lockfile-0.12.2/lockfile/linklockfile.py        2015-11-25 
19:29:13.000000000 +0100
@@ -6,6 +6,7 @@
 from . import (LockBase, LockFailed, NotLocked, NotMyLock, LockTimeout,
                AlreadyLocked)
 
+
 class LinkLockFile(LockBase):
     """Lock access to a file using atomic property of link(2).
 
@@ -19,7 +20,7 @@
         except IOError:
             raise LockFailed("failed to create %s" % self.unique_name)
 
-        timeout = timeout is not None and timeout or self.timeout
+        timeout = timeout if timeout is not None else self.timeout
         end_time = time.time()
         if timeout is not None and timeout > 0:
             end_time += timeout
@@ -46,7 +47,7 @@
                         else:
                             raise AlreadyLocked("%s is already locked" %
                                                 self.path)
-                    time.sleep(timeout is not None and timeout/10 or 0.1)
+                    time.sleep(timeout is not None and timeout / 10 or 0.1)
             else:
                 # Link creation succeeded.  We're good to go.
                 return
@@ -70,4 +71,3 @@
     def break_lock(self):
         if os.path.exists(self.lock_file):
             os.unlink(self.lock_file)
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/lockfile/mkdirlockfile.py 
new/lockfile-0.12.2/lockfile/mkdirlockfile.py
--- old/lockfile-0.10.2/lockfile/mkdirlockfile.py       2014-09-19 
14:23:31.000000000 +0200
+++ new/lockfile-0.12.2/lockfile/mkdirlockfile.py       2015-11-25 
19:29:13.000000000 +0100
@@ -8,6 +8,7 @@
 from . import (LockBase, LockFailed, NotLocked, NotMyLock, LockTimeout,
                AlreadyLocked)
 
+
 class MkdirLockFile(LockBase):
     """Lock file by creating a directory."""
     def __init__(self, path, threaded=True, timeout=None):
@@ -18,13 +19,13 @@
         LockBase.__init__(self, path, threaded, timeout)
         # Lock file itself is a directory.  Place the unique file name into
         # it.
-        self.unique_name  = os.path.join(self.lock_file,
-                                         "%s.%s%s" % (self.hostname,
-                                                      self.tname,
-                                                      self.pid))
+        self.unique_name = os.path.join(self.lock_file,
+                                        "%s.%s%s" % (self.hostname,
+                                                     self.tname,
+                                                     self.pid))
 
     def acquire(self, timeout=None):
-        timeout = timeout is not None and timeout or self.timeout
+        timeout = timeout if timeout is not None else self.timeout
         end_time = time.time()
         if timeout is not None and timeout > 0:
             end_time += timeout
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/lockfile/pidlockfile.py 
new/lockfile-0.12.2/lockfile/pidlockfile.py
--- old/lockfile-0.10.2/lockfile/pidlockfile.py 2014-09-19 14:23:31.000000000 
+0200
+++ new/lockfile-0.12.2/lockfile/pidlockfile.py 2015-11-25 19:29:13.000000000 
+0100
@@ -14,9 +14,8 @@
 
 from __future__ import absolute_import
 
-import os
-import sys
 import errno
+import os
 import time
 
 from . import (LockBase, AlreadyLocked, LockFailed, NotLocked, NotMyLock,
@@ -38,8 +37,6 @@
         # pid lockfiles don't support threaded operation, so always force
         # False as the threaded arg.
         LockBase.__init__(self, path, False, timeout)
-        dirname = os.path.dirname(self.lock_file)
-        basename = os.path.split(self.path)[-1]
         self.unique_name = self.path
 
     def read_pid(self):
@@ -70,7 +67,7 @@
         the lock could not be acquired.
         """
 
-        timeout = timeout is not None and timeout or self.timeout
+        timeout = timeout if timeout is not None else self.timeout
         end_time = time.time()
         if timeout is not None and timeout > 0:
             end_time += timeout
@@ -81,15 +78,15 @@
             except OSError as exc:
                 if exc.errno == errno.EEXIST:
                     # The lock creation failed.  Maybe sleep a bit.
-                    if timeout is not None and time.time() > end_time:
-                        if timeout > 0:
+                    if time.time() > end_time:
+                        if timeout is not None and timeout > 0:
                             raise LockTimeout("Timeout waiting to acquire"
                                               " lock for %s" %
                                               self.path)
                         else:
                             raise AlreadyLocked("%s is already locked" %
                                                 self.path)
-                    time.sleep(timeout is not None and timeout/10 or 0.1)
+                    time.sleep(timeout is not None and timeout / 10 or 0.1)
                 else:
                     raise LockFailed("failed to create %s" % self.path)
             else:
@@ -117,6 +114,7 @@
             """
         remove_existing_pidfile(self.path)
 
+
 def read_pid_from_pidfile(pidfile_path):
     """ Read the PID recorded in the named PID file.
 
@@ -132,10 +130,10 @@
         pass
     else:
         # According to the FHS 2.3 section on PID files in /var/run:
-        # 
+        #
         #   The file must consist of the process identifier in
         #   ASCII-encoded decimal, followed by a newline character.
-        # 
+        #
         #   Programs that read PID files should be somewhat flexible
         #   in what they accept; i.e., they should ignore extra
         #   whitespace, leading zeroes, absence of the trailing
@@ -171,8 +169,7 @@
     #   would contain three characters: two, five, and newline.
 
     pid = os.getpid()
-    line = "%(pid)d\n" % vars()
-    pidfile.write(line)
+    pidfile.write("%s\n" % pid)
     pidfile.close()
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/lockfile/sqlitelockfile.py 
new/lockfile-0.12.2/lockfile/sqlitelockfile.py
--- old/lockfile-0.10.2/lockfile/sqlitelockfile.py      2014-09-19 
14:23:31.000000000 +0200
+++ new/lockfile-0.12.2/lockfile/sqlitelockfile.py      2015-11-25 
19:29:13.000000000 +0100
@@ -10,6 +10,7 @@
 
 from . import LockBase, NotLocked, NotMyLock, LockTimeout, AlreadyLocked
 
+
 class SQLiteLockFile(LockBase):
     "Demonstrate SQL-based locking."
 
@@ -34,7 +35,7 @@
 
         import sqlite3
         self.connection = sqlite3.connect(SQLiteLockFile.testdb)
-        
+
         c = self.connection.cursor()
         try:
             c.execute("create table locks"
@@ -50,7 +51,7 @@
             atexit.register(os.unlink, SQLiteLockFile.testdb)
 
     def acquire(self, timeout=None):
-        timeout = timeout is not None and timeout or self.timeout
+        timeout = timeout if timeout is not None else self.timeout
         end_time = time.time()
         if timeout is not None and timeout > 0:
             end_time += timeout
@@ -97,7 +98,7 @@
                 if len(rows) == 1:
                     # We're the locker, so go home.
                     return
-                    
+
             # Maybe we should wait a bit longer.
             if timeout is not None and time.time() > end_time:
                 if timeout > 0:
@@ -130,7 +131,7 @@
                        "  where lock_file = ?",
                        (self.lock_file,))
         return cursor.fetchone()[0]
-        
+
     def is_locked(self):
         cursor = self.connection.cursor()
         cursor.execute("select * from locks"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/lockfile/symlinklockfile.py 
new/lockfile-0.12.2/lockfile/symlinklockfile.py
--- old/lockfile-0.10.2/lockfile/symlinklockfile.py     2014-09-19 
14:23:31.000000000 +0200
+++ new/lockfile-0.12.2/lockfile/symlinklockfile.py     2015-11-25 
19:29:13.000000000 +0100
@@ -1,11 +1,12 @@
 from __future__ import absolute_import
 
-import time
 import os
+import time
 
-from . import (LockBase, LockFailed, NotLocked, NotMyLock, LockTimeout,
+from . import (LockBase, NotLocked, NotMyLock, LockTimeout,
                AlreadyLocked)
 
+
 class SymlinkLockFile(LockBase):
     """Lock access to a file using symlink(2)."""
 
@@ -17,11 +18,11 @@
 
     def acquire(self, timeout=None):
         # Hopefully unnecessary for symlink.
-        #try:
-        #    open(self.unique_name, "wb").close()
-        #except IOError:
-        #    raise LockFailed("failed to create %s" % self.unique_name)
-        timeout = timeout is not None and timeout or self.timeout
+        # try:
+        #     open(self.unique_name, "wb").close()
+        # except IOError:
+        #     raise LockFailed("failed to create %s" % self.unique_name)
+        timeout = timeout if timeout is not None else self.timeout
         end_time = time.time()
         if timeout is not None and timeout > 0:
             end_time += timeout
@@ -45,7 +46,7 @@
                         else:
                             raise AlreadyLocked("%s is already locked" %
                                                 self.path)
-                    time.sleep(timeout/10 if timeout is not None else 0.1)
+                    time.sleep(timeout / 10 if timeout is not None else 0.1)
             else:
                 # Link creation succeeded.  We're good to go.
                 return
@@ -61,8 +62,8 @@
         return os.path.islink(self.lock_file)
 
     def i_am_locking(self):
-        return os.path.islink(self.lock_file) and \
-         os.readlink(self.lock_file) == self.unique_name
+        return (os.path.islink(self.lock_file)
+                and os.readlink(self.lock_file) == self.unique_name)
 
     def break_lock(self):
         if os.path.islink(self.lock_file):  # exists && link
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/lockfile.egg-info/PKG-INFO 
new/lockfile-0.12.2/lockfile.egg-info/PKG-INFO
--- old/lockfile-0.10.2/lockfile.egg-info/PKG-INFO      2014-09-19 
14:23:48.000000000 +0200
+++ new/lockfile-0.12.2/lockfile.egg-info/PKG-INFO      2015-11-25 
19:29:29.000000000 +0100
@@ -1,12 +1,18 @@
 Metadata-Version: 1.1
 Name: lockfile
-Version: 0.10.2
+Version: 0.12.2
 Summary: Platform-independent file locking module
 Home-page: http://launchpad.net/pylockfile
 Author: OpenStack
 Author-email: [email protected]
 License: UNKNOWN
-Description: The lockfile package exports a LockFile class which provides a 
simple API for
+Description: Note: This package is **deprecated**. It is highly preferred that 
instead of
+        using this code base that instead `fasteners`_ or `oslo.concurrency`_ 
is
+        used instead. For any questions or comments or further help needed
+        please email `openstack-dev`_ and prefix your email subject
+        with ``[oslo][pylockfile]`` (for a faster response).
+        
+        The lockfile package exports a LockFile class which provides a simple 
API for
         locking files.  Unlike the Windows msvcrt.locking function, the 
fcntl.lockf
         and flock functions, and the deprecated posixfile module, the API is
         identical across both Unix (including Linux and Mac) and Windows 
platforms.
@@ -26,14 +32,14 @@
         The previous module-level definitions of LinkFileLock, MkdirFileLock 
and
         SQLiteFileLock will be retained until the 1.0 release.
         
-        Available on GitHub from:
-        
-            git://github.com/smontanaro/pylockfile.git
-        
         To install:
         
             python setup.py install
         
+        * Documentation: http://docs.openstack.org/developer/pylockfile
+        * Source: http://git.openstack.org/cgit/openstack/pylockfile
+        * Bugs: http://bugs.launchpad.net/pylockfile
+        
         
 Platform: UNKNOWN
 Classifier: Intended Audience :: Developers
@@ -45,7 +51,6 @@
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 2.6
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3.3
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/lockfile.egg-info/SOURCES.txt 
new/lockfile-0.12.2/lockfile.egg-info/SOURCES.txt
--- old/lockfile-0.10.2/lockfile.egg-info/SOURCES.txt   2014-09-19 
14:23:48.000000000 +0200
+++ new/lockfile-0.12.2/lockfile.egg-info/SOURCES.txt   2015-11-25 
19:29:29.000000000 +0100
@@ -2,7 +2,7 @@
 AUTHORS
 ChangeLog
 LICENSE
-README
+README.rst
 RELEASE-NOTES
 setup.cfg
 setup.py
@@ -21,6 +21,7 @@
 lockfile.egg-info/SOURCES.txt
 lockfile.egg-info/dependency_links.txt
 lockfile.egg-info/not-zip-safe
+lockfile.egg-info/pbr.json
 lockfile.egg-info/top_level.txt
 test/compliancetest.py
 test/test_lockfile.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/lockfile.egg-info/pbr.json 
new/lockfile-0.12.2/lockfile.egg-info/pbr.json
--- old/lockfile-0.10.2/lockfile.egg-info/pbr.json      1970-01-01 
01:00:00.000000000 +0100
+++ new/lockfile-0.12.2/lockfile.egg-info/pbr.json      2015-11-25 
19:29:29.000000000 +0100
@@ -0,0 +1 @@
+{"git_version": "c8798ce", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/setup.cfg 
new/lockfile-0.12.2/setup.cfg
--- old/lockfile-0.10.2/setup.cfg       2014-09-19 14:23:48.000000000 +0200
+++ new/lockfile-0.12.2/setup.cfg       2015-11-25 19:29:29.000000000 +0100
@@ -2,7 +2,7 @@
 name = lockfile
 summary = Platform-independent file locking module
 description-file = 
-       README
+       README.rst
 author = OpenStack
 author-email = [email protected]
 home-page = http://launchpad.net/pylockfile
@@ -16,7 +16,6 @@
        Programming Language :: Python
        Programming Language :: Python :: 2
        Programming Language :: Python :: 2.7
-       Programming Language :: Python :: 2.6
        Programming Language :: Python :: 3
        Programming Language :: Python :: 3.3
        Topic :: Software Development :: Libraries :: Python Modules
@@ -32,8 +31,11 @@
 build-dir = doc/build
 all_files = 1
 
+[bdist_wheel]
+universal = 1
+
 [egg_info]
-tag_build = 
 tag_date = 0
 tag_svn_revision = 0
+tag_build = 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/setup.py new/lockfile-0.12.2/setup.py
--- old/lockfile-0.10.2/setup.py        2014-09-19 14:23:31.000000000 +0200
+++ new/lockfile-0.12.2/setup.py        2015-11-25 19:29:13.000000000 +0100
@@ -1,4 +1,3 @@
-#!/usr/bin/env python
 # Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,5 +25,5 @@
     pass
 
 setuptools.setup(
-    setup_requires=['pbr'],
+    setup_requires=['pbr>=1.8'],
     pbr=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/test/compliancetest.py 
new/lockfile-0.12.2/test/compliancetest.py
--- old/lockfile-0.10.2/test/compliancetest.py  2014-09-19 14:23:31.000000000 
+0200
+++ new/lockfile-0.12.2/test/compliancetest.py  2015-11-25 19:29:13.000000000 
+0100
@@ -4,6 +4,7 @@
 
 import lockfile
 
+
 class ComplianceTest(object):
     def __init__(self):
         self.saved_class = lockfile.LockFile
@@ -38,8 +39,8 @@
         lock.release()
         assert not lock.is_locked()
 
-##    def test_acquire_basic_threaded(self):
-##        self._test_acquire_helper(True)
+#     def test_acquire_basic_threaded(self):
+#         self._test_acquire_helper(True)
 
     def test_acquire_basic_unthreaded(self):
         self._test_acquire_helper(False)
@@ -79,11 +80,11 @@
         e2.set()          # tell thread t to release lock
         t.join()
 
-##    def test_acquire_no_timeout_threaded(self):
-##        self._test_acquire_no_timeout_helper(True)
+#     def test_acquire_no_timeout_threaded(self):
+#         self._test_acquire_no_timeout_helper(True)
 
-##    def test_acquire_no_timeout_unthreaded(self):
-##        self._test_acquire_no_timeout_helper(False)
+#     def test_acquire_no_timeout_unthreaded(self):
+#         self._test_acquire_no_timeout_helper(False)
 
     def _test_acquire_timeout_helper(self, tbool):
         # Timeout test
@@ -150,27 +151,27 @@
         else:
             raise AssertionError('erroneously unlocked file')
 
-##    def test_release_basic_threaded(self):
-##        self._test_release_basic_helper(True)
+#     def test_release_basic_threaded(self):
+#         self._test_release_basic_helper(True)
 
     def test_release_basic_unthreaded(self):
         self._test_release_basic_helper(False)
 
-##    def test_release_from_thread(self):
-##        e1, e2 = threading.Event(), threading.Event()
-##        t = _in_thread(self._lock_wait_unlock, e1, e2)
-##        e1.wait()
-##        lock2 = lockfile.LockFile(self._testfile(), threaded=False)
-##        assert not lock2.i_am_locking()
-##        try:
-##            lock2.release()
-##        except lockfile.NotMyLock:
-##            pass
-##        else:
-##            raise AssertionError('erroneously unlocked a file locked'
-##                                 ' by another thread.')
-##        e2.set()
-##        t.join()
+#     def test_release_from_thread(self):
+#         e1, e2 = threading.Event(), threading.Event()
+#         t = _in_thread(self._lock_wait_unlock, e1, e2)
+#         e1.wait()
+#         lock2 = lockfile.LockFile(self._testfile(), threaded=False)
+#         assert not lock2.i_am_locking()
+#         try:
+#             lock2.release()
+#         except lockfile.NotMyLock:
+#             pass
+#         else:
+#             raise AssertionError('erroneously unlocked a file locked'
+#                                  ' by another thread.')
+#         e2.set()
+#         t.join()
 
     def _test_is_locked_helper(self, tbool):
         lock = lockfile.LockFile(self._testfile(), threaded=tbool)
@@ -179,14 +180,14 @@
         lock.release()
         assert not lock.is_locked(), "still locked after release!"
 
-##    def test_is_locked_threaded(self):
-##        self._test_is_locked_helper(True)
+#     def test_is_locked_threaded(self):
+#         self._test_is_locked_helper(True)
 
     def test_is_locked_unthreaded(self):
         self._test_is_locked_helper(False)
 
-##    def test_i_am_locking_threaded(self):
-##        self._test_i_am_locking_helper(True)
+#     def test_i_am_locking_threaded(self):
+#         self._test_i_am_locking_helper(True)
 
     def test_i_am_locking_unthreaded(self):
         self._test_i_am_locking_helper(False)
@@ -219,8 +220,8 @@
         else:
             raise AssertionError('break lock failed')
 
-##    def test_break_lock_threaded(self):
-##        self._test_break_lock_helper(True)
+#     def test_break_lock_threaded(self):
+#         self._test_break_lock_helper(True)
 
     def test_break_lock_unthreaded(self):
         self._test_break_lock_helper(False)
@@ -230,8 +231,8 @@
         l = lockfile.LockFile(self._testfile())
         l.acquire()
         try:
-            event1.set()  # we're in,
-            event2.wait() # wait for boss's permission to leave
+            event1.set()   # we're in,
+            event2.wait()  # wait for boss's permission to leave
         finally:
             l.release()
 
@@ -250,6 +251,7 @@
             return a + b
         assert func(4, 3) == 7
 
+
 def _in_thread(func, *args, **kwargs):
     """Execute func(*args, **kwargs) after dt seconds. Helper for tests."""
     def _f():
@@ -258,4 +260,3 @@
     t.setDaemon(True)
     t.start()
     return t
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/test/test_lockfile.py 
new/lockfile-0.12.2/test/test_lockfile.py
--- old/lockfile-0.10.2/test/test_lockfile.py   2014-09-19 14:23:31.000000000 
+0200
+++ new/lockfile-0.12.2/test/test_lockfile.py   2015-11-25 19:29:13.000000000 
+0100
@@ -1,36 +1,41 @@
-import sys
-
 import lockfile.linklockfile
 import lockfile.mkdirlockfile
 import lockfile.pidlockfile
 import lockfile.symlinklockfile
 
 from compliancetest import ComplianceTest
-    
+
+
 class TestLinkLockFile(ComplianceTest):
     class_to_test = lockfile.linklockfile.LinkLockFile
 
+
 class TestSymlinkLockFile(ComplianceTest):
     class_to_test = lockfile.symlinklockfile.SymlinkLockFile
 
+
 class TestMkdirLockFile(ComplianceTest):
     class_to_test = lockfile.mkdirlockfile.MkdirLockFile
 
+
 class TestPIDLockFile(ComplianceTest):
     class_to_test = lockfile.pidlockfile.PIDLockFile
 
+
 # Check backwards compatibility
 class TestLinkFileLock(ComplianceTest):
     class_to_test = lockfile.LinkFileLock
 
+
 class TestMkdirFileLock(ComplianceTest):
     class_to_test = lockfile.MkdirFileLock
 
 try:
-    import sqlite3
+    import sqlite3   # noqa
 except ImportError:
     pass
 else:
     import lockfile.sqlitelockfile
+
     class TestSQLiteLockFile(ComplianceTest):
         class_to_test = lockfile.sqlitelockfile.SQLiteLockFile
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/test-requirements.txt 
new/lockfile-0.12.2/test-requirements.txt
--- old/lockfile-0.10.2/test-requirements.txt   2014-09-19 14:23:31.000000000 
+0200
+++ new/lockfile-0.12.2/test-requirements.txt   2015-11-25 19:29:13.000000000 
+0100
@@ -1,2 +1,5 @@
+# The order of packages is significant, because pip processes them in the order
+# of appearance. Changing the order has an impact on the overall integration
+# process, which may cause wedges in the gate later.
 nose
-sphinx>=1.1.2,!=1.2.0,<1.3
+sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lockfile-0.10.2/tox.ini new/lockfile-0.12.2/tox.ini
--- old/lockfile-0.10.2/tox.ini 2014-09-19 14:23:32.000000000 +0200
+++ new/lockfile-0.12.2/tox.ini 2015-11-25 19:29:13.000000000 +0100
@@ -1,6 +1,6 @@
 # content of: tox.ini , put in same dir as setup.py
 [tox]
-envlist = py26,py27,py32,py33,py34
+envlist = py27,py32,py33,py34
 
 [testenv]
 deps = -r{toxinidir}/test-requirements.txt
@@ -23,6 +23,5 @@
   nosetests --with-coverage --cover-erase --cover-package=lockfile 
--cover-inclusive []
 
 [flake8]
-ignore = 
E121,E123,E128,E221,E226,E261,E265,E301,E302,E713,F401,F841,W291,W293,W391
 exclude=.venv,.git,.tox,dist,doc
 show-source = True


Reply via email to