Commit Graph

209 Commits

Author SHA1 Message Date
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
Serhiy Storchaka 8bea200b98 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:44:21 +02:00
Serhiy Storchaka 5b987c2e68 Issue #16993: shutil.which() now preserves the case of the path and extension
on Windows.
2013-01-21 15:01:34 +02:00
Serhiy Storchaka 014791f848 Issue #16993: shutil.which() now preserves the case of the path and extension
on Windows.
2013-01-21 15:00:27 +02:00
Andrew Svetlov 2606a6f197 Issue #16719: Get rid of WindowsError. Use OSError instead
Patch by Serhiy Storchaka.
2012-12-19 14:33:35 +02:00
Andrew Svetlov ad28c7f9da Issue #16706: get rid of os.error 2012-12-18 22:02:39 +02:00
Andrew Svetlov 3438fa496d Get rig of EnvironmentError (#16705) 2012-12-17 23:35:18 +02:00
Hynek Schlawack ae9a9e9a2d #15872: Fix 3.3 regression introduced by the new fd-based shutil.rmtree
It caused rmtree to not ignore certain errors when ignore_errors was set.

Patch by Alessandro Moura and Serhiy Storchaka.
2012-12-10 09:15:23 +01:00
Hynek Schlawack b550110f64 #15872: Fix 3.3 regression introduced by the new fd-based shutil.rmtree
It caused rmtree to not ignore certain errors when ignore_errors was set.

Patch by Alessandro Moura and Serhiy Storchaka.
2012-12-10 09:11:25 +01:00
Hynek Schlawack 4865376c44 Closes #1492704: Make shutil.copyfile() raise a distinct SameFileError
Patch by Atsuo Ishimoto.
2012-10-07 12:49:58 +02:00
Georg Brandl cc0274b90f merge with 3.2 2012-08-25 10:12:47 +02:00
Georg Brandl c8076dfa9d Fix wrong way of adding Error information in shutil.copytree. 2012-08-25 10:11:57 +02:00
Hynek Schlawack 26fe37dd3f #1492704: Backout and wait for 3.4 2012-07-19 21:41:02 +02:00
Hynek Schlawack 77d3283370 #1492704: Make shutil.copyfile() raise a distinct SameFileError
Patch by Atsuo Ishimoto.
2012-07-19 20:23:49 +02:00
Larry Hastings b40380667c Issue #15202: Consistently use the name "follow_symlinks" for
new parameters in os and shutil functions.  Patch by Serhiy Storchaka.
2012-07-15 10:57:38 -07:00
Larry Hastings ad5ae0456e - Issue #15238: shutil.copystat now copies Linux "extended attributes". 2012-07-14 17:55:11 -07:00
Hynek Schlawack d0f6e0a6e6 Check for all used fd-based functions in shutil.rmdir, closes #15218 2012-06-29 08:28:20 +02:00
Hynek Schlawack 9f558ccefd #4489: Use dir_fd in rmdir in _rmtree_safe_fd()
Now that rmdir supports dir_fd, we also use it. Attackers can't even delete
empty directories anymore.
2012-06-28 15:30:47 +02:00
Hynek Schlawack a75cd1ce73 #4489: Don't follow ever symlinks in rmtree
Also added several regression tests.
2012-06-28 12:07:29 +02:00
Hynek Schlawack 3b52778c74 #4489 Make fd based rmtree work on bytes 2012-06-25 13:27:31 +02:00
Ned Deily 5fddf866d8 Issue #14662: Prevent shutil failures on OS X when destination does not
support chflag operations.  (Patch by Hynek Schlawack)
2012-05-10 17:21:23 -07:00
Éric Araujo 89dfd5cf80 Really make bztar support in shutil conditional.
This dict entry is added a few lines after if the bzip2 module is
available, but removing this line was forgotten.
2012-02-05 13:40:08 +01:00
Florent Xicluna 5d1155c08e Closes #13258: Use callable() built-in in the standard library. 2011-10-28 14:45:05 +02:00
Éric Araujo 5fa8e7a559 Add missing name in shutil 2011-08-21 14:29:18 +02:00
Éric Araujo 43a7ee1f3b Make logging call lazy 2011-08-19 02:55:11 +02:00
Ronald Oussoren 78349b06af merge from 3.1 2011-05-06 10:57:22 +02:00
Ronald Oussoren f51738b10e Fix for issue 10684: Folders get deleted when trying to change case with shutil.move (case insensitive file systems only) 2011-05-06 10:23:04 +02:00
Nick Coghlan abf202d798 Close #11548: Correctly handle format argument in shutil.unpack_archive 2011-03-16 13:52:20 -04:00
Éric Araujo ac4e58eb61 Protect logging call against None argument (fixes #11045).
Initial patch by Kelsey Hightower.  Approved by Raymond.  A test was
non-trivial to write without calling the private function directly, so
we moved that for later.
2011-01-29 20:32:11 +00:00
Éric Araujo 4433a5fdc0 Fix wrong name in docstring and doc (#10693). Original patch by Eli Bendersky. 2010-12-15 20:26:30 +00:00
Nick Coghlan 5b0eca116a Issue #4489: Rename the feature marker for the symlink resistant rmtree and store it as a function attribute 2012-06-24 16:43:06 +10:00
Philip Jenvey 88bc0d2640 small refactor and PEP8 line width/docstring 2012-06-23 15:54:38 -07:00
Hynek Schlawack 2100b42317 #4489: Fix usage of fd-based functions to new api introduced earlier today
Also add an explicit test for safe implementation usage on supported platforms.

As a side effect, this commit adds a module-level attribute 'rmtree_is_safe'
which offers introspection whether the current rmtree implementation is safe
against symlink attacks.
2012-06-23 20:28:32 +02:00
Hynek Schlawack 67be92bed4 #4489: Add a shutil.rmtree that isn't suspectible to symlink attacks
It is used automatically on platforms supporting the necessary os.openat() and
os.unlinkat() functions. Main code by Martin von Löwis.
2012-06-23 17:58:42 +02:00
Brian Curtin dc00f1eba0 Fix #15148. Capitalize PATH, hopefully leading to less confusion 2012-06-22 22:49:12 -05:00
Brian Curtin 2193536e79 Fix #15148. Make the shutil.which docstring more thorough 2012-06-22 22:48:06 -05:00
Brian Curtin e3f3940fc3 file was the old arg name from an earlier patch. command matches the implementation 2012-06-22 21:14:34 -05:00
Alexander Belopolsky de74de5d5d Issue #15148: Fixed typos in shutil.which() docstring 2012-06-22 21:56:42 -04:00
Larry Hastings 9cf065cfdc Issue #14626: Large refactoring of functions / parameters in the os module.
Many functions now support "dir_fd" and "follow_symlinks" parameters;
some also support accepting an open file descriptor in place of of a path
string.  Added os.support_* collections as LBYL helpers.  Removed many
functions only previously seen in 3.3 alpha releases (often starting with
"f" or "l", or ending with "at").  Originally suggested by Serhiy Storchaka;
implemented by Larry Hastings.
2012-06-22 16:30:09 -07:00
Antoine Pitrou 07c24d13ed Issue #444582: shutil.which() respects relative paths. 2012-06-22 23:33:05 +02:00
Brian Curtin 849349de05 whitespace normalize 2012-06-22 16:03:06 -05:00
Brian Curtin c57a34577c Fix #444582. Add shutil.which function for finding programs on the system path. 2012-06-22 16:00:30 -05:00
Brian Curtin 0d0a1dedbc Fix #14772: Return the destination from some shutil functions. 2012-06-18 18:41:07 -05:00
Antoine Pitrou 424246fbf3 Issue #14082: shutil.copy2() now copies extended attributes, if possible.
Patch by Hynek Schlawack.
2012-05-12 19:02:01 +02:00
Ned Deily baf75713c7 Issue #14662: Prevent shutil failures on OS X when destination does not
support chflag operations.  (Patch by Hynek Schlawack)
2012-05-10 17:05:19 -07:00
Larry Hastings b14544807e Issue #14127: Fix no-op stub for platforms that lack some "os" functions. 2012-05-03 12:56:44 -07:00
Larry Hastings 76ad59b7e8 Issue #14127: Add ns= parameter to utime, futimes, and lutimes.
Removed futimens as it is now redundant.
Changed shutil.copystat to use st_atime_ns and st_mtime_ns from os.stat
and ns= parameter to utime--it once again preserves exact metadata on Linux!
2012-05-03 00:30:07 -07:00
Sandro Tosi f8ae4faf93 Issue #14650: fix typo in shutil.disk_usage() docstring; patch by Hobson Lane 2012-04-23 20:07:15 +02:00
Antoine Pitrou bcf2b59fb5 Issue #13609: Add two functions to query the terminal size:
os.get_terminal_size (low level) and shutil.get_terminal_size (high level).
Patch by Zbigniew Jędrzejewski-Szmek.
2012-02-08 23:28:36 +01:00
Éric Araujo cd0d951a70 Merge edits from 3.2 (#13716, #1040439, #2945, #13770, #6715) 2012-02-05 13:49:59 +01:00
Antoine Pitrou 0a08d7a095 Issue #9993: When the source and destination are on different filesystems,
and the source is a symlink, shutil.move() now recreates a symlink on the
destination instead of copying the file contents.
Patch by Jonathan Niehof and Hynek Schlawack.
2012-01-06 20:16:19 +01:00
Antoine Pitrou 78091e63d6 Issue #12715: Add an optional symlinks argument to shutil functions (copyfile, copymode, copystat, copy, copy2).
When that parameter is true, symlinks aren't dereferenced and the operation
instead acts on the symlink itself (or creates one, if relevant).

Patch by Hynek Schlawack.
2011-12-29 18:54:15 +01:00
Florent Xicluna 54540ec917 Remove redundant imports. 2011-11-04 08:29:17 +01:00
Florent Xicluna aabbda5354 Merge 3.2 2011-10-28 14:52:29 +02:00
Éric Araujo c1b7e7f8bb A few style changes originally done in the distutils2 repo 2011-09-18 23:12:30 +02:00
Éric Araujo 0ac4a5d6d2 Add missing name in shutil.__all__ 2011-09-01 08:31:51 +02:00
Sandro Tosi d902a14dd0 #12191: add shutil.chown() to change user and/or group owner of a given path also specifying their names. 2011-08-22 23:28:27 +02:00
Éric Araujo c5efe65df3 Merge 3.2 2011-08-21 14:30:00 +02:00
Éric Araujo 24d6cc6f4f Merge 3.2 2011-08-19 03:19:36 +02:00
Éric Araujo cfcc9779fc Remove unused names in except clauses 2011-08-10 20:54:33 +02:00
Éric Araujo e4d5b8e646 Clean up shutil.disk_usage.
- Move a test from call time to define time
- Add the function name to __all__
- Improve docstring and docs

A few lines are now duplicated (named tuple definition and docstring)
but I think the end result reads better.
2011-08-08 16:51:11 +02:00
Giampaolo Rodola' 210e7ca032 Issue #12442: add shutil.disk_usage() 2011-07-01 13:55:36 +02:00
Tarek Ziadé 582768ac1a Merged revisions 80840 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r80840 | tarek.ziade | 2010-05-06 00:43:04 +0200 (Thu, 06 May 2010) | 9 lines

  Merged revisions 80837 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r80837 | tarek.ziade | 2010-05-06 00:41:25 +0200 (Thu, 06 May 2010) | 1 line

    removed non needed lines
  ........
................
2010-05-05 22:44:06 +00:00
Tarek Ziadé b01142b5dc Merged revisions 80837 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80837 | tarek.ziade | 2010-05-06 00:41:25 +0200 (Thu, 06 May 2010) | 1 line

  removed non needed lines
........
2010-05-05 22:43:04 +00:00
Tarek Ziadé 9623980d01 Merged revisions 80833 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r80833 | tarek.ziade | 2010-05-06 00:27:31 +0200 (Thu, 06 May 2010) | 9 lines

  Merged revisions 80830 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r80830 | tarek.ziade | 2010-05-06 00:15:31 +0200 (Thu, 06 May 2010) | 1 line

    Fixed #4265: shutil.copyfile() was leaking file descriptors when disk fills
  ........
................
2010-05-05 22:39:31 +00:00
Tarek Ziadé ae4d5c6b64 Merged revisions 80830 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80830 | tarek.ziade | 2010-05-06 00:15:31 +0200 (Thu, 06 May 2010) | 1 line

  Fixed #4265: shutil.copyfile() was leaking file descriptors when disk fills
........
2010-05-05 22:27:31 +00:00
Tarek Ziadé ffa155ad83 make sure shutil checks for bz2 availability before it uses it. 2010-04-29 13:34:35 +00:00
Tarek Ziadé 6ac91723bd #8295 : Added shutil.unpack_archive and related APIs 2010-04-28 17:51:36 +00:00
Tarek Ziadé 8c26c7d907 added a note about the ignore_dangling_symlinks option 2010-04-23 13:03:50 +00:00
Tarek Ziadé e212416420 Merged revisions 80306 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80306 | tarek.ziade | 2010-04-21 15:32:26 +0200 (Wed, 21 Apr 2010) | 1 line

  shutil: removed unused import and fixed attributes names in _call_external_zip
........
2010-04-21 13:35:21 +00:00
Tarek Ziadé 5e2be8737d Merged revisions 80282 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80282 | tarek.ziade | 2010-04-20 23:09:06 +0200 (Tue, 20 Apr 2010) | 1 line

  removed ztar support in shutil.make_archive
........
2010-04-20 21:40:47 +00:00
Tarek Ziadé 6cf3e616e4 fixed typo -- thanks Nick 2010-04-20 14:31:49 +00:00