)]}'
{"oslo_metrics/message_router.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"aa1152c9cba09894b86e68562e2b8a01eb9b623f","unresolved":true,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def dispatch(self, metric):"},{"line_number":47,"context_line":"        if metric.module not in self.modules:"},{"line_number":48,"context_line":"            LOG.error(\"Failed to lookup modules by %s\" % metric.module)"},{"line_number":49,"context_line":"            return"},{"line_number":50,"context_line":"        mod \u003d self.modules.get(metric.module)"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9cffcc83_d15c0bfb","side":"PARENT","line":48,"range":{"start_line":48,"start_character":22,"end_line":48,"end_character":70},"updated":"2025-12-02 15:39:03.000000000","message":"I wonder if we should update these to avoid direct string interpolation. It seems this hacking check is not enabled in this repo.","commit_id":"f3997ebace60de81bc2acae35ef6e136867e846a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6b09fe51c50744146e3daf52b353f0a0d365fa87","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def dispatch(self, metric):"},{"line_number":47,"context_line":"        if metric.module not in self.modules:"},{"line_number":48,"context_line":"            LOG.error(\"Failed to lookup modules by %s\" % metric.module)"},{"line_number":49,"context_line":"            return"},{"line_number":50,"context_line":"        mod \u003d self.modules.get(metric.module)"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"43cb990e_04ef51e2","side":"PARENT","line":48,"range":{"start_line":48,"start_character":22,"end_line":48,"end_character":70},"in_reply_to":"095d7c8f_593d5d8d","updated":"2025-12-04 14:25:19.000000000","message":"Yes, lets. I just approved that.","commit_id":"f3997ebace60de81bc2acae35ef6e136867e846a"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"49a2a59c5da644954cba421b14d46382d1515b57","unresolved":true,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def dispatch(self, metric):"},{"line_number":47,"context_line":"        if metric.module not in self.modules:"},{"line_number":48,"context_line":"            LOG.error(\"Failed to lookup modules by %s\" % metric.module)"},{"line_number":49,"context_line":"            return"},{"line_number":50,"context_line":"        mod \u003d self.modules.get(metric.module)"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"095d7c8f_593d5d8d","side":"PARENT","line":48,"range":{"start_line":48,"start_character":22,"end_line":48,"end_character":70},"in_reply_to":"46d4b9a3_1abecafd","updated":"2025-12-03 13:26:04.000000000","message":"I\u0027ve prepared https://review.opendev.org/c/openstack/oslo.metrics/+/969420 . Can we merge it first ?","commit_id":"f3997ebace60de81bc2acae35ef6e136867e846a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7d565e9a2d4ee3bd2f246752ab2a9532cc710874","unresolved":true,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def dispatch(self, metric):"},{"line_number":47,"context_line":"        if metric.module not in self.modules:"},{"line_number":48,"context_line":"            LOG.error(\"Failed to lookup modules by %s\" % metric.module)"},{"line_number":49,"context_line":"            return"},{"line_number":50,"context_line":"        mod \u003d self.modules.get(metric.module)"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"f719c56f_4336a040","side":"PARENT","line":48,"range":{"start_line":48,"start_character":22,"end_line":48,"end_character":70},"in_reply_to":"507a1df3_4a4a299b","updated":"2025-12-02 18:43:38.000000000","message":"Use of f-strings means you can\u0027t defer formatting https://docs.python.org/3/howto/logging.html#optimization. As @kajinamit@oss.nttdata.com notes, this should be using the deferred format, e.g.\n\n```\nLOG.error(\"Failed to lookup modules by %s\", metric.module)\n```\n\nI can fix this in a follow-up.","commit_id":"f3997ebace60de81bc2acae35ef6e136867e846a"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"b0f704f0c9f7f4fac98364ac18af2f96b2296319","unresolved":true,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def dispatch(self, metric):"},{"line_number":47,"context_line":"        if metric.module not in self.modules:"},{"line_number":48,"context_line":"            LOG.error(\"Failed to lookup modules by %s\" % metric.module)"},{"line_number":49,"context_line":"            return"},{"line_number":50,"context_line":"        mod \u003d self.modules.get(metric.module)"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"507a1df3_4a4a299b","side":"PARENT","line":48,"range":{"start_line":48,"start_character":22,"end_line":48,"end_character":70},"in_reply_to":"9cffcc83_d15c0bfb","updated":"2025-12-02 16:06:38.000000000","message":"I personally prefer f-string","commit_id":"f3997ebace60de81bc2acae35ef6e136867e846a"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"b21e010522a9def5c6ee286614c9ca9217368656","unresolved":true,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def dispatch(self, metric):"},{"line_number":47,"context_line":"        if metric.module not in self.modules:"},{"line_number":48,"context_line":"            LOG.error(\"Failed to lookup modules by %s\" % metric.module)"},{"line_number":49,"context_line":"            return"},{"line_number":50,"context_line":"        mod \u003d self.modules.get(metric.module)"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"46d4b9a3_1abecafd","side":"PARENT","line":48,"range":{"start_line":48,"start_character":22,"end_line":48,"end_character":70},"in_reply_to":"f719c56f_4336a040","updated":"2025-12-03 10:20:46.000000000","message":"Indeed, you are right about the deferring of the formatting.","commit_id":"f3997ebace60de81bc2acae35ef6e136867e846a"}],"pyproject.toml":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"aa1152c9cba09894b86e68562e2b8a01eb9b623f","unresolved":true,"context_lines":[{"line_number":41,"context_line":"line-length \u003d 79"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"[tool.ruff.lint]"},{"line_number":44,"context_line":"select \u003d [\"C4\", \"E4\", \"E5\", \"E7\", \"E9\", \"F\", \"S\", \"U\"]"},{"line_number":45,"context_line":"ignore \u003d ["},{"line_number":46,"context_line":"    # we only use asserts for type narrowing"},{"line_number":47,"context_line":"    \"S101\","}],"source_content_type":"text/x-toml","patch_set":1,"id":"c16651ba_5be18783","line":44,"range":{"start_line":44,"start_character":51,"end_line":44,"end_character":52},"updated":"2025-12-02 15:39:03.000000000","message":"Can we use UP instead ?","commit_id":"5db09bc6b0a0470a1ac37b1bf7a0d4b8ad4b55d0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6b09fe51c50744146e3daf52b353f0a0d365fa87","unresolved":false,"context_lines":[{"line_number":41,"context_line":"line-length \u003d 79"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"[tool.ruff.lint]"},{"line_number":44,"context_line":"select \u003d [\"C4\", \"E4\", \"E5\", \"E7\", \"E9\", \"F\", \"S\", \"U\"]"},{"line_number":45,"context_line":"ignore \u003d ["},{"line_number":46,"context_line":"    # we only use asserts for type narrowing"},{"line_number":47,"context_line":"    \"S101\","}],"source_content_type":"text/x-toml","patch_set":1,"id":"bb67fb7e_9f5f50ea","line":44,"range":{"start_line":44,"start_character":51,"end_line":44,"end_character":52},"in_reply_to":"c16651ba_5be18783","updated":"2025-12-04 14:25:19.000000000","message":"Good point. Will fix.","commit_id":"5db09bc6b0a0470a1ac37b1bf7a0d4b8ad4b55d0"}]}
