)]}'
{"subunit2sql/read_subunit.py":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"05f071708c7319f957ae21402bacf2db01497cd3","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class AttachmentResult(testtools.StreamResult):"},{"line_number":36,"context_line":"    \"\"\"Keeps track of top level results with StreamToDict drops."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    We use a SpooledTemporaryFile to keep it performant with smaller files"},{"line_number":39,"context_line":"    but to ensure we don\u0027t use up tons of RAM. Anything over 1MB will be"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa80f949_6b97a1ec","line":36,"updated":"2015-11-06 00:44:22.000000000","message":"s/with/which/","commit_id":"c34f3e41062dc9e0ad69342f8bbd8f026e99d862"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"05f071708c7319f957ae21402bacf2db01497cd3","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                max_size\u003d2 ** 30)"},{"line_number":56,"context_line":"        self.attachments[file_name].write(file_bytes)"},{"line_number":57,"context_line":"        if eof:"},{"line_number":58,"context_line":"            self.attachments[file_name].seek(0)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"class ReadSubunit(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa80f949_cb8ecdcf","line":58,"updated":"2015-11-06 00:44:22.000000000","message":"This has a two latent bugs in it - if you get the same file name multiple times, you\u0027ll scribble all over the first copy of it (and not even truncate).\n\nSecondly, if get the same file name from multiple sources (the route_code) you don\u0027t disambiguate.\n\nThis may not matter for our purposes - but since this has been made /generic/, I think it needs to at least not silently break.\n\nMy suggestion would be to not make this generic.","commit_id":"c34f3e41062dc9e0ad69342f8bbd8f026e99d862"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"05f071708c7319f957ae21402bacf2db01497cd3","unresolved":false,"context_lines":[{"line_number":68,"context_line":"            attach_target \u003d [self.attach_result]"},{"line_number":69,"context_line":"        else:"},{"line_number":70,"context_line":"            self.attach_result \u003d None"},{"line_number":71,"context_line":"            attach_target \u003d []"},{"line_number":72,"context_line":"        starts \u003d testtools.StreamResult()"},{"line_number":73,"context_line":"        summary \u003d testtools.StreamSummary()"},{"line_number":74,"context_line":"        outcomes \u003d testtools.StreamToDict(functools.partial("}],"source_content_type":"text/x-python","patch_set":1,"id":"fa80f949_eb04f14a","line":71,"updated":"2015-11-06 00:44:22.000000000","message":"If you just made this say \u0027targets\u0027 then below you could write\n\ntargets.extend([starts, outcomes, summary]) which might be a bit more obvious. Dunno.","commit_id":"c34f3e41062dc9e0ad69342f8bbd8f026e99d862"}]}
