)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"087e3e54e6260b9fdae8811871cdf46d5167eb59","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Unify _commit_puts for accounts and containers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The _commit_puts method is exactly the same in AccountBroker and"},{"line_number":10,"context_line":"ContainerBroker, except for what it puts on the the list. This seems"},{"line_number":11,"context_line":"to be easy to factor out without victimizing the code clarity unduly."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"We also factor common checking for LockTimeout: not so much for"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAQn%2F%2F2lc%3D","line":10,"updated":"2013-07-22 02:26:54.000000000","message":"the the","commit_id":"890bd85b36554962ff0fbadb2fee2fb0eca79334"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"8e09aab3924923574e1157b91dc0de66e6c2cd3a","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Unify _commit_puts for accounts and containers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The _commit_puts method is exactly the same in AccountBroker and"},{"line_number":10,"context_line":"ContainerBroker, except for what it puts on the the list. This seems"},{"line_number":11,"context_line":"to be easy to factor out without victimizing the code clarity unduly."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"We also factor common checking for LockTimeout: not so much for"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAQn%2F%2FpII%3D","line":10,"in_reply_to":"AAAAQn%2F%2F2lc%3D","updated":"2013-07-25 22:29:03.000000000","message":"Done","commit_id":"890bd85b36554962ff0fbadb2fee2fb0eca79334"}],"swift/common/db.py":[{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"087e3e54e6260b9fdae8811871cdf46d5167eb59","unresolved":false,"context_lines":[{"line_number":487,"context_line":"            curs.row_factory \u003d dict_factory"},{"line_number":488,"context_line":"            return curs.fetchone()"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"    def _commit_puts_checkstale(self):"},{"line_number":491,"context_line":"        try:"},{"line_number":492,"context_line":"            self._commit_puts()"},{"line_number":493,"context_line":"        except LockTimeout:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2F2lM%3D","line":490,"updated":"2013-07-22 02:26:54.000000000","message":"Can you just merge this with _commit_puts(), wrapping the body this this try/except?","commit_id":"890bd85b36554962ff0fbadb2fee2fb0eca79334"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"8e09aab3924923574e1157b91dc0de66e6c2cd3a","unresolved":false,"context_lines":[{"line_number":487,"context_line":"            curs.row_factory \u003d dict_factory"},{"line_number":488,"context_line":"            return curs.fetchone()"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"    def _commit_puts_checkstale(self):"},{"line_number":491,"context_line":"        try:"},{"line_number":492,"context_line":"            self._commit_puts()"},{"line_number":493,"context_line":"        except LockTimeout:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FpHs%3D","line":490,"in_reply_to":"AAAAQn%2F%2F2lM%3D","updated":"2013-07-25 22:29:03.000000000","message":"I do not want to merge them because some places invoke _commit_puts() directly, as they want to ignore permission to fail (if they want to update something). So, merging them would require an additional argument.","commit_id":"890bd85b36554962ff0fbadb2fee2fb0eca79334"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"087e3e54e6260b9fdae8811871cdf46d5167eb59","unresolved":false,"context_lines":[{"line_number":495,"context_line":"                raise"},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"    def _commit_puts(self, item_list\u003dNone):"},{"line_number":498,"context_line":"        \"\"\"Handles committing rows in .pending files.\"\"\""},{"line_number":499,"context_line":"        if self.db_file \u003d\u003d \u0027:memory:\u0027 or not os.path.exists(self.pending_file):"},{"line_number":500,"context_line":"            return"},{"line_number":501,"context_line":"        if item_list is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2F2lQ%3D","line":498,"updated":"2013-07-22 02:26:54.000000000","message":"Can you expand this comment to document that fact that this code relies on the sub-classes providing an _load method implementation?","commit_id":"890bd85b36554962ff0fbadb2fee2fb0eca79334"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"087e3e54e6260b9fdae8811871cdf46d5167eb59","unresolved":false,"context_lines":[{"line_number":510,"context_line":"                for entry in fp.read().split(\u0027:\u0027):"},{"line_number":511,"context_line":"                    if entry:"},{"line_number":512,"context_line":"                        try:"},{"line_number":513,"context_line":"                            self._commit_puts_load(item_list, entry)"},{"line_number":514,"context_line":"                        except Exception:"},{"line_number":515,"context_line":"                            self.logger.exception("},{"line_number":516,"context_line":"                                _(\u0027Invalid pending entry %(file)s: %(entry)s\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2F2lY%3D","line":513,"updated":"2013-07-22 02:26:54.000000000","message":"Can you place a comment here to note that the sub-classes need to provide this function? And also provide a version of this function in the base class that raises a \"NotImplemented\" exception?","commit_id":"890bd85b36554962ff0fbadb2fee2fb0eca79334"},{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"c84cbd6e65a5b15ab6d4b85a3bb5efc1ba59e4dd","unresolved":false,"context_lines":[{"line_number":538,"context_line":"        This is implemented by a particular broker to be compatible"},{"line_number":539,"context_line":"        with its merge_items()."},{"line_number":540,"context_line":"        \"\"\""},{"line_number":541,"context_line":"        raise Exception"},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"    def merge_syncs(self, sync_points, incoming\u003dTrue):"},{"line_number":544,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FpGw%3D","line":541,"updated":"2013-07-25 22:38:10.000000000","message":"FWIW, there\u0027s a NotImplementedError that\u0027s probably what you want here. If you do end up doing another changeset, you should change it.","commit_id":"5840b1107dde3600fc0a32213a3eb963b4f91a00"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"8a0b8f250bd802fc15e2971a15ea2a294d205da5","unresolved":false,"context_lines":[{"line_number":538,"context_line":"        This is implemented by a particular broker to be compatible"},{"line_number":539,"context_line":"        with its merge_items()."},{"line_number":540,"context_line":"        \"\"\""},{"line_number":541,"context_line":"        raise Exception"},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"    def merge_syncs(self, sync_points, incoming\u003dTrue):"},{"line_number":544,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2Fo%2FQ%3D","line":541,"in_reply_to":"AAAAQn%2F%2FpGw%3D","updated":"2013-07-26 00:01:05.000000000","message":"Indeed, for some reason I thought NotImplementedError was like a NaN, something that some comparisons returned... I\u0027ll fix this up.","commit_id":"5840b1107dde3600fc0a32213a3eb963b4f91a00"}]}
