)]}'
{"nova/objects/base.py":[{"author":{"_account_id":8641,"name":"DennyZhang","email":"filebat.mark@gmail.com","username":"dennyzhang"},"change_message_id":"05cc853648bf964e4a857e9000121946f33b051b","unresolved":false,"context_lines":[{"line_number":402,"context_line":"    def __eq__(self, other):"},{"line_number":403,"context_line":"        \"\"\"For backwards-compatibility with dict-based objects."},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"        NOTE(shane-wang): May be removed in the future."},{"line_number":406,"context_line":"        \"\"\""},{"line_number":407,"context_line":"        if not isinstance(other, (self.__class__, dict)):"},{"line_number":408,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8lZY%3D","line":405,"updated":"2013-12-25 02:53:33.000000000","message":"Should we add \"TODO\" comment keywords, so that when refactor/refine later, we can simply grep -i \"todo\"","commit_id":"b120697f93d552aecef9aa1ce652d2b5451be288"},{"author":{"_account_id":4458,"name":"Shane Wang","email":"shane.wang@intel.com","username":"shane-wang"},"change_message_id":"419a3b1a277ce9d96328fe609d44c4f593aca9a7","unresolved":false,"context_lines":[{"line_number":402,"context_line":"    def __eq__(self, other):"},{"line_number":403,"context_line":"        \"\"\"For backwards-compatibility with dict-based objects."},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"        NOTE(shane-wang): May be removed in the future."},{"line_number":406,"context_line":"        \"\"\""},{"line_number":407,"context_line":"        if not isinstance(other, (self.__class__, dict)):"},{"line_number":408,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAT3%2F%2F6sU%3D","line":405,"in_reply_to":"AAAATn%2F8lZY%3D","updated":"2013-12-27 06:58:49.000000000","message":"see the above function __contains__(), I just follow its format.","commit_id":"b120697f93d552aecef9aa1ce652d2b5451be288"},{"author":{"_account_id":8641,"name":"DennyZhang","email":"filebat.mark@gmail.com","username":"dennyzhang"},"change_message_id":"05cc853648bf964e4a857e9000121946f33b051b","unresolved":false,"context_lines":[{"line_number":417,"context_line":"        return True"},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"    def __ne__(self, other):"},{"line_number":420,"context_line":"        \"\"\"For backwards-compatibility with dict-based objects."},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"        NOTE(shane-wang): May be removed in the future."},{"line_number":423,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8lZU%3D","line":420,"updated":"2013-12-25 02:53:33.000000000","message":"ditto","commit_id":"b120697f93d552aecef9aa1ce652d2b5451be288"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"133c94d20054cd8f058560391d5c9ef46e142c0d","unresolved":false,"context_lines":[{"line_number":410,"context_line":"            return False"},{"line_number":411,"context_line":"        for key in self.fields:"},{"line_number":412,"context_line":"            if self.__contains__(key) and not other.__contains__(key):"},{"line_number":413,"context_line":"                return False"},{"line_number":414,"context_line":"            if not self.__contains__(key) and other.__contains__(key):"},{"line_number":415,"context_line":"                return False"},{"line_number":416,"context_line":"            if (self.__contains__(key) and other.__contains__(key) and"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAT3%2F%2Frfk%3D","line":413,"updated":"2014-01-03 16:25:49.000000000","message":"Any reason not to just use \"in\" here?","commit_id":"a9726f4a22da5900ddd8a9342f69f3704fab78ca"}],"nova/tests/objects/test_objects.py":[{"author":{"_account_id":8641,"name":"DennyZhang","email":"filebat.mark@gmail.com","username":"dennyzhang"},"change_message_id":"05cc853648bf964e4a857e9000121946f33b051b","unresolved":false,"context_lines":[{"line_number":628,"context_line":"        obj1 \u003d MyObj(foo\u003d1)"},{"line_number":629,"context_line":"        obj2 \u003d MyObj(foo\u003d2)"},{"line_number":630,"context_line":"        obj3 \u003d MyObj(foo\u003d1)"},{"line_number":631,"context_line":"        self.assertEqual(obj1, obj3)"},{"line_number":632,"context_line":"        self.assertEqual(obj1, {\u0027foo\u0027: 1})"},{"line_number":633,"context_line":"        self.assertNotEqual(obj1, obj2)"},{"line_number":634,"context_line":"        self.assertNotEqual(obj1, [1])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8lZI%3D","line":631,"updated":"2013-12-25 02:53:33.000000000","message":"Another test case: construct an object which is not the type of MyObj, then make a comparison.","commit_id":"b120697f93d552aecef9aa1ce652d2b5451be288"},{"author":{"_account_id":4458,"name":"Shane Wang","email":"shane.wang@intel.com","username":"shane-wang"},"change_message_id":"143a7fd61a8ce99ae1fd01851bb98ad2deecacd3","unresolved":false,"context_lines":[{"line_number":628,"context_line":"        obj1 \u003d MyObj(foo\u003d1)"},{"line_number":629,"context_line":"        obj2 \u003d MyObj(foo\u003d2)"},{"line_number":630,"context_line":"        obj3 \u003d MyObj(foo\u003d1)"},{"line_number":631,"context_line":"        self.assertEqual(obj1, obj3)"},{"line_number":632,"context_line":"        self.assertEqual(obj1, {\u0027foo\u0027: 1})"},{"line_number":633,"context_line":"        self.assertNotEqual(obj1, obj2)"},{"line_number":634,"context_line":"        self.assertNotEqual(obj1, [1])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAT3%2F%2F%2FvE%3D","line":631,"in_reply_to":"AAAATn%2F8lZI%3D","updated":"2013-12-25 07:00:09.000000000","message":"see two more lines below.\n\nself.assertNotEqual(obj1, [1])","commit_id":"b120697f93d552aecef9aa1ce652d2b5451be288"},{"author":{"_account_id":8641,"name":"DennyZhang","email":"filebat.mark@gmail.com","username":"dennyzhang"},"change_message_id":"05cc853648bf964e4a857e9000121946f33b051b","unresolved":false,"context_lines":[{"line_number":792,"context_line":"        class Bar(base.NovaObject):"},{"line_number":793,"context_line":"            fields \u003d {\u0027foo\u0027: fields.Field(fields.String())}"},{"line_number":794,"context_line":""},{"line_number":795,"context_line":"        mylist1 \u003d Foo(objects\u003d[Bar(foo\u003d\u0027apple\u0027), Bar(foo\u003d\u0027banana\u0027)])"},{"line_number":796,"context_line":"        mylist2 \u003d Foo(objects\u003d[Bar(foo\u003d\u0027apple\u0027), Bar(foo\u003d\u0027banana\u0027)])"},{"line_number":797,"context_line":"        mylist3 \u003d Foo(objects\u003d[Bar(foo\u003d\u0027banana\u0027), Bar(foo\u003d\u0027apple\u0027)])"},{"line_number":798,"context_line":"        self.assertEqual(mylist1, mylist2)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8lY8%3D","line":795,"updated":"2013-12-25 02:53:33.000000000","message":"ditto","commit_id":"b120697f93d552aecef9aa1ce652d2b5451be288"}]}
