Author josh.r
Recipients AlexVndnblcke, josh.r
Date 2021-01-19.22:40:56
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1611096057.05.0.993257789031.issue42958@roundup.psfhosted.org>
In-reply-to
Content
This is a problem with the docstring. The actual docs for it are a bit more clear, https://docs.python.org/3/library/filecmp.html#filecmp.cmp :

"If shallow is true, files with identical os.stat() signatures are taken to be equal. Otherwise, the contents of the files are compared."

Your patch can't be used because it changes longstanding documented behavior. If you'd like to submit a patch to fix the docstring, that's fine, but we're not going to break existing code to make the function less accurate.

The patch should probably make the documentation more clear while it's at it.

1. The original wording could be misinterpreted as having the "Otherwise" apply to shallow=False only, not to the case where shallow=T rue but os.stat doesn't match.
2. The existing wording isn't clear on what an os.stat() "signature" is, which can leave the impression that the entirety of os.stat is compared (which would only match for hardlinks of the same file), when in fact it's just the file type (stat.S_IFMT(st.st_mode), file vs. directory vs. symlink, etc.), size and mtime.

Proposed rewording of main docs would be:

"If shallow is true, files with identical os.stat() signatures (file type, size, and modification time) are taken to be equal. When shallow is false, or the file signatures are identical, the contents of the files are compared."

A similar wording (or at least, a shorter version of the above, rather than a strictly wrong description of the shallow parameter) could be applied to the docstring.
History
Date User Action Args
2021-01-19 22:40:57josh.rsetrecipients: + josh.r, AlexVndnblcke
2021-01-19 22:40:57josh.rsetmessageid: <1611096057.05.0.993257789031.issue42958@roundup.psfhosted.org>
2021-01-19 22:40:57josh.rlinkissue42958 messages
2021-01-19 22:40:56josh.rcreate