)]}'
{"nova/tests/db/test_db_api.py":[{"author":{"_account_id":1528,"name":"Stanislaw Pitucha","email":"viraptor@gmail.com","username":"stanislaw-pitucha"},"change_message_id":"3fc1fad38a889aba9ec4224d90fb5091aeb1070f","unresolved":false,"context_lines":[{"line_number":1302,"context_line":"        self.assertEqual(len(objs1), len(objs2))"},{"line_number":1303,"context_line":""},{"line_number":1304,"context_line":"        arr1 \u003d sorted([self._dict_from_object(o, ignored_keys) for o in objs1])"},{"line_number":1305,"context_line":"        arr2 \u003d sorted([self._dict_from_object(o, ignored_keys) for o in objs2])"},{"line_number":1306,"context_line":""},{"line_number":1307,"context_line":"        self.assertListEqual(arr1, arr2)"},{"line_number":1308,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2F3ao%3D","line":1305,"updated":"2013-06-19 14:23:25.000000000","message":"Is `sorted(...)` always a valid and consistent action for dictionaries? I cannot find the answer to this. Python reference doesn\u0027t seem to have an answer either.\n\nMaybe there\u0027s some better option to do that (or can you include explanation why this will always work).","commit_id":"62b6d1cee11cfdbb9cc6e4cb9b73444fe8c4fc94"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"8449c70a4154e5b822a45f992f7951f31973d500","unresolved":false,"context_lines":[{"line_number":1302,"context_line":"        self.assertEqual(len(objs1), len(objs2))"},{"line_number":1303,"context_line":""},{"line_number":1304,"context_line":"        arr1 \u003d sorted([self._dict_from_object(o, ignored_keys) for o in objs1])"},{"line_number":1305,"context_line":"        arr2 \u003d sorted([self._dict_from_object(o, ignored_keys) for o in objs2])"},{"line_number":1306,"context_line":""},{"line_number":1307,"context_line":"        self.assertListEqual(arr1, arr2)"},{"line_number":1308,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2F3IQ%3D","line":1305,"in_reply_to":"AAAAPn%2F%2F3J8%3D","updated":"2013-06-19 15:46:41.000000000","message":"usually we receive data for dictionary from database. I suppose that we have not such values ({1: 2}) in DB.\nSo it should be something like {1: 1} \u003c {1: 2}","commit_id":"62b6d1cee11cfdbb9cc6e4cb9b73444fe8c4fc94"},{"author":{"_account_id":1528,"name":"Stanislaw Pitucha","email":"viraptor@gmail.com","username":"stanislaw-pitucha"},"change_message_id":"547ae235270d54154d2e8ef684517a3e32bb80b5","unresolved":false,"context_lines":[{"line_number":1302,"context_line":"        self.assertEqual(len(objs1), len(objs2))"},{"line_number":1303,"context_line":""},{"line_number":1304,"context_line":"        arr1 \u003d sorted([self._dict_from_object(o, ignored_keys) for o in objs1])"},{"line_number":1305,"context_line":"        arr2 \u003d sorted([self._dict_from_object(o, ignored_keys) for o in objs2])"},{"line_number":1306,"context_line":""},{"line_number":1307,"context_line":"        self.assertListEqual(arr1, arr2)"},{"line_number":1308,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2F3J8%3D","line":1305,"in_reply_to":"AAAAPn%2F%2F3Lk%3D","updated":"2013-06-19 15:39:43.000000000","message":"Yes, I know it\u0027s a list of dictionaries. My question was - since this code relies on consistent ordering of dictionaries, is that assumption guaranteed to be true by anything in python documentation? I couldn\u0027t find it.\n\nI.e. can we be sure that if {1:{1:1}} \u003c {1:{1:2}}, then it\u0027s also going to be true for different instances of dictionaries with the same values inside? This is what comparing arr1 and arr2 assumes.","commit_id":"62b6d1cee11cfdbb9cc6e4cb9b73444fe8c4fc94"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"79664e6da7221ef225b7715b5e5a7ff1f0f53ceb","unresolved":false,"context_lines":[{"line_number":1302,"context_line":"        self.assertEqual(len(objs1), len(objs2))"},{"line_number":1303,"context_line":""},{"line_number":1304,"context_line":"        arr1 \u003d sorted([self._dict_from_object(o, ignored_keys) for o in objs1])"},{"line_number":1305,"context_line":"        arr2 \u003d sorted([self._dict_from_object(o, ignored_keys) for o in objs2])"},{"line_number":1306,"context_line":""},{"line_number":1307,"context_line":"        self.assertListEqual(arr1, arr2)"},{"line_number":1308,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2F3Lk%3D","line":1305,"in_reply_to":"AAAAPn%2F%2F3T8%3D","updated":"2013-06-19 15:31:52.000000000","message":"Yes we got a sorted list of dictionaries.\n\nMade code more readable (I hope).","commit_id":"62b6d1cee11cfdbb9cc6e4cb9b73444fe8c4fc94"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"ac7f443c4d3dc0e98ebaee6b01942264adb984a2","unresolved":false,"context_lines":[{"line_number":1302,"context_line":"        self.assertEqual(len(objs1), len(objs2))"},{"line_number":1303,"context_line":""},{"line_number":1304,"context_line":"        arr1 \u003d sorted([self._dict_from_object(o, ignored_keys) for o in objs1])"},{"line_number":1305,"context_line":"        arr2 \u003d sorted([self._dict_from_object(o, ignored_keys) for o in objs2])"},{"line_number":1306,"context_line":""},{"line_number":1307,"context_line":"        self.assertListEqual(arr1, arr2)"},{"line_number":1308,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2F3T8%3D","line":1305,"in_reply_to":"AAAAPn%2F%2F3ao%3D","updated":"2013-06-19 15:01:03.000000000","message":"This is making a sorted *list* of dictionaries.  It\u0027s a bit tough to read, I\u0027d break this up a bit just to be easier on the eyes.","commit_id":"62b6d1cee11cfdbb9cc6e4cb9b73444fe8c4fc94"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"48921fb3e912287f57ee78cd9cf6a290aeb7b112","unresolved":false,"context_lines":[{"line_number":1304,"context_line":"        arr1 \u003d []"},{"line_number":1305,"context_line":"        arr2 \u003d []"},{"line_number":1306,"context_line":"        for o in objs1:"},{"line_number":1307,"context_line":"            arr1.append(self._dict_from_object(o, ignored_keys))"},{"line_number":1308,"context_line":"        for o in objs2:"},{"line_number":1309,"context_line":"            arr2.append(self._dict_from_object(o, ignored_keys))"},{"line_number":1310,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2F1W0%3D","line":1307,"updated":"2013-06-20 06:21:43.000000000","message":"why not?: \n\n  obj_to_dict \u003d lambda o: self._dict_from_object(o, ignored_keys)\n  sort_key_cmd \u003d lambda d: [d[k] for k in sorted(d)]\n\n  def converted_and_sorted(obj): \n    return sorted(map(obj_to_dict, obj), key\u003dsort_key_cmd)\n\n  self.assertEqual(converted_and_sorted(obj1),\n                   converted_and_sorted(obj2))","commit_id":"3ad1595677a20b9317d001c61729defef1c21994"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"f5123509b6473b9ff03b01dab894806999dfab81","unresolved":false,"context_lines":[{"line_number":1304,"context_line":"        arr1 \u003d []"},{"line_number":1305,"context_line":"        arr2 \u003d []"},{"line_number":1306,"context_line":"        for o in objs1:"},{"line_number":1307,"context_line":"            arr1.append(self._dict_from_object(o, ignored_keys))"},{"line_number":1308,"context_line":"        for o in objs2:"},{"line_number":1309,"context_line":"            arr2.append(self._dict_from_object(o, ignored_keys))"},{"line_number":1310,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2F1R4%3D","line":1307,"in_reply_to":"AAAAPn%2F%2F1W0%3D","updated":"2013-06-20 06:54:44.000000000","message":"It looks nice for me, but I\u0027m not sure, is it readable.\n\nDone.","commit_id":"3ad1595677a20b9317d001c61729defef1c21994"}]}
