)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b6ac30cad7d2269513d15b44e68ebbc14ce75987","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"885b9bfa_173d07e7","updated":"2024-08-06 10:41:10.000000000","message":"One nit. A release note might be helpful too, but it\u0027s not essential here.","commit_id":"8c94945097549f9a5e5237a37bcbf8ef8e3a4930"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0430dc57d8f5abd367a68cade05e9b209e89ca87","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"25516cd9_723f394e","updated":"2024-08-08 15:49:45.000000000","message":"fixed the unit test","commit_id":"08fe1d7492caab88f9f20f104db9f521a79925c8"}],"openstack/compute/v2/_proxy.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b6ac30cad7d2269513d15b44e68ebbc14ce75987","unresolved":true,"context_lines":[{"line_number":1183,"context_line":"        server \u003d self._get_resource(_server.Server, server)"},{"line_number":1184,"context_line":"        server.shelve_offload(self)"},{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":"    def unshelve_server(self, server, host\u003dNone):"},{"line_number":1187,"context_line":"        \"\"\"Unshelves or restores a shelved server."},{"line_number":1188,"context_line":""},{"line_number":1189,"context_line":"        Policy defaults enable only users with administrative role or the"}],"source_content_type":"text/x-python","patch_set":1,"id":"96b29f82_56dd12a2","line":1186,"updated":"2024-08-06 10:41:10.000000000","message":"```suggestion\n    def unshelve_server(self, server, *, host\u003dNone):\n```","commit_id":"8c94945097549f9a5e5237a37bcbf8ef8e3a4930"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"eb9dec8290a43ec8bebfa6fbe935bf754289fee6","unresolved":true,"context_lines":[{"line_number":1183,"context_line":"        server \u003d self._get_resource(_server.Server, server)"},{"line_number":1184,"context_line":"        server.shelve_offload(self)"},{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":"    def unshelve_server(self, server, host\u003dNone):"},{"line_number":1187,"context_line":"        \"\"\"Unshelves or restores a shelved server."},{"line_number":1188,"context_line":""},{"line_number":1189,"context_line":"        Policy defaults enable only users with administrative role or the"}],"source_content_type":"text/x-python","patch_set":1,"id":"ef7f3ca0_9e114210","line":1186,"in_reply_to":"96b29f82_56dd12a2","updated":"2024-08-07 08:07:51.000000000","message":"Is it some kind of convention to force callers to pass the defaulted args by name instead of by position? What is the reasoning behind such convention? (I\u0027m asking this purely as a learning opportunity)","commit_id":"8c94945097549f9a5e5237a37bcbf8ef8e3a4930"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"52b6a76db1da8a92ac2ebdecaef28f153778391c","unresolved":true,"context_lines":[{"line_number":1183,"context_line":"        server \u003d self._get_resource(_server.Server, server)"},{"line_number":1184,"context_line":"        server.shelve_offload(self)"},{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":"    def unshelve_server(self, server, host\u003dNone):"},{"line_number":1187,"context_line":"        \"\"\"Unshelves or restores a shelved server."},{"line_number":1188,"context_line":""},{"line_number":1189,"context_line":"        Policy defaults enable only users with administrative role or the"}],"source_content_type":"text/x-python","patch_set":1,"id":"af9c143f_4f2664df","line":1186,"in_reply_to":"9c9c4537_ceb3766c","updated":"2024-08-07 14:24:38.000000000","message":"Thanks for the explanation. Fixed it.","commit_id":"8c94945097549f9a5e5237a37bcbf8ef8e3a4930"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"bc511ec819daf402ca52bbb54e2944b03b579e81","unresolved":false,"context_lines":[{"line_number":1183,"context_line":"        server \u003d self._get_resource(_server.Server, server)"},{"line_number":1184,"context_line":"        server.shelve_offload(self)"},{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":"    def unshelve_server(self, server, host\u003dNone):"},{"line_number":1187,"context_line":"        \"\"\"Unshelves or restores a shelved server."},{"line_number":1188,"context_line":""},{"line_number":1189,"context_line":"        Policy defaults enable only users with administrative role or the"}],"source_content_type":"text/x-python","patch_set":1,"id":"3cefdd47_a935c469","line":1186,"in_reply_to":"af9c143f_4f2664df","updated":"2024-08-07 14:24:50.000000000","message":"Done","commit_id":"8c94945097549f9a5e5237a37bcbf8ef8e3a4930"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"410468688591491e879a5033dc129deccd470b10","unresolved":true,"context_lines":[{"line_number":1183,"context_line":"        server \u003d self._get_resource(_server.Server, server)"},{"line_number":1184,"context_line":"        server.shelve_offload(self)"},{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":"    def unshelve_server(self, server, host\u003dNone):"},{"line_number":1187,"context_line":"        \"\"\"Unshelves or restores a shelved server."},{"line_number":1188,"context_line":""},{"line_number":1189,"context_line":"        Policy defaults enable only users with administrative role or the"}],"source_content_type":"text/x-python","patch_set":1,"id":"9c9c4537_ceb3766c","line":1186,"in_reply_to":"ef7f3ca0_9e114210","updated":"2024-08-07 10:01:08.000000000","message":"Yes, albeit a recent one that we\u0027re slowly introducing since kwonly-args are only available in Python 3.x. The idea is that only required arguments should be positional and everything else should be kwonly, similar to how we usually write argparse parsers to accept required arguments as positional args and everything else via opts. Doing things that way means we can change the ordering of arguments and results in more obvious code.","commit_id":"8c94945097549f9a5e5237a37bcbf8ef8e3a4930"}]}
