)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"f1d44f86dcde5efebb8b4689452652ffd41d2ee7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"88070f09_1a2ef65c","updated":"2025-07-08 21:59:17.000000000","message":"-1 for the missing return and the removal of attribution sneaking into this change. The other comment is informational for other reviewers.","commit_id":"8e588d8b6c8e39ec1ad0bfd479f1430b6df85650"}],"pbr/_compat/packaging.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"f1d44f86dcde5efebb8b4689452652ffd41d2ee7","unresolved":true,"context_lines":[{"line_number":35,"context_line":"    except ImportError:"},{"line_number":36,"context_line":"        pass"},{"line_number":37,"context_line":"    else:"},{"line_number":38,"context_line":"        _packaging_lib \u003d PACKAGING_LIB_PACKAGING"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    # pkg_resources is our fallback. This will always be available on older"},{"line_number":41,"context_line":"    # Python versions since it\u0027s part of setuptools."}],"source_content_type":"text/x-python","patch_set":4,"id":"5a638256_160fc9ac","line":38,"updated":"2025-07-08 21:59:17.000000000","message":"There is a missing return here. As noted in the prior change we could skip the else case and put the return and global assignment in the try case. That may be simpler.","commit_id":"8e588d8b6c8e39ec1ad0bfd479f1430b6df85650"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"482ca9e0edaaf971bc5a396464ba9eec997c9dea","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    except ImportError:"},{"line_number":36,"context_line":"        pass"},{"line_number":37,"context_line":"    else:"},{"line_number":38,"context_line":"        _packaging_lib \u003d PACKAGING_LIB_PACKAGING"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    # pkg_resources is our fallback. This will always be available on older"},{"line_number":41,"context_line":"    # Python versions since it\u0027s part of setuptools."}],"source_content_type":"text/x-python","patch_set":4,"id":"e3f7f49a_2e8d68c2","line":38,"in_reply_to":"5a638256_160fc9ac","updated":"2025-07-09 13:50:36.000000000","message":"Done","commit_id":"8e588d8b6c8e39ec1ad0bfd479f1430b6df85650"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"f1d44f86dcde5efebb8b4689452652ffd41d2ee7","unresolved":true,"context_lines":[{"line_number":99,"context_line":"            return packaging.markers.Marker(marker).evaluate()"},{"line_number":100,"context_line":"        except packaging.markers.InvalidMarker as e:"},{"line_number":101,"context_line":"            # we can\u0027t chain the exceptions since that is a Python 3 only thing"},{"line_number":102,"context_line":"            raise SyntaxError(e)"},{"line_number":103,"context_line":"    else:  # PACKAGING_LIB_LEGACY"},{"line_number":104,"context_line":"        import pkg_resources"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"42770213_c1f85450","line":102,"updated":"2025-07-08 21:59:17.000000000","message":"Note for other reviewers: the caller of evaluate_marker expects a SyntaxError on error as this is what pkg_resources will raise.","commit_id":"8e588d8b6c8e39ec1ad0bfd479f1430b6df85650"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"482ca9e0edaaf971bc5a396464ba9eec997c9dea","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            return packaging.markers.Marker(marker).evaluate()"},{"line_number":100,"context_line":"        except packaging.markers.InvalidMarker as e:"},{"line_number":101,"context_line":"            # we can\u0027t chain the exceptions since that is a Python 3 only thing"},{"line_number":102,"context_line":"            raise SyntaxError(e)"},{"line_number":103,"context_line":"    else:  # PACKAGING_LIB_LEGACY"},{"line_number":104,"context_line":"        import pkg_resources"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"b3582557_12612bea","line":102,"in_reply_to":"42770213_c1f85450","updated":"2025-07-09 13:50:36.000000000","message":"Done","commit_id":"8e588d8b6c8e39ec1ad0bfd479f1430b6df85650"}],"pbr/util.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"f1d44f86dcde5efebb8b4689452652ffd41d2ee7","unresolved":true,"context_lines":[{"line_number":50,"context_line":"I didn\u0027t want to use it directly from distutils2 itself, since I do not want it"},{"line_number":51,"context_line":"to be an installation dependency for our packages yet--it is still too unstable"},{"line_number":52,"context_line":"(the latest version on PyPI doesn\u0027t even install)."},{"line_number":53,"context_line":"\"\"\""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"# These first two imports are not used, but are needed to get around an"},{"line_number":56,"context_line":"# irritating Python bug that can crop up when using ./setup.py test."}],"source_content_type":"text/x-python","patch_set":4,"id":"93076771_9ec3dcec","side":"PARENT","line":53,"updated":"2025-07-08 21:59:17.000000000","message":"I\u0027m wary of removing attribution particularly in a refactor change. I think if we want to do this it should be in a commit of its own that justifies the removal.","commit_id":"2677b29364bd6f1f8760c5a85efabffcabb80229"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bca4cb9677968f0304941db8a198dbe5e07e0f55","unresolved":true,"context_lines":[{"line_number":50,"context_line":"I didn\u0027t want to use it directly from distutils2 itself, since I do not want it"},{"line_number":51,"context_line":"to be an installation dependency for our packages yet--it is still too unstable"},{"line_number":52,"context_line":"(the latest version on PyPI doesn\u0027t even install)."},{"line_number":53,"context_line":"\"\"\""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"# These first two imports are not used, but are needed to get around an"},{"line_number":56,"context_line":"# irritating Python bug that can crop up when using ./setup.py test."}],"source_content_type":"text/x-python","patch_set":4,"id":"9b509b6e_64cebbe5","side":"PARENT","line":53,"in_reply_to":"93076771_9ec3dcec","updated":"2025-07-09 12:13:35.000000000","message":"Is this not handled by the license? The context comment no longer makes sense since this has diverged signficantly (and continues to diverge) from distutils2 source.","commit_id":"2677b29364bd6f1f8760c5a85efabffcabb80229"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"482ca9e0edaaf971bc5a396464ba9eec997c9dea","unresolved":false,"context_lines":[{"line_number":50,"context_line":"I didn\u0027t want to use it directly from distutils2 itself, since I do not want it"},{"line_number":51,"context_line":"to be an installation dependency for our packages yet--it is still too unstable"},{"line_number":52,"context_line":"(the latest version on PyPI doesn\u0027t even install)."},{"line_number":53,"context_line":"\"\"\""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"# These first two imports are not used, but are needed to get around an"},{"line_number":56,"context_line":"# irritating Python bug that can crop up when using ./setup.py test."}],"source_content_type":"text/x-python","patch_set":4,"id":"db0d89db_c9d025bc","side":"PARENT","line":53,"in_reply_to":"9b509b6e_64cebbe5","updated":"2025-07-09 13:50:36.000000000","message":"I re-added the attribution but removed the rest of the info, since it\u0027s no longer relevant.","commit_id":"2677b29364bd6f1f8760c5a85efabffcabb80229"}],"pbr/version.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bca4cb9677968f0304941db8a198dbe5e07e0f55","unresolved":false,"context_lines":[{"line_number":21,"context_line":"import operator"},{"line_number":22,"context_line":"import sys"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import pbr._compat.metadata"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"def _is_int(string):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1cd744cf_35a1c319","line":24,"updated":"2025-07-09 12:13:35.000000000","message":"This should have been in the previous patch","commit_id":"8e588d8b6c8e39ec1ad0bfd479f1430b6df85650"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"482ca9e0edaaf971bc5a396464ba9eec997c9dea","unresolved":false,"context_lines":[{"line_number":21,"context_line":"import operator"},{"line_number":22,"context_line":"import sys"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import pbr._compat.metadata"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"def _is_int(string):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7ae1072a_9033d6ac","line":24,"in_reply_to":"1cd744cf_35a1c319","updated":"2025-07-09 13:50:36.000000000","message":"Done","commit_id":"8e588d8b6c8e39ec1ad0bfd479f1430b6df85650"}]}
