summaryrefslogtreecommitdiffstats
path: root/Lib/shutil.py
Commit message (Collapse)AuthorAgeFilesLines
* bpo-34260, shutil: fix copy2 and copystat documentation (GH-8523)Zsolt Cserna2018-10-231-5/+11
| | | | | | | | | | 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.
* bpo-33671 / shutil.copyfile: use memoryview() with dynamic size on Windows ↵Giampaolo Rodola2018-06-191-33/+39
| | | | | | | | | | (#7681) bpo-33671 * use memoryview() with size == file size on Windows, see https://github.com/python/cpython/pull/7160#discussion_r195405230 * release intermediate (sliced) memoryview immediately * replace "OSX" occurrences with "macOS" * add some unittests for copyfileobj()
* bpo-33671: efficient zero-copy for shutil.copy* functions (Linux, OSX and ↵Giampaolo Rodola2018-06-121-12/+145
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Win) (#7160) * have shutil.copyfileobj use sendfile() if possible * refactoring: use ctx manager * add test with non-regular file obj * emulate case where file size can't be determined * reference _copyfileobj_sendfile directly * add test for offset() at certain position * add test for empty file * add test for non regular file dst * small refactoring * leave copyfileobj() alone in order to not introduce any incompatibility * minor refactoring * remove old test * update docstring * update docstring; rename exception class * detect platforms which only support file to socket zero copy * don't run test on platforms where file-to-file zero copy is not supported * use tempfiles * reset verbosity * add test for smaller chunks * add big file size test * add comment * update doc * update whatsnew doc * update doc * catch Exception * remove unused import * add test case for error on second sendfile() call * turn docstring into comment * add one more test * update comment * add Misc/NEWS entry * get rid of COPY_BUFSIZE; it belongs to another PR * update doc * expose posix._fcopyfile() for OSX * merge from linux branch * merge from linux branch * expose fcopyfile * arg clinic for the win implementation * convert path type to path_t * expose CopyFileW * fix windows tests * release GIL * minor refactoring * update doc * update comment * update docstrings * rename functions * rename test classes * update doc * update doc * update docstrings and comments * avoid do import nt|posix modules if unnecessary * set nt|posix modules to None if not available * micro speedup * update description * add doc note * use better wording in doc * rename function using 'fastcopy' prefix instead of 'zerocopy' * use :ref: in rst doc * change wording in doc * add test to make sure sendfile() doesn't get called aymore in case it doesn't support file to file copies * move CopyFileW in _winapi and actually expose CopyFileExW instead * fix line endings * add tests for mode bits * add docstring * remove test file mode class; let's keep it for later when Istart addressing OSX fcopyfile() specific copies * update doc to reflect new changes * update doc * adjust tests on win * fix argument clinic error * update doc * OSX: expose copyfile(3) instead of fcopyfile(3); also expose flags arg to python * osx / copyfile: use path_t instead of char * do not set dst name in the OSError exception in order to remain consistent with platforms which cannot do that (e.g. linux) * add same file test * add test for same file * have osx copyfile() pre-emptively check if src and dst are the same, otherwise it will return immedialtey and src file content gets deleted * turn PermissionError into appropriate SameFileError * expose ERROR_SHARING_VIOLATION in order to raise more appropriate SameFileError * honour follow_symlinks arg when using CopyFileEx * update Misc/NEWS * expose CreateDirectoryEx mock * change C type * CreateDirectoryExW actual implementation * provide specific makedirs() implementation for win * fix typo * skeleton for SetNamedSecurityInfo * get security info for src path * finally set security attrs * add unit tests * mimick os.makedirs() behavior and raise if dst dir exists * set 2 paths for OSError object * set 2 paths for OSError object * expand windows test * in case of exception on os.sendfile() set filename and filename2 exception attributes * set 2 filenames (src, dst) for OSError in case copyfile() fails on OSX * update doc * do not use CreateDirectoryEx() in copytree() if source dir is a symlink (breaks test_copytree_symlink_dir); instead just create a plain dir and remain consistent with POSIX implementation * use bytearray() and readinto() * use memoryview() with bytearray() * refactoring + introduce a new _fastcopy_binfileobj() fun * remove CopyFileEx and other C wrappers * remove code related to CopyFileEx * Recognize binary files in copyfileobj() ...and use fastest _fastcopy_binfileobj() when possible * set 1MB copy bufsize on win; also add a global _COPY_BUFSIZE variable * use ctx manager for memoryview() * update doc * remove outdated doc * remove last CopyFileEx remnants * OSX - use fcopyfile(3) instead of copyfile(3) ...as an extra safety measure: in case src/dst are "exotic" files (non regular or living on a network fs etc.) we better fail on open() instead of copyfile(3) as we're not quite sure what's gonna happen in that case. * update doc
* bpo-28564: Use os.scandir() in shutil.rmtree(). (#4085)Serhiy Storchaka2017-11-041-30/+43
| | | | This speeds up it to 20-40%.
* bpo-30218: support path-like objects in shutil.unpack_archive() (GH-1367)Jelle Zijlstra2017-05-051-0/+3
| | | Thanks to Jelle Zijlstra for the patch.
* bpo-29762: More use "raise from None". (#569)Serhiy Storchaka2017-04-051-2/+2
| | | This hides unwanted implementation details from tracebacks.
* Issue #14061: Misc fixes and cleanups in archiving code in shutil.Serhiy Storchaka2016-12-161-38/+44
|\ | | | | | | | | | | 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.
| * Issue #14061: Misc fixes and cleanups in archiving code in shutil.Serhiy Storchaka2016-12-161-38/+44
| | | | | | | | | | | | 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.
* | Issue #28488: shutil.make_archive() no longer adds entry "./" to ZIP archive.Serhiy Storchaka2016-10-231-3/+4
|\ \ | |/
| * Issue #28488: shutil.make_archive() no longer adds entry "./" to ZIP archive.Serhiy Storchaka2016-10-231-3/+4
| |
| * Issue #27895: Spelling fixes (Contributed by Ville Skyttä).Martin Panter2016-09-071-1/+1
| |
* | Issue #27895: Spelling fixes (Contributed by Ville Skyttä).Raymond Hettinger2016-08-301-1/+1
| |
* | Issue #27626: Merge spelling fixes from 3.5Martin Panter2016-07-281-1/+1
|\ \ | |/
| * Issue #27626: Spelling fixes in docs, comments and internal namesMartin Panter2016-07-281-1/+1
| | | | | | | | Based on patch by Ville Skyttä.
* | Issue #26801: shutil.get_terminal_size() now handles the case of stdout isSerhiy Storchaka2016-04-241-1/+3
|\ \ | |/ | | | | reopened on Windows. Added tests for fallbacks.
| * Issue #26801: shutil.get_terminal_size() now handles the case of stdout isSerhiy Storchaka2016-04-241-1/+3
| | | | | | | | reopened on Windows. Added tests for fallbacks.
* | Merge 3.5: issue #26801Victor Stinner2016-04-191-1/+1
|\ \ | |/
| * Fix shutil.get_terminal_size() error handlingVictor Stinner2016-04-191-1/+1
| | | | | | | | | | | | | | | | 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.
* | Issue #24982: shutil.make_archive() with the "zip" format now adds entriesSerhiy Storchaka2015-09-081-0/+9
|\ \ | |/ | | | | | | for directories (including empty directories) in ZIP file. Added test for comparing shutil.make_archive() with the "zip" command.
| * Issue #24982: shutil.make_archive() with the "zip" format now adds entriesSerhiy Storchaka2015-09-081-0/+9
| |\ | | | | | | | | | | | | for directories (including empty directories) in ZIP file. Added test for comparing shutil.make_archive() with the "zip" command.
| | * Issue #24982: shutil.make_archive() with the "zip" format now adds entriesSerhiy Storchaka2015-09-081-0/+9
| | | | | | | | | | | | | | | for directories (including empty directories) in ZIP file. Added test for comparing shutil.make_archive() with the "zip" command.
* | | Issue #24878: Add docstrings to selected namedtuplesRaymond Hettinger2015-08-181-0/+3
|/ /
* | Issue #21697: shutil.copytree() now correctly handles symbolic links that ↵Berker Peksag2015-07-251-1/+5
|\ \ | |/ | | | | | | | | point to directories. Patch by Eduardo Seabra and Thomas Kluyver.
| * Issue #21697: shutil.copytree() now correctly handles symbolic links that ↵Berker Peksag2015-07-251-1/+5
| | | | | | | | | | | | point to directories. Patch by Eduardo Seabra and Thomas Kluyver.
* | Issue #21775: shutil.copytree(): fix crash when copying to VFATBerker Peksag2014-12-101-1/+1
|\ \ | |/ | | | | | | | | | | | | | | 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.
| * Issue #21775: shutil.copytree(): fix crash when copying to VFATBerker Peksag2014-12-101-1/+1
| | | | | | | | | | | | | | | | | | 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.
* | Issue #21280: Fixed a bug in shutil.make_archive() when create an archive ofSerhiy Storchaka2014-11-271-2/+2
|\ \ | |/ | | | | current directory in current directory.
| * Issue #21280: Fixed a bug in shutil.make_archive() when create an archive ofSerhiy Storchaka2014-11-271-2/+2
| | | | | | | | current directory in current directory.
* | Issue #22665: Add missing get_terminal_size and SameFileError to shutil.__all__.Berker Peksag2014-11-011-1/+2
|\ \ | |/
| * Issue #22665: Add missing get_terminal_size and SameFileError to shutil.__all__.Berker Peksag2014-11-011-1/+2
| |
* | Issue #21391: Use os.path.abspath in the shutil module.Berker Peksag2014-09-181-3/+2
| |
* | Issue #5411: Added support for the "xztar" format in the shutil module.Serhiy Storchaka2014-08-061-4/+23
| |
* | #19840: Add copy_function to shutil.move.R David Murray2014-06-111-4/+11
| | | | | | | | Patch by Claudiu Popa.
* | #20744: don't try running an external 'zip' in shutil.make_archive()Andrew Kuchling2014-03-201-40/+15
|/ | | | Instead we'll just use the stdlib zipfile module. Patch by Derek Chiang
* Issue #19856: shutil.move() failed to move a directory to other directorySerhiy Storchaka2014-02-111-1/+2
|\ | | | | | | on Windows if source name ends with os.altsep.
| * Issue #19856: shutil.move() failed to move a directory to other directorySerhiy Storchaka2014-02-111-1/+2
| | | | | | | | on Windows if source name ends with os.altsep.
* | merge 3.3 (#20102)Benjamin Peterson2014-02-021-11/+9
|\ \ | |/
| * use with statement to ensure zipfile is always closed (closes #20102)Benjamin Peterson2014-02-021-11/+9
| |
* | Backout a1a05e2724dd: shutil.which(bytes) is a new feature and my patch does ↵Victor Stinner2013-12-161-15/+8
| | | | | | | | not work on Windows
* | Issue #18283: shutil.which() now supports bytes argument, not only text ↵Victor Stinner2013-12-161-8/+15
| | | | | | | | argument.
* | #18705: merge with 3.3.Ezio Melotti2013-08-171-3/+3
|\ \ | |/
| * #18705: fix a number of typos. Patch by Févry Thibault.Ezio Melotti2013-08-171-3/+3
| |
* | Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a)Brett Cannon2013-07-041-5/+5
| |
* | Issue #18200: Update the stdlib (except tests) to useBrett Cannon2013-06-141-5/+5
| | | | | | | | ModuleNotFoundError.
* | - Issue #17012: shutil.which() no longer fallbacks to the PATH environmentBarry Warsaw2013-04-161-1/+5
|\ \ | |/ | | | | variable if empty path argument is specified. Patch by Serhiy Storchaka.
| * - Issue #17012: shutil.which() no longer fallbacks to the PATH environmentBarry Warsaw2013-04-161-1/+5
| | | | | | | | variable if empty path argument is specified. Patch by Serhiy Storchaka.
* | #17076: Make copying of xattrs more permissive of missing FS supportHynek Schlawack2013-02-051-1/+7
|\ \ | |/ | | | | Patch by Thomas Wouters.
| * #17076: Make copying of xattrs more permissive of missing FS supportHynek Schlawack2013-02-051-1/+7
| | | | | | | | Patch by Thomas Wouters.
* | Issue #16957: shutil.which() no longer searches a bare file name in theSerhiy Storchaka2013-01-231-4/+7
|\ \ | |/ | | | | | | current directory on Unix and no longer searches a relative file path with a directory part in PATH directories. Patch by Thomas Kluyver.
| * Issue #16957: shutil.which() no longer searches a bare file name in theSerhiy Storchaka2013-01-231-4/+7
| | | | | | | | | | current directory on Unix and no longer searches a relative file path with a directory part in PATH directories. Patch by Thomas Kluyver.