)]}'
{"dragonflow/db/model_framework.py":[{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"2c5a20c309494f1125d3ac37a6c4fbd52983dd70","unresolved":false,"context_lines":[{"line_number":355,"context_line":"            sorted_models.append(model)"},{"line_number":356,"context_line":"            del unsorted_models[model]"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        # Remove indepndent models from remaining depndency lists"},{"line_number":359,"context_line":"        for model in dependent_models:"},{"line_number":360,"context_line":"            unsorted_models[model] -\u003d independent_models"},{"line_number":361,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"ba2be162_fa55b5c1","line":358,"range":{"start_line":358,"start_character":50,"end_line":358,"end_character":59},"updated":"2017-03-03 09:15:44.000000000","message":"dependency","commit_id":"df0ddcbb964b1c3d3a3c01ec1fa0ee1d1c8f5be2"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"2c5a20c309494f1125d3ac37a6c4fbd52983dd70","unresolved":false,"context_lines":[{"line_number":355,"context_line":"            sorted_models.append(model)"},{"line_number":356,"context_line":"            del unsorted_models[model]"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        # Remove indepndent models from remaining depndency lists"},{"line_number":359,"context_line":"        for model in dependent_models:"},{"line_number":360,"context_line":"            unsorted_models[model] -\u003d independent_models"},{"line_number":361,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"ba2be162_9a5039d6","line":358,"range":{"start_line":358,"start_character":17,"end_line":358,"end_character":27},"updated":"2017-03-03 09:15:44.000000000","message":"independent","commit_id":"df0ddcbb964b1c3d3a3c01ec1fa0ee1d1c8f5be2"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"6afe272cc38841dc6afb42c0da431c654ffa7f51","unresolved":false,"context_lines":[{"line_number":355,"context_line":"            sorted_models.append(model)"},{"line_number":356,"context_line":"            del unsorted_models[model]"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        # Remove indepndent models from remaining depndency lists"},{"line_number":359,"context_line":"        for model in dependent_models:"},{"line_number":360,"context_line":"            unsorted_models[model] -\u003d independent_models"},{"line_number":361,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"ba2be162_dcbb74e3","line":358,"range":{"start_line":358,"start_character":17,"end_line":358,"end_character":27},"in_reply_to":"ba2be162_9a5039d6","updated":"2017-03-03 18:20:47.000000000","message":"Done","commit_id":"df0ddcbb964b1c3d3a3c01ec1fa0ee1d1c8f5be2"}],"dragonflow/db/model_proxy.py":[{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"2c5a20c309494f1125d3ac37a6c4fbd52983dd70","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    def to_struct(self):"},{"line_number":77,"context_line":"        return {\u0027id\u0027: self._id}"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    @_classproperty"},{"line_number":80,"context_line":"    def proxied_model(cls):"},{"line_number":81,"context_line":"        return cls._model"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"def create_model_proxy(model):"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba2be162_5d887bc5","line":81,"range":{"start_line":79,"start_character":0,"end_line":81,"end_character":25},"updated":"2017-03-03 09:15:44.000000000","message":"Is there benefit to implement class property, comparing to just using this method as a getter? If not I would suggest not to use this way, which makes code hard to read.","commit_id":"df0ddcbb964b1c3d3a3c01ec1fa0ee1d1c8f5be2"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"6afe272cc38841dc6afb42c0da431c654ffa7f51","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    def to_struct(self):"},{"line_number":77,"context_line":"        return {\u0027id\u0027: self._id}"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    @_classproperty"},{"line_number":80,"context_line":"    def proxied_model(cls):"},{"line_number":81,"context_line":"        return cls._model"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"def create_model_proxy(model):"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba2be162_9c181c20","line":81,"range":{"start_line":79,"start_character":0,"end_line":81,"end_character":25},"in_reply_to":"ba2be162_5d887bc5","updated":"2017-03-03 18:20:47.000000000","message":"Making this into a getter.","commit_id":"df0ddcbb964b1c3d3a3c01ec1fa0ee1d1c8f5be2"}],"dragonflow/tests/unit/test_model_framework.py":[{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"2c5a20c309494f1125d3ac37a6c4fbd52983dd70","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    def test_topological_sort(self):"},{"line_number":269,"context_line":"        sorted_models \u003d mf.iter_models_by_dependency_order()"},{"line_number":270,"context_line":"        self.assertTrue("},{"line_number":271,"context_line":"            sorted_models.index(ReffedModel) \u003c"},{"line_number":272,"context_line":"            sorted_models.index(ReffingModel)"},{"line_number":273,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba2be162_daf4715c","line":270,"range":{"start_line":270,"start_character":0,"end_line":270,"end_character":24},"updated":"2017-03-03 09:15:44.000000000","message":"You could use assertLess() here.","commit_id":"df0ddcbb964b1c3d3a3c01ec1fa0ee1d1c8f5be2"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"6afe272cc38841dc6afb42c0da431c654ffa7f51","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    def test_topological_sort(self):"},{"line_number":269,"context_line":"        sorted_models \u003d mf.iter_models_by_dependency_order()"},{"line_number":270,"context_line":"        self.assertTrue("},{"line_number":271,"context_line":"            sorted_models.index(ReffedModel) \u003c"},{"line_number":272,"context_line":"            sorted_models.index(ReffingModel)"},{"line_number":273,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba2be162_5c74e466","line":270,"range":{"start_line":270,"start_character":0,"end_line":270,"end_character":24},"in_reply_to":"ba2be162_daf4715c","updated":"2017-03-03 18:20:47.000000000","message":"Thanks, done.","commit_id":"df0ddcbb964b1c3d3a3c01ec1fa0ee1d1c8f5be2"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"9b26819730434efe5b9991feb390340fa23cf0b8","unresolved":false,"context_lines":[{"line_number":272,"context_line":"        o.emit_created()"},{"line_number":273,"context_line":"        m.assert_called_once_with(o)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    def test_topological_sort(self):"},{"line_number":276,"context_line":"        sorted_models \u003d mf.iter_models_by_dependency_order()"},{"line_number":277,"context_line":"        self.assertLess("},{"line_number":278,"context_line":"            sorted_models.index(ReffedModel),"}],"source_content_type":"text/x-python","patch_set":16,"id":"ba2be162_8c461579","line":275,"updated":"2017-03-04 17:10:09.000000000","message":"Is there a way to also test the loop detection?","commit_id":"d7fbdcad2da885a25bdb207bb073ad901cb3da74"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"c955d3a7e7171d1cbd13c904f39f089c807b65d8","unresolved":false,"context_lines":[{"line_number":272,"context_line":"        o.emit_created()"},{"line_number":273,"context_line":"        m.assert_called_once_with(o)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    def test_topological_sort(self):"},{"line_number":276,"context_line":"        sorted_models \u003d mf.iter_models_by_dependency_order()"},{"line_number":277,"context_line":"        self.assertLess("},{"line_number":278,"context_line":"            sorted_models.index(ReffedModel),"}],"source_content_type":"text/x-python","patch_set":16,"id":"ba2be162_67a49a07","line":275,"in_reply_to":"ba2be162_8c461579","updated":"2017-03-04 17:26:54.000000000","message":"Yes, will add.","commit_id":"d7fbdcad2da885a25bdb207bb073ad901cb3da74"}]}
