Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-filelock for openSUSE:Factory 
checked in at 2024-03-26 19:25:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-filelock (Old)
 and      /work/SRC/openSUSE:Factory/.python-filelock.new.1905 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-filelock"

Tue Mar 26 19:25:32 2024 rev:17 rq:1161514 version:3.13.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-filelock/python-filelock.changes  
2023-11-28 22:19:11.921333375 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-filelock.new.1905/python-filelock.changes    
    2024-03-26 19:27:47.854120306 +0100
@@ -1,0 +2,10 @@
+Mon Mar 25 17:29:15 UTC 2024 - Dirk Müller <dmuel...@suse.com>
+
+- update to 3.13.2:
+  * Fixed small typo in _unix.py
+  * Update SECURITY.md to reflect Python 3.7 support dropoff
+  * Update index.rst to improve the demo usage
+  * [BugFix] fix permission denied error when lock file is placed
+    in `/tmp`
+
+-------------------------------------------------------------------

Old:
----
  filelock-3.13.1.tar.gz

New:
----
  filelock-3.13.2.tar.gz

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

Other differences:
------------------
++++++ python-filelock.spec ++++++
--- /var/tmp/diff_new_pack.OJwclO/_old  2024-03-26 19:27:48.298136644 +0100
+++ /var/tmp/diff_new_pack.OJwclO/_new  2024-03-26 19:27:48.298136644 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-filelock
 #
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
 # Copyright (c) 2018 Matthias Fehring <buschman...@opensuse.org>
 #
 # All modifications and additions to the file contributed by third parties
@@ -19,7 +19,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-filelock
-Version:        3.13.1
+Version:        3.13.2
 Release:        0
 Summary:        Platform Independent File Lock in Python
 License:        Unlicense

++++++ filelock-3.13.1.tar.gz -> filelock-3.13.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/filelock-3.13.1/PKG-INFO new/filelock-3.13.2/PKG-INFO
--- old/filelock-3.13.1/PKG-INFO        2020-02-02 01:00:00.000000000 +0100
+++ new/filelock-3.13.2/PKG-INFO        2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.3
 Name: filelock
-Version: 3.13.1
+Version: 3.13.2
 Summary: A platform independent file lock.
 Project-URL: Documentation, https://py-filelock.readthedocs.io
 Project-URL: Homepage, https://github.com/tox-dev/py-filelock
@@ -27,18 +27,18 @@
 Requires-Python: >=3.8
 Provides-Extra: docs
 Requires-Dist: furo>=2023.9.10; extra == 'docs'
-Requires-Dist: sphinx-autodoc-typehints!=1.23.4,>=1.24; extra == 'docs'
+Requires-Dist: sphinx-autodoc-typehints!=1.23.4,>=1.25.2; extra == 'docs'
 Requires-Dist: sphinx>=7.2.6; extra == 'docs'
 Provides-Extra: testing
 Requires-Dist: covdefaults>=2.3; extra == 'testing'
 Requires-Dist: coverage>=7.3.2; extra == 'testing'
-Requires-Dist: diff-cover>=8; extra == 'testing'
+Requires-Dist: diff-cover>=8.0.1; extra == 'testing'
 Requires-Dist: pytest-cov>=4.1; extra == 'testing'
 Requires-Dist: pytest-mock>=3.12; extra == 'testing'
 Requires-Dist: pytest-timeout>=2.2; extra == 'testing'
 Requires-Dist: pytest>=7.4.3; extra == 'testing'
 Provides-Extra: typing
-Requires-Dist: typing-extensions>=4.8; python_version < '3.11' and extra == 
'typing'
+Requires-Dist: typing-extensions>=4.8; (python_version < '3.11') and extra == 
'typing'
 Description-Content-Type: text/markdown
 
 # filelock
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/filelock-3.13.1/pyproject.toml 
new/filelock-3.13.2/pyproject.toml
--- old/filelock-3.13.1/pyproject.toml  2020-02-02 01:00:00.000000000 +0100
+++ new/filelock-3.13.2/pyproject.toml  2020-02-02 01:00:00.000000000 +0100
@@ -1,7 +1,7 @@
 [build-system]
 build-backend = "hatchling.build"
 requires = [
-  "hatch-vcs>=0.3",
+  "hatch-vcs>=0.4",
   "hatchling>=1.18",
 ]
 
@@ -41,12 +41,12 @@
 optional-dependencies.docs = [
   "furo>=2023.9.10",
   "sphinx>=7.2.6",
-  "sphinx-autodoc-typehints!=1.23.4,>=1.24",
+  "sphinx-autodoc-typehints!=1.23.4,>=1.25.2",
 ]
 optional-dependencies.testing = [
   "covdefaults>=2.3",
   "coverage>=7.3.2",
-  "diff-cover>=8",
+  "diff-cover>=8.0.1",
   "pytest>=7.4.3",
   "pytest-cov>=4.1",
   "pytest-mock>=3.12",
@@ -65,33 +65,43 @@
 build.targets.sdist.include = ["/src", "/tests", "/tox.ini"]
 version.source = "vcs"
 
-[tool.black]
-line-length = 120
-
 [tool.ruff]
-select = ["ALL"]
 line-length = 120
 target-version = "py38"
-isort = {known-first-party = ["filelock"], required-imports = ["from 
__future__ import annotations"]}
-ignore = [
-    "ANN101",  # Missing type annotation for `self` in method
-    "D301",  #  Use `r"""` if any backslashes in a docstring
-    "D205",  # 1 blank line required between summary line and description
-    "D401",  # First line of docstring should be in imperative mood
-    "D203",  # `one-blank-line-before-class` (D203) and 
`no-blank-line-before-class` (D211) are incompatible
-    "D212",  # `multi-line-summary-first-line` (D212) and 
`multi-line-summary-second-line` (D213) are incompatible
-    "S104",  # Possible binding to all interface
-]
-[tool.ruff.per-file-ignores]
+lint.isort = { known-first-party = ["filelock"], required-imports = ["from 
__future__ import annotations"] }
+lint.select = ["ALL"]
+lint.ignore = [
+  "ANN101", # Missing type annotation for `self` in method
+  "D301",   #  Use `r"""` if any backslashes in a docstring
+  "D205",   # 1 blank line required between summary line and description
+  "D401",   # First line of docstring should be in imperative mood
+  "D203",   # `one-blank-line-before-class` (D203) and 
`no-blank-line-before-class` (D211) are incompatible
+  "D212",   # `multi-line-summary-first-line` (D212) and 
`multi-line-summary-second-line` (D213) are incompatible
+  "S104",   # Possible binding to all interface
+  "COM812", # Conflict with formatter
+  "ISC001", # Conflict with formatter
+  "CPY",    # No copyright statements
+]
+lint.preview = true
+format.preview = true
+format.docstring-code-format = true
+format.docstring-code-line-length = 100
+[tool.ruff.lint.per-file-ignores]
 "tests/**/*.py" = [
-    "S101",  # asserts allowed in tests...
-    "FBT",  # don"t care about booleans as positional arguments in tests
-    "INP001", # no implicit namespace
-    "D",  # don"t care about documentation in tests
-    "S603",  # `subprocess` call: check for execution of untrusted input
-    "PLR2004",  # Magic value used in comparison, consider replacing with a 
constant variable
+  "S101",    # asserts allowed in tests...
+  "FBT",     # don"t care about booleans as positional arguments in tests
+  "INP001",  # no implicit namespace
+  "D",       # don"t care about documentation in tests
+  "S603",    # `subprocess` call: check for execution of untrusted input
+  "PLR2004", # Magic value used in comparison, consider replacing with a 
constant variable
 ]
 
+[tool.codespell]
+builtin = "clear,usage,en-GB_to_en-US"
+count = true
+quiet-level = 3
+ignore-words-list = "master"
+
 [tool.coverage]
 html.show_contexts = true
 html.skip_covered = false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/filelock-3.13.1/src/filelock/__init__.py 
new/filelock-3.13.2/src/filelock/__init__.py
--- old/filelock-3.13.1/src/filelock/__init__.py        2020-02-02 
01:00:00.000000000 +0100
+++ new/filelock-3.13.2/src/filelock/__init__.py        2020-02-02 
01:00:00.000000000 +0100
@@ -5,6 +5,7 @@
    :no-value:
 
 """
+
 from __future__ import annotations
 
 import sys
@@ -40,12 +41,12 @@
 
 
 __all__ = [
-    "__version__",
+    "AcquireReturnProxy",
+    "BaseFileLock",
     "FileLock",
     "SoftFileLock",
     "Timeout",
     "UnixFileLock",
     "WindowsFileLock",
-    "BaseFileLock",
-    "AcquireReturnProxy",
+    "__version__",
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/filelock-3.13.1/src/filelock/_api.py 
new/filelock-3.13.2/src/filelock/_api.py
--- old/filelock-3.13.1/src/filelock/_api.py    2020-02-02 01:00:00.000000000 
+0100
+++ new/filelock-3.13.2/src/filelock/_api.py    2020-02-02 01:00:00.000000000 
+0100
@@ -30,7 +30,7 @@
 # is not called twice when entering the with statement. If we would simply 
return *self*, the lock would be acquired
 # again in the *__enter__* method of the BaseFileLock, but not released again 
automatically. issue #37 (memory leak)
 class AcquireReturnProxy:
-    """A context aware object that will release the lock file when exiting."""
+    """A context-aware object that will release the lock file when exiting."""
 
     def __init__(self, lock: BaseFileLock) -> None:
         self.lock = lock
@@ -115,13 +115,14 @@
         :param lock_file: path to the file
         :param timeout: default timeout when acquiring the lock, in seconds. 
It will be used as fallback value in \
             the acquire method, if no timeout value (``None``) is given. If 
you want to disable the timeout, set it \
-            to a negative value. A timeout of 0 means, that there is exactly 
one attempt to acquire the file lock.
+            to a negative value. A timeout of 0 means that there is exactly 
one attempt to acquire the file lock.
         :param mode: file permissions for the lockfile
         :param thread_local: Whether this object's internal context should be 
thread local or not. If this is set to \
             ``False`` then the lock will be reentrant across threads.
         :param is_singleton: If this is set to ``True`` then only one instance 
of this class will be created \
             per lock file. This is useful if you want to use the lock object 
for reentrant locking without needing \
             to pass the same object around.
+
         """
         self._is_thread_local = thread_local
         self._is_singleton = is_singleton
@@ -164,6 +165,7 @@
         Change the default timeout value.
 
         :param value: the new value, in seconds
+
         """
         self._context.timeout = float(value)
 
@@ -272,10 +274,11 @@
 
     def release(self, force: bool = False) -> None:  # noqa: FBT001, FBT002
         """
-        Releases the file lock. Please note, that the lock is only completely 
released, if the lock counter is 0. Also
-        note, that the lock file itself is not automatically deleted.
+        Releases the file lock. Please note, that the lock is only completely 
released, if the lock counter is 0.
+        Also note, that the lock file itself is not automatically deleted.
 
         :param force: If true, the lock counter is ignored and the lock is 
released in every case/
+
         """
         if self.is_locked:
             self._context.lock_counter -= 1
@@ -293,6 +296,7 @@
         Acquire the lock.
 
         :return: the lock object
+
         """
         self.acquire()
         return self
@@ -309,6 +313,7 @@
         :param exc_type: the exception type if raised
         :param exc_value: the exception value if raised
         :param traceback: the exception traceback if raised
+
         """
         self.release()
 
@@ -318,6 +323,6 @@
 
 
 __all__ = [
-    "BaseFileLock",
     "AcquireReturnProxy",
+    "BaseFileLock",
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/filelock-3.13.1/src/filelock/_unix.py 
new/filelock-3.13.2/src/filelock/_unix.py
--- old/filelock-3.13.1/src/filelock/_unix.py   2020-02-02 01:00:00.000000000 
+0100
+++ new/filelock-3.13.2/src/filelock/_unix.py   2020-02-02 01:00:00.000000000 
+0100
@@ -4,6 +4,7 @@
 import sys
 from contextlib import suppress
 from errno import ENOSYS
+from pathlib import Path
 from typing import cast
 
 from ._api import BaseFileLock
@@ -35,7 +36,9 @@
 
         def _acquire(self) -> None:
             ensure_directory_exists(self.lock_file)
-            open_flags = os.O_RDWR | os.O_CREAT | os.O_TRUNC
+            open_flags = os.O_RDWR | os.O_TRUNC
+            if not Path(self.lock_file).exists():
+                open_flags |= os.O_CREAT
             fd = os.open(self.lock_file, open_flags, self._context.mode)
             with suppress(PermissionError):  # This locked is not owned by 
this UID
                 os.fchmod(fd, self._context.mode)
@@ -44,7 +47,7 @@
             except OSError as exception:
                 os.close(fd)
                 if exception.errno == ENOSYS:  # NotImplemented error
-                    msg = "FileSystem does not appear to support flock; user 
SoftFileLock instead"
+                    msg = "FileSystem does not appear to support flock; use 
SoftFileLock instead"
                     raise NotImplementedError(msg) from exception
             else:
                 self._context.lock_file_fd = fd
@@ -60,6 +63,6 @@
 
 
 __all__ = [
-    "has_fcntl",
     "UnixFileLock",
+    "has_fcntl",
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/filelock-3.13.1/src/filelock/_util.py 
new/filelock-3.13.2/src/filelock/_util.py
--- old/filelock-3.13.1/src/filelock/_util.py   2020-02-02 01:00:00.000000000 
+0100
+++ new/filelock-3.13.2/src/filelock/_util.py   2020-02-02 01:00:00.000000000 
+0100
@@ -10,10 +10,13 @@
 def raise_on_not_writable_file(filename: str) -> None:
     """
     Raise an exception if attempting to open the file for writing would fail.
-    This is done so files that will never be writable can be separated from
-    files that are writable but currently locked
+
+    This is done so files that will never be writable can be separated from 
files that are writable but currently
+    locked.
+
     :param filename: file to check
     :raises OSError: as if the file was opened for writing.
+
     """
     try:  # use stat to do exists + can write to check without race condition
         file_stat = os.stat(filename)  # noqa: PTH116
@@ -35,13 +38,15 @@
 
 def ensure_directory_exists(filename: Path | str) -> None:
     """
-    Ensure the directory containing the file exists (create it if necessary)
+    Ensure the directory containing the file exists (create it if necessary).
+
     :param filename: file.
+
     """
     Path(filename).parent.mkdir(parents=True, exist_ok=True)
 
 
 __all__ = [
-    "raise_on_not_writable_file",
     "ensure_directory_exists",
+    "raise_on_not_writable_file",
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/filelock-3.13.1/src/filelock/version.py 
new/filelock-3.13.2/src/filelock/version.py
--- old/filelock-3.13.1/src/filelock/version.py 2020-02-02 01:00:00.000000000 
+0100
+++ new/filelock-3.13.2/src/filelock/version.py 2020-02-02 01:00:00.000000000 
+0100
@@ -12,5 +12,5 @@
 __version_tuple__: VERSION_TUPLE
 version_tuple: VERSION_TUPLE
 
-__version__ = version = '3.13.1'
-__version_tuple__ = version_tuple = (3, 13, 1)
+__version__ = version = '3.13.2'
+__version_tuple__ = version_tuple = (3, 13, 2)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/filelock-3.13.1/tests/test_error.py 
new/filelock-3.13.2/tests/test_error.py
--- old/filelock-3.13.1/tests/test_error.py     2020-02-02 01:00:00.000000000 
+0100
+++ new/filelock-3.13.2/tests/test_error.py     2020-02-02 01:00:00.000000000 
+0100
@@ -1,6 +1,6 @@
 from __future__ import annotations
 
-import pickle
+import pickle  # noqa: S403
 
 from filelock import Timeout
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/filelock-3.13.1/tests/test_filelock.py 
new/filelock-3.13.2/tests/test_filelock.py
--- old/filelock-3.13.1/tests/test_filelock.py  2020-02-02 01:00:00.000000000 
+0100
+++ new/filelock-3.13.2/tests/test_filelock.py  2020-02-02 01:00:00.000000000 
+0100
@@ -109,15 +109,16 @@
         pytest.param(FileNotFoundError, "No such file or directory:", "", 
id="blank_filename"),
         pytest.param(ValueError, "embedded null (byte|character)", "\0", 
id="null_byte"),
         # Should be PermissionError on Windows
-        pytest.param(PermissionError, "Permission denied:", ".", 
id="current_directory")
-        if sys.platform == "win32"
-        else (
+        (
+            pytest.param(PermissionError, "Permission denied:", ".", 
id="current_directory")
+            if sys.platform == "win32"
             # Should be IsADirectoryError on MacOS and Linux
-            pytest.param(IsADirectoryError, "Is a directory", ".", 
id="current_directory")
-            if sys.platform in ["darwin", "linux"]
-            else
-            # Should be some type of OSError at least on other operating 
systems
-            pytest.param(OSError, None, ".", id="current_directory")
+            else (
+                pytest.param(IsADirectoryError, "Is a directory", ".", 
id="current_directory")
+                if sys.platform in {"darwin", "linux"}
+                # Should be some type of OSError at least on other operating 
systems
+                else pytest.param(OSError, None, ".", id="current_directory")
+            )
         ),
     ]
     + [pytest.param(OSError, "Invalid argument", i, id=f"invalid_{i}", 
marks=WindowsOnly) for i in '<>:"|?*\a']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/filelock-3.13.1/tox.ini new/filelock-3.13.2/tox.ini
--- old/filelock-3.13.1/tox.ini 2020-02-02 01:00:00.000000000 +0100
+++ new/filelock-3.13.2/tox.ini 2020-02-02 01:00:00.000000000 +0100
@@ -46,7 +46,7 @@
 [testenv:type]
 description = run type check on code base
 deps =
-    mypy==1.6.1
+    mypy==1.7.1
 set_env =
     {tty:MYPY_FORCE_COLOR = 1}
 commands =
@@ -59,7 +59,7 @@
 deps =
     covdefaults>=2.3
     coverage[toml]>=7.3.2
-    diff-cover>=8
+    diff-cover>=8.0.1
 extras =
 parallel_show_output = true
 pass_env =

Reply via email to