Repository navigation
gh-113924: Add copy from zipfile without decompress/recompressing data - #125718
sunrisesarsaparilla wants to merge 16 commits into
Conversation
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
| f"{caller_name}() requires mode 'w', 'x', or 'a', but " | ||
| f"mode is '{self.mode}'") | ||
|
|
||
| def _copy_file(self, source_zipfile, source_zinfo): |
There was a problem hiding this comment.
This is very strange. In fact, there is not much difference between these methods. What I want to say is that maybe they can be integrated (suggestion, you don't have to take it).
There was a problem hiding this comment.
I've updated the PR with this alternative API design:
ZipFile.copy_from(source_zipfile, files=None)
If files=None, then copy all files from the source_zipfile
If files is provided, then copy every file in files
| @@ -0,0 +1 @@ | |||
| Added `zipfile.ZipFile.copy_files` to allow copying from a zipfile. | |||
There was a problem hiding this comment.
A few things:
- This is reST, not markdown, so backticks should be used with a role: :meth:`zipfile.ZipFile.copy_files` – this is probably the CI failure of sphinx-lint (I guess, because the CI job does not show details!)
- This only works if the target exists: this is the CI failure for docs build
- The new method needs to be documented
|
A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated. Once you have made the requested changes, please leave a comment on this pull request containing the phrase |
* Use zipfile to copy files on-the-fly in make_variant Rather than unpacking the wheel into a temporary directory and then repacking it, use zipfile to stream the contents of the original wheel to the new wheel, altering the METADATA in the process. This should be more efficient, especially when dealing with large wheels. It also removes the dependency on `wheel` package. Ideally, we would copy other files without recompressing them at all, but unfortunately the zipfile module does not offer such a function right now (see python/cpython#125718). * Update RECORD file
|
This PR is stale because it has been open for 30 days with no activity. |
Added
zipfile.ZipFile.copy_filesto allow copying from a zipfile without decompressing and recompressing the data.The commits in this PR are structured to make reading the PR on a commit-by-commit basis straightforward.
Issue: #113924
Discussion: https://discuss.python.org/t/add-copy-between-zipfiles-without-recompressing-files/67544
zipfilemodule. #113924