)]}'
{"dragonflow/db/model_proxy.py":[{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"f979ade53bf72b56da8d2bcc161f35c58e218a57","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        return {\u0027id\u0027: self._id}"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"def _memoize_model_proxies(f):"},{"line_number":75,"context_line":"    \"\"\""},{"line_number":76,"context_line":"    A memoization decorator targeted for `create_model_proxy`."},{"line_number":77,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba2be162_d42c489b","line":74,"range":{"start_line":74,"start_character":5,"end_line":74,"end_character":12},"updated":"2017-03-03 09:27:22.000000000","message":"Do you mean memorize?","commit_id":"47bf6e65194a3faf5e8953e910cd6720e782470e"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"5997bf66bee7e1b087b4f357600cc31c4fc1d294","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        return {\u0027id\u0027: self._id}"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"def _memoize_model_proxies(f):"},{"line_number":75,"context_line":"    \"\"\""},{"line_number":76,"context_line":"    A memoization decorator targeted for `create_model_proxy`."},{"line_number":77,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba2be162_07467e4e","line":74,"range":{"start_line":74,"start_character":5,"end_line":74,"end_character":12},"in_reply_to":"ba2be162_d42c489b","updated":"2017-03-04 17:22:47.000000000","message":"I don\u0027t like it either, but \u0027memoize\u0027[1] is exactly what this decorator does: cache return values for identical input value.\n\n[1] https://en.wikipedia.org/wiki/Memoization","commit_id":"47bf6e65194a3faf5e8953e910cd6720e782470e"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"f979ade53bf72b56da8d2bcc161f35c58e218a57","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"def _memoize_model_proxies(f):"},{"line_number":75,"context_line":"    \"\"\""},{"line_number":76,"context_line":"    A memoization decorator targeted for `create_model_proxy`."},{"line_number":77,"context_line":"    \"\"\""},{"line_number":78,"context_line":"    memo \u003d {}"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba2be162_087a4377","line":76,"range":{"start_line":76,"start_character":6,"end_line":76,"end_character":17},"updated":"2017-03-03 09:27:22.000000000","message":"same comment here.","commit_id":"47bf6e65194a3faf5e8953e910cd6720e782470e"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"66a793b00ba94d6212e59679823ae099246e525f","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    @six.wraps(f)"},{"line_number":81,"context_line":"    def func(model):"},{"line_number":82,"context_line":"        try:"},{"line_number":83,"context_line":"            return memo[model.__name__]"},{"line_number":84,"context_line":"        except KeyError:"},{"line_number":85,"context_line":"            result \u003d f(model)"},{"line_number":86,"context_line":"            memo[model.__name__] \u003d result"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba2be162_a596eb49","line":83,"range":{"start_line":83,"start_character":24,"end_line":83,"end_character":38},"updated":"2017-03-02 14:28:39.000000000","message":"nit: Why name and not model itself? Types are hashable IIRC.","commit_id":"47bf6e65194a3faf5e8953e910cd6720e782470e"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"5997bf66bee7e1b087b4f357600cc31c4fc1d294","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    @six.wraps(f)"},{"line_number":81,"context_line":"    def func(model):"},{"line_number":82,"context_line":"        try:"},{"line_number":83,"context_line":"            return memo[model.__name__]"},{"line_number":84,"context_line":"        except KeyError:"},{"line_number":85,"context_line":"            result \u003d f(model)"},{"line_number":86,"context_line":"            memo[model.__name__] \u003d result"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba2be162_277702a1","line":83,"range":{"start_line":83,"start_character":24,"end_line":83,"end_character":38},"in_reply_to":"ba2be162_a596eb49","updated":"2017-03-04 17:22:47.000000000","message":"No real reason. Will change if I respin (or if you insist).","commit_id":"47bf6e65194a3faf5e8953e910cd6720e782470e"}]}
