)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e287c132f9db5ef2e2b4ff4829a66a15c00f7ef8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"03b31869_42c135a4","updated":"2026-08-24 11:50:48.000000000","message":"I\u0027m going to squash this into I655b0f7c9e64206c63a32b11cb9da2cfe18a8320 since they both need to merge at once, it seems","commit_id":"ee31e450a1e137d3e53b99d66a31a534468e268b"}],"oslo_log/versionutils.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"016133f0f9f77e6643c329e646189518918a2c0f","unresolved":true,"context_lines":[{"line_number":249,"context_line":"                    report_deprecated()"},{"line_number":250,"context_line":"                orig_init(self, *args, **kwargs)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"            func_or_cls.__init__ \u003d new_init  # type: ignore[assignment]"},{"line_number":253,"context_line":"            _DEPRECATED_EXCEPTIONS.add(func_or_cls)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"            if issubclass(func_or_cls, Exception):"}],"source_content_type":"text/x-python","patch_set":1,"id":"31c4743a_cb500cc3","line":252,"updated":"2026-08-24 09:43:15.000000000","message":"It seems mypy doesn\u0027t allow us to assign a function to a method so I decided to ignore the error.","commit_id":"ee31e450a1e137d3e53b99d66a31a534468e268b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8832e3843d8cc7351fef2295606a2e676bd3db21","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                    report_deprecated()"},{"line_number":250,"context_line":"                orig_init(self, *args, **kwargs)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"            func_or_cls.__init__ \u003d new_init  # type: ignore[assignment]"},{"line_number":253,"context_line":"            _DEPRECATED_EXCEPTIONS.add(func_or_cls)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"            if issubclass(func_or_cls, Exception):"}],"source_content_type":"text/x-python","patch_set":1,"id":"f66b987a_4afc7948","line":252,"in_reply_to":"31c4743a_cb500cc3","updated":"2026-08-24 09:46:21.000000000","message":"Agreed","commit_id":"ee31e450a1e137d3e53b99d66a31a534468e268b"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"016133f0f9f77e6643c329e646189518918a2c0f","unresolved":true,"context_lines":[{"line_number":269,"context_line":"                            report_deprecated()"},{"line_number":270,"context_line":"                        return super().__subclasscheck__(subclass)"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"                func_or_cls.__meta__ \u003d ExceptionMeta  # type: ignore[union-attr]"},{"line_number":273,"context_line":"                _DEPRECATED_EXCEPTIONS.add(func_or_cls)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"            return cast(_C, func_or_cls)"}],"source_content_type":"text/x-python","patch_set":1,"id":"af4ff921_d2a1fe1f","line":272,"range":{"start_line":272,"start_character":28,"end_line":272,"end_character":36},"updated":"2026-08-24 09:43:15.000000000","message":"I\u0027m wondering if this has ever been a valid logic. Should we rather use __metaclass__ instead ?","commit_id":"ee31e450a1e137d3e53b99d66a31a534468e268b"}]}
