gh-121402: Fix ZipFile.open() to set current time by default, add .newfile() #121405
+20
−6
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When streaming, writing data to a zip file, it sets a timestamp of 1980. I believe this is never the intention so here's a fix to use the current time.
See issue #121402 for details, so this is my suggestion...
I'm also adding a newfile() method that returns a ZipInfo object which inherits the previously configured compression so that the user can pass that object to open() without having to remember to set the compression and _compresslevel/compresslevel atributes again (otherwise the previously set compression is ignored and the added file is written uncompressed). This is for creating new archives.