)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"2848e4032976357c311314cbb1cac9907d8b0445","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"78385cd3_d23f6336","updated":"2026-03-07 07:22:17.000000000","message":"This is a good idea indeed. I left one comment.\n\nOne slight concern is that this may complicate typing annotations in the future (if we add ones to the wrapper function). Do you have any insight about it at this moment ?","commit_id":"cfeecb19cd2ff281da03b18fd01f5fcea60e54a2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4e96049174680a20305fb0905d14ebb137cb60f6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5d839ca7_c9b98f4e","in_reply_to":"78385cd3_d23f6336","updated":"2026-03-09 14:04:36.000000000","message":"\u003e One slight concern is that this may complicate typing annotations in the future (if we add ones to the wrapper function). Do you have any insight about it at this moment ?\n\nYou do get a slightly more convoluted type hint (two `typing.overload`s are needed) but it makes things much easier to end-users since `classmethod` is special cased and we would need a mypy extension to do the same here.","commit_id":"cfeecb19cd2ff281da03b18fd01f5fcea60e54a2"}],"oslo_versionedobjects/base.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"2848e4032976357c311314cbb1cac9907d8b0445","unresolved":true,"context_lines":[{"line_number":192,"context_line":"        # Detect if this is a classmethod (first arg is a class) or"},{"line_number":193,"context_line":"        # instance method (first arg is an instance)"},{"line_number":194,"context_line":"        if isinstance(first, type):"},{"line_number":195,"context_line":"            # Classmethod: first is cls, context is args[0]"},{"line_number":196,"context_line":"            cls \u003d first"},{"line_number":197,"context_line":"            context \u003d args[0]"},{"line_number":198,"context_line":"            remaining_args \u003d args[1:]"}],"source_content_type":"text/x-python","patch_set":3,"id":"5d81413f_415f7db8","line":195,"range":{"start_line":195,"start_character":12,"end_line":195,"end_character":59},"updated":"2026-03-07 07:22:17.000000000","message":"Does it make sense to split the logic for classmethod and one for instance method to separate functions ?","commit_id":"cfeecb19cd2ff281da03b18fd01f5fcea60e54a2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4e96049174680a20305fb0905d14ebb137cb60f6","unresolved":true,"context_lines":[{"line_number":192,"context_line":"        # Detect if this is a classmethod (first arg is a class) or"},{"line_number":193,"context_line":"        # instance method (first arg is an instance)"},{"line_number":194,"context_line":"        if isinstance(first, type):"},{"line_number":195,"context_line":"            # Classmethod: first is cls, context is args[0]"},{"line_number":196,"context_line":"            cls \u003d first"},{"line_number":197,"context_line":"            context \u003d args[0]"},{"line_number":198,"context_line":"            remaining_args \u003d args[1:]"}],"source_content_type":"text/x-python","patch_set":3,"id":"c14c7a51_d9129cb2","line":195,"range":{"start_line":195,"start_character":12,"end_line":195,"end_character":59},"in_reply_to":"5d81413f_415f7db8","updated":"2026-03-09 14:04:36.000000000","message":"Sure. Let me do that in a follow-up though since I am adding typing hints to this and I\u0027d like to make sure it\u0027s possible to do that with split up methods.","commit_id":"cfeecb19cd2ff281da03b18fd01f5fcea60e54a2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f174eb320fce0e7ffb8113c0ee013bd563859dc6","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        # Detect if this is a classmethod (first arg is a class) or"},{"line_number":193,"context_line":"        # instance method (first arg is an instance)"},{"line_number":194,"context_line":"        if isinstance(first, type):"},{"line_number":195,"context_line":"            # Classmethod: first is cls, context is args[0]"},{"line_number":196,"context_line":"            cls \u003d first"},{"line_number":197,"context_line":"            context \u003d args[0]"},{"line_number":198,"context_line":"            remaining_args \u003d args[1:]"}],"source_content_type":"text/x-python","patch_set":3,"id":"e5995af5_dcafcc34","line":195,"range":{"start_line":195,"start_character":12,"end_line":195,"end_character":59},"in_reply_to":"c14c7a51_d9129cb2","updated":"2026-03-19 11:53:38.000000000","message":"https://review.opendev.org/c/openstack/oslo.versionedobjects/+/981237","commit_id":"cfeecb19cd2ff281da03b18fd01f5fcea60e54a2"}]}
