)]}'
{"swift/obj/diskfile.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"4794dadc6b84cd25ae72f1f46e043d144ef9762b","unresolved":false,"context_lines":[{"line_number":784,"context_line":"        if exts.get(\u0027.ts\u0027):"},{"line_number":785,"context_line":"            # non-tombstones older than or equal to latest tombstone are"},{"line_number":786,"context_line":"            # obsolete"},{"line_number":787,"context_line":"            for ext in [ext for ext in exts.keys() if ext !\u003d \u0027.ts\u0027]:"},{"line_number":788,"context_line":"                exts[ext], older \u003d self._split_gt_timestamp("},{"line_number":789,"context_line":"                    exts[ext], exts[\u0027.ts\u0027][0][\u0027timestamp\u0027])"},{"line_number":790,"context_line":"                results.setdefault(\u0027obsolete\u0027, []).extend(older)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_4f9daf58","line":787,"updated":"2016-09-19 16:22:43.000000000","message":"nit: I don\u0027t think this change is necessary, the iter returned by filter works fine.","commit_id":"d2947790de41de1bbb3d5971391aacb33d03b505"}],"test/unit/obj/test_diskfile.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"4794dadc6b84cd25ae72f1f46e043d144ef9762b","unresolved":false,"context_lines":[{"line_number":4443,"context_line":"            self.assertEqual(df.fragments, {ts_1: [0, 2], ts_2: [3]})"},{"line_number":4444,"context_line":""},{"line_number":4445,"context_line":"        # verify frags available even if open fails e.g. if .durable missing"},{"line_number":4446,"context_line":"        for f in [f for f in files if f.endswith(\u0027.durable\u0027)]:"},{"line_number":4447,"context_line":"            os.remove(os.path.join(df._datadir, f))"},{"line_number":4448,"context_line":""},{"line_number":4449,"context_line":"        self.assertRaises(DiskFileNotExist, df.open)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_0fe1e7d0","line":4446,"updated":"2016-09-19 16:22:43.000000000","message":"nit: change not necessary","commit_id":"d2947790de41de1bbb3d5971391aacb33d03b505"}],"test/unit/proxy/test_server.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"4794dadc6b84cd25ae72f1f46e043d144ef9762b","unresolved":false,"context_lines":[{"line_number":4937,"context_line":"            expected)"},{"line_number":4938,"context_line":"        # check that no coro was left waiting to write"},{"line_number":4939,"context_line":"        self.assertTrue(timeouts)  # sanity - WrappedTimeout did get called"},{"line_number":4940,"context_line":"        missing_exits \u003d [tb for tb in timeouts.values() if tb is not None]"},{"line_number":4941,"context_line":"        self.assertFalse("},{"line_number":4942,"context_line":"            missing_exits, \u0027Failed to exit all ChunkWriteTimeouts.\\n\u0027 +"},{"line_number":4943,"context_line":"            \u0027\u0027.join([\u0027No exit from ChunkWriteTimeout entered at:\\n\u0027 +"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_0fcba71f","line":4940,"updated":"2016-09-19 16:22:43.000000000","message":"nit: again, the iter from filter() works here I think?","commit_id":"d2947790de41de1bbb3d5971391aacb33d03b505"}]}
