summaryrefslogtreecommitdiffstats
path: root/Lib/shutil.py
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* | Issue #16993: shutil.which() now preserves the case of the path and extensionSerhiy Storchaka2013-01-211-5/+7
|\ \ | |/ | | | | on Windows.