Commit Graph

180 Commits

Author SHA1 Message Date
Miss Islington (bot) f1487b3235 bpo-24564: shutil.copystat(): ignore EINVAL on os.setxattr() (GH-13369)
(cherry picked from commit a16387ab2d)

Co-authored-by: Ying Wang <me@yingw787.com>
2019-05-30 13:58:30 +08:00
Miss Islington (bot) 0a5b88e7f2 bpo-24538: Fix bug in shutil involving the copying of xattrs to read-only files. (PR-13212) (#13234)
Extended attributes can only be set on user-writeable files, but shutil previously
first chmod()ed the destination file to the source's permissions and then tried to
copy xattrs. This will cause failures if attempting to copy read-only files with
xattrs, as occurs with Git clones on Lustre FS.
(cherry picked from commit 79efbb7193)

Co-authored-by: Olexa Bilaniuk <obilaniu@users.noreply.github.com>
2019-05-14 13:30:22 +08:00
Victor Stinner 394b991e41
[3.7] bpo-35755: shutil.which() uses os.confstr("CS_PATH") (GH-12862)
* bpo-35755: shutil.which() uses os.confstr("CS_PATH") (GH-12858)

shutil.which() and distutils.spawn.find_executable() now use
os.confstr("CS_PATH") if available instead of os.defpath, if the PATH
environment variable is not set.

Don't use os.confstr("CS_PATH") nor os.defpath if the PATH
environment variable is set to an empty string.

Changes:

* find_executable() now starts by checking for the executable in the
  current working directly case. Add an explicit
  "if not path: return None".
* Add tests for PATH='' (empty string), PATH=':' and for PATHEXT.

(cherry picked from commit 228a3c99bd)

* bpo-35755: Remove current directory from posixpath.defpath (GH-11586)

Document the change in a NEWS entry of the Security category.

(cherry picked from commit 2c4c02f8a8)
2019-04-17 18:38:06 +02:00
Zsolt Cserna 861f61b5a9 [3.7] bpo-34260, shutil: fix copy2 and copystat documentation (GH-8523) (GH-10065)
Fix the documentation of copy2, as it does not copy file ownership (user and
group), only mode, mtime, atime and flags.

The original text was confusing to developers as it suggested that this
command is the same as 'cp -p', but according to cp(1), '-p' copies file
ownership as well.

Clarify which metadata is copied by shutil.copystat in its docstring.

(cherry picked from commit 4f399be0e7)
2018-10-23 23:57:55 +02:00
Serhiy Storchaka d4d79bc1ff
bpo-28564: Use os.scandir() in shutil.rmtree(). (#4085)
This speeds up it to 20-40%.
2017-11-04 14:16:35 +02:00
Jelle Zijlstra a12df7b7d4 bpo-30218: support path-like objects in shutil.unpack_archive() (GH-1367)
Thanks to Jelle Zijlstra for the patch.
2017-05-05 14:27:12 -07:00
Serhiy Storchaka 5affd23e6f bpo-29762: More use "raise from None". (#569)
This hides unwanted implementation details from tracebacks.
2017-04-05 09:37:24 +03:00
Serhiy Storchaka 9bb6fe5274 Issue #14061: Misc fixes and cleanups in archiving code in shutil.
Imporoved the documentation and tests for make_archive() and unpack_archive().
Improved error handling when corresponding compress module is not available.
Brake circular dependency between shutil and tarfile modules.
2016-12-16 19:00:55 +02:00
Serhiy Storchaka 20cdffd830 Issue #14061: Misc fixes and cleanups in archiving code in shutil.
Imporoved the documentation and tests for make_archive() and unpack_archive().
Improved error handling when corresponding compress module is not available.
Brake circular dependency between shutil and tarfile modules.
2016-12-16 18:58:33 +02:00
Serhiy Storchaka 7fc92bb38a Issue #28488: shutil.make_archive() no longer adds entry "./" to ZIP archive. 2016-10-23 15:57:42 +03:00
Serhiy Storchaka 666de77727 Issue #28488: shutil.make_archive() no longer adds entry "./" to ZIP archive. 2016-10-23 15:55:09 +03:00
Martin Panter 0be894b2f6 Issue #27895: Spelling fixes (Contributed by Ville Skyttä). 2016-09-07 12:03:06 +00:00
Raymond Hettinger 15f44ab043 Issue #27895: Spelling fixes (Contributed by Ville Skyttä). 2016-08-30 10:47:49 -07:00
Martin Panter 8bde911115 Issue #27626: Merge spelling fixes from 3.5 2016-07-28 01:30:58 +00:00
Martin Panter eb9957065a Issue #27626: Spelling fixes in docs, comments and internal names
Based on patch by Ville Skyttä.
2016-07-28 01:11:04 +00:00
Serhiy Storchaka 18a8affc8e Issue #26801: shutil.get_terminal_size() now handles the case of stdout is
reopened on Windows.  Added tests for fallbacks.
2016-04-24 09:59:17 +03:00
Serhiy Storchaka d30829def2 Issue #26801: shutil.get_terminal_size() now handles the case of stdout is
reopened on Windows.  Added tests for fallbacks.
2016-04-24 09:58:43 +03:00
Victor Stinner 5bfe0da808 Merge 3.5: issue #26801 2016-04-19 22:29:11 +02:00
Victor Stinner 119ebb70e9 Fix shutil.get_terminal_size() error handling
Issue #26801: Fix error handling in shutil.get_terminal_size(), catch
AttributeError instead of NameError. Patch written by Emanuel Barry.

test_shutil: skip the functional test using "stty size" command if
os.get_terminal_size() is missing.
2016-04-19 22:24:56 +02:00
Serhiy Storchaka 899f32fe1e Issue #24982: shutil.make_archive() with the "zip" format now adds entries
for directories (including empty directories) in ZIP file.
Added test for comparing shutil.make_archive() with the "zip" command.
2015-09-08 05:53:42 +03:00
Serhiy Storchaka d941d7a586 Issue #24982: shutil.make_archive() with the "zip" format now adds entries
for directories (including empty directories) in ZIP file.
Added test for comparing shutil.make_archive() with the "zip" command.
2015-09-08 05:51:00 +03:00
Serhiy Storchaka 2504cecebd Issue #24982: shutil.make_archive() with the "zip" format now adds entries
for directories (including empty directories) in ZIP file.
Added test for comparing shutil.make_archive() with the "zip" command.
2015-09-08 05:47:23 +03:00
Raymond Hettinger 5b798abf5b Issue #24878: Add docstrings to selected namedtuples 2015-08-17 22:04:45 -07:00
Berker Peksag 940d69d444 Issue #21697: shutil.copytree() now correctly handles symbolic links that point to directories.
Patch by Eduardo Seabra and Thomas Kluyver.
2015-07-25 14:55:06 +03:00
Berker Peksag 5a294d822b Issue #21697: shutil.copytree() now correctly handles symbolic links that point to directories.
Patch by Eduardo Seabra and Thomas Kluyver.
2015-07-25 14:53:48 +03:00
Berker Peksag 5de4a3cfc5 Issue #21775: shutil.copytree(): fix crash when copying to VFAT
An exception handler assumed that that OSError objects always have a
'winerror' attribute. That is not the case, so the exception handler
itself raised AttributeError when run on Linux (and, presumably, any
other non-Windows OS).

Patch by Greg Ward.
2014-12-10 02:51:36 +02:00
Berker Peksag 884afd92f5 Issue #21775: shutil.copytree(): fix crash when copying to VFAT
An exception handler assumed that that OSError objects always have a
'winerror' attribute. That is not the case, so the exception handler
itself raised AttributeError when run on Linux (and, presumably, any
other non-Windows OS).

Patch by Greg Ward.
2014-12-10 02:50:32 +02:00
Serhiy Storchaka 0a99b2ab61 Issue #21280: Fixed a bug in shutil.make_archive() when create an archive of
current directory in current directory.
2014-11-28 00:49:50 +02:00
Serhiy Storchaka 9a4fc19589 Issue #21280: Fixed a bug in shutil.make_archive() when create an archive of
current directory in current directory.
2014-11-28 00:48:46 +02:00
Berker Peksag 8912270629 Issue #22665: Add missing get_terminal_size and SameFileError to shutil.__all__. 2014-11-01 11:05:36 +02:00
Berker Peksag 8083cd6c3b Issue #22665: Add missing get_terminal_size and SameFileError to shutil.__all__. 2014-11-01 11:04:06 +02:00
Berker Peksag 3715da5c97 Issue #21391: Use os.path.abspath in the shutil module. 2014-09-18 05:11:15 +03:00
Serhiy Storchaka 1121377cdb Issue #5411: Added support for the "xztar" format in the shutil module. 2014-08-06 18:50:19 +03:00
R David Murray 6ffface429 #19840: Add copy_function to shutil.move.
Patch by Claudiu Popa.
2014-06-11 14:40:13 -04:00
Andrew Kuchling a0934b2c1b #20744: don't try running an external 'zip' in shutil.make_archive()
Instead we'll just use the stdlib zipfile module.  Patch by Derek Chiang
2014-03-20 16:11:16 -04:00
Serhiy Storchaka 6a45021084 Issue #19856: shutil.move() failed to move a directory to other directory
on Windows if source name ends with os.altsep.
2014-02-11 10:32:41 +02:00
Serhiy Storchaka 3a308b9f37 Issue #19856: shutil.move() failed to move a directory to other directory
on Windows if source name ends with os.altsep.
2014-02-11 10:30:59 +02:00
Benjamin Peterson 85f1074438 merge 3.3 (#20102) 2014-02-02 15:31:07 -05:00
Benjamin Peterson 091d386f78 use with statement to ensure zipfile is always closed (closes #20102) 2014-02-02 15:30:22 -05:00
Victor Stinner 1d006a2c0e Backout a1a05e2724dd: shutil.which(bytes) is a new feature and my patch does not work on Windows 2013-12-16 23:39:40 +01:00
Victor Stinner fffb96ba66 Issue #18283: shutil.which() now supports bytes argument, not only text argument. 2013-12-16 22:48:48 +01:00
Ezio Melotti 9a3777e525 #18705: merge with 3.3. 2013-08-17 15:53:55 +03:00
Ezio Melotti 30b9d5d3af #18705: fix a number of typos. Patch by Févry Thibault. 2013-08-17 15:50:46 +03:00
Brett Cannon cd171c8e92 Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
Brett Cannon 0a140668fa Issue #18200: Update the stdlib (except tests) to use
ModuleNotFoundError.
2013-06-13 20:57:26 -04:00
Barry Warsaw ecaefcf44e - Issue #17012: shutil.which() no longer fallbacks to the PATH environment
variable if empty path argument is specified.  Patch by Serhiy Storchaka.
2013-04-16 11:18:18 -04:00
Barry Warsaw 618738b921 - Issue #17012: shutil.which() no longer fallbacks to the PATH environment
variable if empty path argument is specified.  Patch by Serhiy Storchaka.
2013-04-16 11:05:03 -04:00
Hynek Schlawack 4cd7b9c3e9 #17076: Make copying of xattrs more permissive of missing FS support
Patch by Thomas Wouters.
2013-02-05 08:25:24 +01:00
Hynek Schlawack 0beab058dd #17076: Make copying of xattrs more permissive of missing FS support
Patch by Thomas Wouters.
2013-02-05 08:22:44 +01:00
Serhiy Storchaka e9a63600b3 Issue #16957: shutil.which() no longer searches a bare file name in the
current directory on Unix and no longer searches a relative file path with
a directory part in PATH directories.  Patch by Thomas Kluyver.
2013-01-23 10:45:33 +02:00