Update memory file modification times after writes - #2187
Merged
martindurant merged 2 commits intoSep 28, 2026
Merged
Conversation
Member
|
I believe this successfully copies posix behaviour |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Appending to or overwriting an existing memory file changes its contents, but
fs.modified(path)still returns the time from its last commit. Truncating the file has the same problem. Code checking modification times can therefore miss a change.Update the timestamp after successful writes and truncation, while preserving the creation time and the existing return values.
writelinesuses the same write path, so the timestamp also advances when some lines are written before a later line raises an error. Reads, empty writes, and rejected writes leave it unchanged.Five regression cases fail before the fix. The memory and mapping tests pass on Windows with Python 3.12: 95 passed and one skipped. Ruff lint and formatting checks and codespell pass for the changed files. The broader filesystem specification tests could not collect in this environment because NumPy is missing; Docker, cloud backends, and downstream projects were not tested.