)]}'
{"ovsdbapp/backend/ovs_idl/event.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"ffcd20366aefba6f7f6dd2117cfa81a43e2b56aa","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            return False"},{"line_number":41,"context_line":"        if not self.match_fn(event, row, old):"},{"line_number":42,"context_line":"            return False"},{"line_number":43,"context_line":"        LOG.debug(\"Matched %s to %s\", self, idlutils.row2str(row))"},{"line_number":44,"context_line":"        return True"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_ad2ec240","line":43,"range":{"start_line":43,"start_character":28,"end_line":43,"end_character":29},"updated":"2019-05-21 21:09:37.000000000","message":"Perhaps to be on the safe side, it should be %r, in case a RowEvent or inherited events implement __str__","commit_id":"cdea47edf4c433dc7d9cdc6d6ea8e86cf23e1b77"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"ade6830cb09931d352b106521dabe0ac64b464af","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            return False"},{"line_number":41,"context_line":"        if not self.match_fn(event, row, old):"},{"line_number":42,"context_line":"            return False"},{"line_number":43,"context_line":"        LOG.debug(\"Matched %s to %s\", self, idlutils.row2str(row))"},{"line_number":44,"context_line":"        return True"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_add32238","line":43,"range":{"start_line":43,"start_character":28,"end_line":43,"end_character":29},"in_reply_to":"bfb3d3c7_ad2ec240","updated":"2019-05-21 21:10:22.000000000","message":"And by \"inherited\" I mean subclasses","commit_id":"cdea47edf4c433dc7d9cdc6d6ea8e86cf23e1b77"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"0e1aa8b840651c45a3a434c254e05c6922f40871","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            return False"},{"line_number":41,"context_line":"        if not self.match_fn(event, row, old):"},{"line_number":42,"context_line":"            return False"},{"line_number":43,"context_line":"        LOG.debug(\"Matched %s to %s\", self, idlutils.row2str(row))"},{"line_number":44,"context_line":"        return True"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_2b463a51","line":43,"range":{"start_line":43,"start_character":28,"end_line":43,"end_character":29},"in_reply_to":"bfb3d3c7_add32238","updated":"2019-05-21 22:54:07.000000000","message":"One reason to leave it a %s would be when you have Events like https://github.com/openstack/networking-ovn/blob/f92b5aa08708fcb75ebdc864a5a387a27958c17e/networking_ovn/ovsdb/ovsdb_monitor.py#L88 where __init__() takes no data at all so a repr() really wouldn\u0027t convey any information (all conditions would be None).\n\nThough the argument could be made that all of the information is then  inherent in the class definition itself and dependent on event, row, and old which I\u0027m logging already (in the next patch). So maybe coming up with a __str__() that conveys more information wouldn\u0027t really be useful anyway? I think I\u0027ll go ahead and change it to %r and leave this rambling message as a reminder why... :p","commit_id":"cdea47edf4c433dc7d9cdc6d6ea8e86cf23e1b77"}],"ovsdbapp/backend/ovs_idl/idlutils.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"ffcd20366aefba6f7f6dd2117cfa81a43e2b56aa","unresolved":false,"context_lines":[{"line_number":312,"context_line":"    return obj"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"def row2str(row):"},{"line_number":316,"context_line":"    return \"%s(%s)\" % (row._table.name, \", \".join("},{"line_number":317,"context_line":"        \"%s\u003d%s\" % (col, getattr(row, col))"},{"line_number":318,"context_line":"        for col in row._table.columns if hasattr(row, col)))"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_8d2bbe2e","line":315,"updated":"2019-05-21 21:09:37.000000000","message":"This may be complex enough to deserve a small unit test :)","commit_id":"cdea47edf4c433dc7d9cdc6d6ea8e86cf23e1b77"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"3dc804e38ddcfe78c33e0eca5a17aea821b7e229","unresolved":false,"context_lines":[{"line_number":312,"context_line":"    return obj"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"def row2str(row):"},{"line_number":316,"context_line":"    return \"%s(%s)\" % (row._table.name, \", \".join("},{"line_number":317,"context_line":"        \"%s\u003d%s\" % (col, getattr(row, col))"},{"line_number":318,"context_line":"        for col in row._table.columns if hasattr(row, col)))"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_90cf51af","line":315,"in_reply_to":"bfb3d3c7_8d2bbe2e","updated":"2019-05-21 22:20:35.000000000","message":"Maybe as a follow up. :p","commit_id":"cdea47edf4c433dc7d9cdc6d6ea8e86cf23e1b77"}]}
