John S. Gruber <johnsgru...@gmail.com> added the comment: As I thought about it, I suppose I should demonstrate the problem with stat.st_mtime. Here's an example and its output on an ext4 file system:
gruber@gruber-Satellite-L355D:~$ ./mtime.py (1303933305.5525582, 1303933305.5525582) (1303933305.552558, 1303933305.552558) (1303933305.552557, 1303933305.552557) (1303933305.552556, 1303933305.552556) (1303933305.5525581837 1303933305.5525581837) (1303933305.5525579453 1303933305.5525579453) (1303933305.5525569916 1303933305.5525569916) (1303933305.5525560379 1303933305.5525560379) total 0 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:45.552558258 -0400 one -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:45.552558000 -0400 target1 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:45.552557000 -0400 target2 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:45.552556000 -0400 target3 Traceback (most recent call last): File "./mtime.py", line 28, in <module> assert timetargetthree == timetargettwo AssertionError gruber@gruber-Satellite-L355D:~$ ./mtime.py (1303933306.3885624, 1303933306.3885624) (1303933306.388562, 1303933306.388562) (1303933306.388561, 1303933306.388561) (1303933306.388561, 1303933306.388561) (1303933306.3885624409 1303933306.3885624409) (1303933306.3885619640 1303933306.3885619640) (1303933306.3885610104 1303933306.3885610104) (1303933306.3885610104 1303933306.3885610104) total 0 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:46.388562342 -0400 one -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:46.388562000 -0400 target1 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:46.388561000 -0400 target2 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:46.388561000 -0400 target3 Traceback (most recent call last): File "./mtime.py", line 29, in <module> assert timetargettwo == timetargetone AssertionError gruber@gruber-Satellite-L355D:~$ ./mtime.py (1303933307.0525656, 1303933307.0525656) (1303933307.052565, 1303933307.052565) (1303933307.052565, 1303933307.052565) (1303933307.052565, 1303933307.052565) (1303933307.0525655746 1303933307.0525655746) (1303933307.0525650978 1303933307.0525650978) (1303933307.0525650978 1303933307.0525650978) (1303933307.0525650978 1303933307.0525650978) total 0 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:47.052565592 -0400 one -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:47.052565000 -0400 target1 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:47.052565000 -0400 target2 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:47.052565000 -0400 target3 Traceback (most recent call last): File "./mtime.py", line 30, in <module> assert timetargetone == timeone AssertionError gruber@gruber-Satellite-L355D:~$ ./mtime.py (1303933308.2285714, 1303933308.2285714) (1303933308.228571, 1303933308.228571) (1303933308.22857, 1303933308.22857) (1303933308.228569, 1303933308.228569) (1303933308.2285714149 1303933308.2285714149) (1303933308.2285709381 1303933308.2285709381) (1303933308.2285699844 1303933308.2285699844) (1303933308.2285690308 1303933308.2285690308) total 0 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:48.228571344 -0400 one -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:48.228571000 -0400 target1 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:48.228570000 -0400 target2 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:48.228569000 -0400 target3 Traceback (most recent call last): File "./mtime.py", line 28, in <module> assert timetargetthree == timetargettwo AssertionError gruber@gruber-Satellite-L355D:~$ ./mtime.py (1303933309.0685754, 1303933309.0685754) (1303933309.068575, 1303933309.068575) (1303933309.068574, 1303933309.068574) (1303933309.068573, 1303933309.068573) (1303933309.0685753822 1303933309.0685753822) (1303933309.0685749054 1303933309.0685749054) (1303933309.0685739517 1303933309.0685739517) (1303933309.0685729980 1303933309.0685729980) total 0 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:49.068575446 -0400 one -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:49.068575000 -0400 target1 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:49.068574000 -0400 target2 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:49.068573000 -0400 target3 Traceback (most recent call last): File "./mtime.py", line 28, in <module> assert timetargetthree == timetargettwo AssertionError gruber@gruber-Satellite-L355D:~$ ./mtime.py (1303933309.6765785, 1303933309.6765785) (1303933309.676578, 1303933309.676578) (1303933309.676578, 1303933309.676578) (1303933309.676578, 1303933309.676578) (1303933309.6765785217 1303933309.6765785217) (1303933309.6765780449 1303933309.6765780449) (1303933309.6765780449 1303933309.6765780449) (1303933309.6765780449 1303933309.6765780449) total 0 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:49.676578416 -0400 one -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:49.676578000 -0400 target1 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:49.676578000 -0400 target2 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:49.676578000 -0400 target3 Traceback (most recent call last): File "./mtime.py", line 30, in <module> assert timetargetone == timeone AssertionError gruber@gruber-Satellite-L355D:~$ ./mtime.py (1303933310.396582, 1303933310.396582) (1303933310.396581, 1303933310.396581) (1303933310.39658, 1303933310.39658) (1303933310.396579, 1303933310.396579) (1303933310.3965818882 1303933310.3965818882) (1303933310.3965809345 1303933310.3965809345) (1303933310.3965799809 1303933310.3965799809) (1303933310.3965790272 1303933310.3965790272) total 0 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:50.396581938 -0400 one -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:50.396581000 -0400 target1 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:50.396580000 -0400 target2 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:50.396579000 -0400 target3 Traceback (most recent call last): File "./mtime.py", line 28, in <module> assert timetargetthree == timetargettwo AssertionError gruber@gruber-Satellite-L355D:~$ ./mtime.py (1303933311.056585, 1303933311.056585) (1303933311.056585, 1303933311.056585) (1303933311.056585, 1303933311.056585) (1303933311.056585, 1303933311.056585) (1303933311.0565850735 1303933311.0565850735) (1303933311.0565850735 1303933311.0565850735) (1303933311.0565850735 1303933311.0565850735) (1303933311.0565850735 1303933311.0565850735) total 0 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:51.056585165 -0400 one -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:51.056585000 -0400 target1 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:51.056585000 -0400 target2 -rw-r--r-- 1 gruber gruber 0 2011-04-27 15:41:51.056585000 -0400 target3 gruber@gruber-Satellite-L355D:~$ Please excuse my total lack of Python style. ---------- Added file: http://bugs.python.org/file21808/mtime.py _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue11933> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com