)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e73e1e14941d3b1e522f64058ec19a6f9bf81a00","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ce9d949c_7e96c5a3","updated":"2026-03-23 13:28:00.000000000","message":"some nits","commit_id":"111ac3269aa5edadfc59fcf9fda6c07bc0fc19fc"},{"author":{"_account_id":35657,"name":"LeeChunghwan","display_name":"chung00.lee","email":"chung00.lee@samsung.com","username":"chung00.lee"},"change_message_id":"54f7d83f94e9f0e3d87aa3bb40ff945641c02379","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d4cf95b2_b9b180e7","updated":"2026-03-23 15:53:59.000000000","message":"I\u0027ve applied the suggested changes. Thank you.","commit_id":"70f0ebdff9db7c276517e0191d70775a46672712"}],"oslo_serialization/jsonutils.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e73e1e14941d3b1e522f64058ec19a6f9bf81a00","unresolved":true,"context_lines":[{"line_number":29,"context_line":"import codecs"},{"line_number":30,"context_line":"from collections.abc import Callable"},{"line_number":31,"context_line":"import datetime"},{"line_number":32,"context_line":"from decimal import Decimal"},{"line_number":33,"context_line":"import functools"},{"line_number":34,"context_line":"import inspect"},{"line_number":35,"context_line":"import io"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f941ed5_8d63caa0","line":32,"updated":"2026-03-23 13:28:00.000000000","message":"```suggestion\nimport decimal\n```","commit_id":"111ac3269aa5edadfc59fcf9fda6c07bc0fc19fc"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"349279535250e00582813f23eb4d22a464aae44d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"import codecs"},{"line_number":30,"context_line":"from collections.abc import Callable"},{"line_number":31,"context_line":"import datetime"},{"line_number":32,"context_line":"from decimal import Decimal"},{"line_number":33,"context_line":"import functools"},{"line_number":34,"context_line":"import inspect"},{"line_number":35,"context_line":"import io"}],"source_content_type":"text/x-python","patch_set":1,"id":"810e921e_4bd385b5","line":32,"in_reply_to":"9f941ed5_8d63caa0","updated":"2026-03-23 16:33:57.000000000","message":"Done","commit_id":"111ac3269aa5edadfc59fcf9fda6c07bc0fc19fc"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e73e1e14941d3b1e522f64058ec19a6f9bf81a00","unresolved":true,"context_lines":[{"line_number":158,"context_line":"    ):"},{"line_number":159,"context_line":"        return str(value)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    if isinstance(value, Decimal):"},{"line_number":162,"context_line":"        return str(value)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    # For exceptions, return the \u0027repr\u0027 of the exception object"}],"source_content_type":"text/x-python","patch_set":1,"id":"7cebbe6c_91232dfa","line":161,"updated":"2026-03-23 13:28:00.000000000","message":"```suggestion\n    if isinstance(value, decimal.Decimal):\n```","commit_id":"111ac3269aa5edadfc59fcf9fda6c07bc0fc19fc"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"349279535250e00582813f23eb4d22a464aae44d","unresolved":false,"context_lines":[{"line_number":158,"context_line":"    ):"},{"line_number":159,"context_line":"        return str(value)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    if isinstance(value, Decimal):"},{"line_number":162,"context_line":"        return str(value)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    # For exceptions, return the \u0027repr\u0027 of the exception object"}],"source_content_type":"text/x-python","patch_set":1,"id":"30a60c07_6c59e45e","line":161,"in_reply_to":"7cebbe6c_91232dfa","updated":"2026-03-23 16:33:57.000000000","message":"Done","commit_id":"111ac3269aa5edadfc59fcf9fda6c07bc0fc19fc"}],"oslo_serialization/tests/test_jsonutils.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e73e1e14941d3b1e522f64058ec19a6f9bf81a00","unresolved":true,"context_lines":[{"line_number":16,"context_line":"import collections"},{"line_number":17,"context_line":"import collections.abc"},{"line_number":18,"context_line":"import datetime"},{"line_number":19,"context_line":"from decimal import Decimal"},{"line_number":20,"context_line":"import functools"},{"line_number":21,"context_line":"import io"},{"line_number":22,"context_line":"import ipaddress"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ef85d1a_ccde73f3","line":19,"updated":"2026-03-23 13:28:00.000000000","message":"```suggestion\nimport decimal\n```","commit_id":"111ac3269aa5edadfc59fcf9fda6c07bc0fc19fc"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"349279535250e00582813f23eb4d22a464aae44d","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import collections"},{"line_number":17,"context_line":"import collections.abc"},{"line_number":18,"context_line":"import datetime"},{"line_number":19,"context_line":"from decimal import Decimal"},{"line_number":20,"context_line":"import functools"},{"line_number":21,"context_line":"import io"},{"line_number":22,"context_line":"import ipaddress"}],"source_content_type":"text/x-python","patch_set":1,"id":"b108ba79_c4a6224c","line":19,"in_reply_to":"7ef85d1a_ccde73f3","updated":"2026-03-23 16:33:57.000000000","message":"Done","commit_id":"111ac3269aa5edadfc59fcf9fda6c07bc0fc19fc"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e73e1e14941d3b1e522f64058ec19a6f9bf81a00","unresolved":true,"context_lines":[{"line_number":338,"context_line":"        self.assertEqual({\u0027ip_range\u0027: \u0027aaaa::1-aaaa::ffff\u0027}, ret)"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    def test_decimal(self):"},{"line_number":341,"context_line":"        val \u003d Decimal(\u00271.0\u0027)"},{"line_number":342,"context_line":"        thing \u003d {\"decimal\": val}"},{"line_number":343,"context_line":"        ret \u003d jsonutils.to_primitive(thing)"},{"line_number":344,"context_line":"        self.assertEqual({\u0027decimal\u0027: str(val)}, ret)"},{"line_number":345,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5008fdf8_6c89207b","line":342,"range":{"start_line":341,"start_character":0,"end_line":342,"end_character":32},"updated":"2026-03-23 13:28:00.000000000","message":"```suggestion\n        thing \u003d {\"decimal\": decimal.Decimal(\u00271.0\u0027)}\n```","commit_id":"111ac3269aa5edadfc59fcf9fda6c07bc0fc19fc"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"349279535250e00582813f23eb4d22a464aae44d","unresolved":false,"context_lines":[{"line_number":338,"context_line":"        self.assertEqual({\u0027ip_range\u0027: \u0027aaaa::1-aaaa::ffff\u0027}, ret)"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    def test_decimal(self):"},{"line_number":341,"context_line":"        val \u003d Decimal(\u00271.0\u0027)"},{"line_number":342,"context_line":"        thing \u003d {\"decimal\": val}"},{"line_number":343,"context_line":"        ret \u003d jsonutils.to_primitive(thing)"},{"line_number":344,"context_line":"        self.assertEqual({\u0027decimal\u0027: str(val)}, ret)"},{"line_number":345,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"470b39d5_4e72bf63","line":342,"range":{"start_line":341,"start_character":0,"end_line":342,"end_character":32},"in_reply_to":"5008fdf8_6c89207b","updated":"2026-03-23 16:33:57.000000000","message":"Done","commit_id":"111ac3269aa5edadfc59fcf9fda6c07bc0fc19fc"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e73e1e14941d3b1e522f64058ec19a6f9bf81a00","unresolved":true,"context_lines":[{"line_number":341,"context_line":"        val \u003d Decimal(\u00271.0\u0027)"},{"line_number":342,"context_line":"        thing \u003d {\"decimal\": val}"},{"line_number":343,"context_line":"        ret \u003d jsonutils.to_primitive(thing)"},{"line_number":344,"context_line":"        self.assertEqual({\u0027decimal\u0027: str(val)}, ret)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"    def test_message_with_param(self):"},{"line_number":347,"context_line":"        msg \u003d self.trans_fixture.lazy(\u0027A message with param: %s\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"2b52df8d_1074efb9","line":344,"updated":"2026-03-23 13:28:00.000000000","message":"It would be better to hardcode the expected result\n\n```suggestion\n        self.assertEqual({\u0027decimal\u0027: \u00271.0\u0027}, ret)\n```","commit_id":"111ac3269aa5edadfc59fcf9fda6c07bc0fc19fc"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"349279535250e00582813f23eb4d22a464aae44d","unresolved":false,"context_lines":[{"line_number":341,"context_line":"        val \u003d Decimal(\u00271.0\u0027)"},{"line_number":342,"context_line":"        thing \u003d {\"decimal\": val}"},{"line_number":343,"context_line":"        ret \u003d jsonutils.to_primitive(thing)"},{"line_number":344,"context_line":"        self.assertEqual({\u0027decimal\u0027: str(val)}, ret)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"    def test_message_with_param(self):"},{"line_number":347,"context_line":"        msg \u003d self.trans_fixture.lazy(\u0027A message with param: %s\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5e5a2b20_f2b1d713","line":344,"in_reply_to":"2b52df8d_1074efb9","updated":"2026-03-23 16:33:57.000000000","message":"Done","commit_id":"111ac3269aa5edadfc59fcf9fda6c07bc0fc19fc"}]}
