Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-fs for openSUSE:Factory checked in at 2022-03-29 18:14:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-fs (Old) and /work/SRC/openSUSE:Factory/.python-fs.new.1900 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-fs" Tue Mar 29 18:14:02 2022 rev:13 rq:965110 version:2.4.15 Changes: -------- --- /work/SRC/openSUSE:Factory/python-fs/python-fs.changes 2022-01-17 22:33:52.586236998 +0100 +++ /work/SRC/openSUSE:Factory/.python-fs.new.1900/python-fs.changes 2022-03-29 18:14:12.463061289 +0200 @@ -1,0 +2,11 @@ +Sat Mar 26 21:28:30 UTC 2022 - Dirk M??ller <dmuel...@suse.com> + +- update to 2.4.15: + - Support more lenient usernames and group names in FTP servers + - Fixed `MemoryFS.move` and `MemoryFS.movedir` not updating the name of moved + resources, causing `MemoryFS.scandir` to use the old name. + - Make `WrapFS.move` and `WrapFS.movedir` use the delegate FS methods instead + of `fs.move` functions, which was causing optimized implementation of + `movedir` to be always skipped. + +------------------------------------------------------------------- Old: ---- fs-2.4.14.tar.gz New: ---- fs-2.4.15.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-fs.spec ++++++ --- /var/tmp/diff_new_pack.6Edswf/_old 2022-03-29 18:14:12.975061760 +0200 +++ /var/tmp/diff_new_pack.6Edswf/_new 2022-03-29 18:14:12.983061767 +0200 @@ -20,7 +20,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %bcond_without python2 Name: python-fs -Version: 2.4.14 +Version: 2.4.15 Release: 0 Summary: Python's filesystem abstraction layer License: MIT ++++++ fs-2.4.14.tar.gz -> fs-2.4.15.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fs-2.4.14/CHANGELOG.md new/fs-2.4.15/CHANGELOG.md --- old/fs-2.4.14/CHANGELOG.md 2021-11-16 16:55:48.000000000 +0100 +++ new/fs-2.4.15/CHANGELOG.md 2022-02-07 13:25:38.000000000 +0100 @@ -9,6 +9,26 @@ ## Unreleased +## [2.4.15] - 2022-02-07 + +### Changed + +- Support more lenient usernames and group names in FTP servers + ([#507](https://github.com/PyFilesystem/pyfilesystem2/pull/507)). + Closes [#506](https://github.com/PyFilesystem/pyfilesystem2/issues/506). + +### Fixed + +- Fixed `MemoryFS.move` and `MemoryFS.movedir` not updating the name of moved + resources, causing `MemoryFS.scandir` to use the old name. + ([#510](https://github.com/PyFilesystem/pyfilesystem2/pull/510)). + Closes [#509](https://github.com/PyFilesystem/pyfilesystem2/issues/509). +- Make `WrapFS.move` and `WrapFS.movedir` use the delegate FS methods instead + of `fs.move` functions, which was causing optimized implementation of + `movedir` to be always skipped. + ([#511](https://github.com/PyFilesystem/pyfilesystem2/pull/511)). + + ## [2.4.14] - 2021-11-16 ### Added diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fs-2.4.14/CONTRIBUTORS.md new/fs-2.4.15/CONTRIBUTORS.md --- old/fs-2.4.14/CONTRIBUTORS.md 2021-11-16 16:55:48.000000000 +0100 +++ new/fs-2.4.15/CONTRIBUTORS.md 2022-02-07 13:25:38.000000000 +0100 @@ -2,6 +2,7 @@ Many thanks to the following developers for contributing to this project: +- [Adrian Garcia Badaracco](https://github.com/adriangb) - [Alex Povel](https://github.com/alexpovel) - [Andreas Tollk??tter](https://github.com/atollk) - [Andrew Scheller](https://github.com/lurch) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fs-2.4.14/PKG-INFO new/fs-2.4.15/PKG-INFO --- old/fs-2.4.14/PKG-INFO 2021-11-16 16:55:51.959775200 +0100 +++ new/fs-2.4.15/PKG-INFO 2022-02-07 13:25:43.021060500 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: fs -Version: 2.4.14 +Version: 2.4.15 Summary: Python's filesystem abstraction layer Home-page: https://github.com/PyFilesystem/pyfilesystem2 Author: Will McGugan @@ -18,12 +18,12 @@ Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2.7 -Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: System :: Filesystems diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fs-2.4.14/fs/_ftp_parse.py new/fs-2.4.15/fs/_ftp_parse.py --- old/fs-2.4.14/fs/_ftp_parse.py 2021-11-16 16:55:48.000000000 +0100 +++ new/fs-2.4.15/fs/_ftp_parse.py 2022-02-07 13:25:38.000000000 +0100 @@ -24,9 +24,9 @@ \s+? (\d+) \s+? - ([\w\-]+) + ([A-Za-z0-9][A-Za-z0-9\-\.\_\@]*\$?) \s+? - ([\w\-]+) + ([A-Za-z0-9][A-Za-z0-9\-\.\_\@]*\$?) \s+? (\d+) \s+? diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fs-2.4.14/fs/_version.py new/fs-2.4.15/fs/_version.py --- old/fs-2.4.14/fs/_version.py 2021-11-16 16:55:48.000000000 +0100 +++ new/fs-2.4.15/fs/_version.py 2022-02-07 13:25:38.000000000 +0100 @@ -1,3 +1,3 @@ """Version, used in module and setup.py. """ -__version__ = "2.4.14" +__version__ = "2.4.15" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fs-2.4.14/fs/errors.py new/fs-2.4.15/fs/errors.py --- old/fs-2.4.14/fs/errors.py 2021-11-16 16:55:48.000000000 +0100 +++ new/fs-2.4.15/fs/errors.py 2022-02-07 13:25:38.000000000 +0100 @@ -51,6 +51,7 @@ "ResourceNotFound", "ResourceReadOnly", "Unsupported", + "UnsupportedHash", ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fs-2.4.14/fs/memoryfs.py new/fs-2.4.15/fs/memoryfs.py --- old/fs-2.4.14/fs/memoryfs.py 2021-11-16 16:55:48.000000000 +0100 +++ new/fs-2.4.15/fs/memoryfs.py 2022-02-07 13:25:38.000000000 +0100 @@ -463,8 +463,11 @@ elif not overwrite and dst_name in dst_dir_entry: raise errors.DestinationExists(dst_path) + # move the entry from the src folder to the dst folder dst_dir_entry.set_entry(dst_name, src_entry) src_dir_entry.remove_entry(src_name) + # make sure to update the entry name itself (see #509) + src_entry.name = dst_name if preserve_time: copy_modified_time(self, src_path, self, dst_path) @@ -481,12 +484,16 @@ if not src_entry.is_dir: raise errors.DirectoryExpected(src_path) + # move the entry from the src folder to the dst folder dst_dir_entry = self._get_dir_entry(dst_dir) if dst_dir_entry is None or (not create and dst_name not in dst_dir_entry): raise errors.ResourceNotFound(dst_path) + # move the entry from the src folder to the dst folder dst_dir_entry.set_entry(dst_name, src_entry) src_dir_entry.remove_entry(src_name) + # make sure to update the entry name itself (see #509) + src_entry.name = dst_name if preserve_time: copy_modified_time(self, src_path, self, dst_path) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fs-2.4.14/fs/test.py new/fs-2.4.15/fs/test.py --- old/fs-2.4.14/fs/test.py 2021-11-16 16:55:48.000000000 +0100 +++ new/fs-2.4.15/fs/test.py 2022-02-07 13:25:38.000000000 +0100 @@ -1738,6 +1738,24 @@ self._test_copy_dir("temp://") self._test_copy_dir_write("temp://") + def test_move_dir_same_fs(self): + self.fs.makedirs("foo/bar/baz") + self.fs.makedir("egg") + self.fs.writetext("top.txt", "Hello, World") + self.fs.writetext("/foo/bar/baz/test.txt", "Goodbye, World") + + fs.move.move_dir(self.fs, "foo", self.fs, "foo2") + + expected = {"/egg", "/foo2", "/foo2/bar", "/foo2/bar/baz"} + self.assertEqual(set(walk.walk_dirs(self.fs)), expected) + self.assert_text("top.txt", "Hello, World") + self.assert_text("/foo2/bar/baz/test.txt", "Goodbye, World") + + self.assertEqual(sorted(self.fs.listdir("/")), ["egg", "foo2", "top.txt"]) + self.assertEqual( + sorted(x.name for x in self.fs.scandir("/")), ["egg", "foo2", "top.txt"] + ) + def _test_move_dir_write(self, protocol): # Test moving to this filesystem from another. other_fs = open_fs(protocol) @@ -1760,19 +1778,6 @@ def test_move_dir_temp(self): self._test_move_dir_write("temp://") - def test_move_same_fs(self): - self.fs.makedirs("foo/bar/baz") - self.fs.makedir("egg") - self.fs.writetext("top.txt", "Hello, World") - self.fs.writetext("/foo/bar/baz/test.txt", "Goodbye, World") - - fs.move.move_dir(self.fs, "foo", self.fs, "foo2") - - expected = {"/egg", "/foo2", "/foo2/bar", "/foo2/bar/baz"} - self.assertEqual(set(walk.walk_dirs(self.fs)), expected) - self.assert_text("top.txt", "Hello, World") - self.assert_text("/foo2/bar/baz/test.txt", "Goodbye, World") - def test_move_file_same_fs(self): text = "Hello, World" self.fs.makedir("foo").writetext("test.txt", text) @@ -1782,6 +1787,9 @@ self.assert_not_exists("foo/test.txt") self.assert_text("foo/test2.txt", text) + self.assertEqual(self.fs.listdir("foo"), ["test2.txt"]) + self.assertEqual(next(self.fs.scandir("foo")).name, "test2.txt") + def _test_move_file(self, protocol): other_fs = open_fs(protocol) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fs-2.4.14/fs/wrapfs.py new/fs-2.4.15/fs/wrapfs.py --- old/fs-2.4.14/fs/wrapfs.py 2021-11-16 16:55:48.000000000 +0100 +++ new/fs-2.4.15/fs/wrapfs.py 2022-02-07 13:25:38.000000000 +0100 @@ -11,7 +11,6 @@ from .base import FS from .copy import copy_file, copy_dir from .info import Info -from .move import move_file, move_dir from .path import abspath, join, normpath from .error_tools import unwrap_errors @@ -169,24 +168,21 @@ def move(self, src_path, dst_path, overwrite=False, preserve_time=False): # type: (Text, Text, bool, bool) -> None - # A custom move permits a potentially optimized code path - src_fs, _src_path = self.delegate_path(src_path) - dst_fs, _dst_path = self.delegate_path(dst_path) + _fs, _src_path = self.delegate_path(src_path) + _, _dst_path = self.delegate_path(dst_path) with unwrap_errors({_src_path: src_path, _dst_path: dst_path}): - if not overwrite and dst_fs.exists(_dst_path): - raise errors.DestinationExists(_dst_path) - move_file(src_fs, _src_path, dst_fs, _dst_path, preserve_time=preserve_time) + _fs.move( + _src_path, _dst_path, overwrite=overwrite, preserve_time=preserve_time + ) def movedir(self, src_path, dst_path, create=False, preserve_time=False): # type: (Text, Text, bool, bool) -> None - src_fs, _src_path = self.delegate_path(src_path) - dst_fs, _dst_path = self.delegate_path(dst_path) + _fs, _src_path = self.delegate_path(src_path) + _, _dst_path = self.delegate_path(dst_path) with unwrap_errors({_src_path: src_path, _dst_path: dst_path}): - if not create and not dst_fs.exists(_dst_path): - raise errors.ResourceNotFound(dst_path) - if not src_fs.getinfo(_src_path).is_dir: - raise errors.DirectoryExpected(src_path) - move_dir(src_fs, _src_path, dst_fs, _dst_path, preserve_time=preserve_time) + _fs.movedir( + _src_path, _dst_path, create=create, preserve_time=preserve_time + ) def openbin(self, path, mode="r", buffering=-1, **options): # type: (Text, Text, int, **Any) -> BinaryIO diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fs-2.4.14/fs.egg-info/PKG-INFO new/fs-2.4.15/fs.egg-info/PKG-INFO --- old/fs-2.4.14/fs.egg-info/PKG-INFO 2021-11-16 16:55:51.000000000 +0100 +++ new/fs-2.4.15/fs.egg-info/PKG-INFO 2022-02-07 13:25:43.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: fs -Version: 2.4.14 +Version: 2.4.15 Summary: Python's filesystem abstraction layer Home-page: https://github.com/PyFilesystem/pyfilesystem2 Author: Will McGugan @@ -18,12 +18,12 @@ Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2.7 -Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: System :: Filesystems diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fs-2.4.14/setup.cfg new/fs-2.4.15/setup.cfg --- old/fs-2.4.14/setup.cfg 2021-11-16 16:55:51.959775200 +0100 +++ new/fs-2.4.15/setup.cfg 2022-02-07 13:25:43.025060400 +0100 @@ -19,12 +19,12 @@ Operating System :: OS Independent Programming Language :: Python Programming Language :: Python :: 2.7 - Programming Language :: Python :: 3.4 Programming Language :: Python :: 3.5 Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 + Programming Language :: Python :: 3.10 Programming Language :: Python :: Implementation :: CPython Programming Language :: Python :: Implementation :: PyPy Topic :: System :: Filesystems @@ -122,7 +122,7 @@ slow: marks tests as slow (deselect with '-m "not slow"') [tox:tox] -envlist = py{27,34}{,-scandir}, py{35,36,37,38,39}, pypy{27,36,37}, typecheck, codestyle, docstyle, codeformat +envlist = py{27,34}{,-scandir}, py{35,36,37,38,39,310}, pypy{27,36,37}, typecheck, codestyle, docstyle, codeformat sitepackages = false skip_missing_interpreters = true requires = @@ -133,9 +133,9 @@ deps = -rtests/requirements.txt coverage~=5.0 - py{35,36,37,38,39,py36,py37}: pytest~=6.0 + py{35,36,37,38,39,310,py36,py37}: pytest~=6.0 py{27,34,py27}: pytest~=4.6 - py{35,36,37,38,39,py36,py37}: pytest-randomly~=3.5 + py{35,36,37,38,39,310,py36,py37}: pytest-randomly~=3.5 py{27,34,py27}: pytest-randomly~=1.2 scandir: .[scandir] !scandir: . @@ -174,6 +174,7 @@ 3.7: py37 3.8: py38 3.9: py39 + 3.10: py310 pypy-2.7: pypy27 pypy-3.6: pypy36 pypy-3.7: pypy37 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fs-2.4.14/tests/test_ftp_parse.py new/fs-2.4.15/tests/test_ftp_parse.py --- old/fs-2.4.14/tests/test_ftp_parse.py 2021-11-16 16:55:48.000000000 +0100 +++ new/fs-2.4.15/tests/test_ftp_parse.py 2022-02-07 13:25:38.000000000 +0100 @@ -50,7 +50,9 @@ drwxr-xr-x 12 0 0 4096 Sep 29 13:13 pub -rw-r--r-- 1 0 0 26 Mar 04 2010 robots.txt drwxr-xr-x 8 foo bar 4096 Oct 4 09:05 test + drwxr-xr-x 8 f b 4096 Oct 4 09:05 test drwxr-xr-x 2 foo-user foo-group 0 Jan 5 11:59 240485 + drwxr-xr-x 2 foo.user$ foo@group_ 0 Jan 5 11:59 240485 """ ) @@ -149,6 +151,18 @@ }, { "access": { + "group": "b", + "permissions": ["g_r", "g_x", "o_r", "o_x", "u_r", "u_w", "u_x"], + "user": "f", + }, + "basic": {"is_dir": True, "name": "test"}, + "details": {"modified": 1507107900.0, "size": 4096, "type": 1}, + "ftp": { + "ls": "drwxr-xr-x 8 f b 4096 Oct 4 09:05 test" + }, + }, + { + "access": { "group": "foo-group", "permissions": ["g_r", "g_x", "o_r", "o_x", "u_r", "u_w", "u_x"], "user": "foo-user", @@ -159,6 +173,18 @@ "ls": "drwxr-xr-x 2 foo-user foo-group 0 Jan 5 11:59 240485" }, }, + { + "access": { + "group": "foo@group_", + "permissions": ["g_r", "g_x", "o_r", "o_x", "u_r", "u_w", "u_x"], + "user": "foo.user$", + }, + "basic": {"is_dir": True, "name": "240485"}, + "details": {"modified": 1483617540.0, "size": 0, "type": 1}, + "ftp": { + "ls": "drwxr-xr-x 2 foo.user$ foo@group_ 0 Jan 5 11:59 240485" + }, + }, ] parsed = ftp_parse.parse(directory.strip().splitlines())