# HG changeset patch # User Pierre-Yves David # Date 1675355287 -3600 # Node ID b23b3ef38ba1602b1743f3fc70ebfe9e75496ebd # Parent 35b274cba81d2355c1c8b73a4f1cd769503d6e05 safehasattr: pass attribute name as string instead of bytes This is a step toward replacing `util.safehasattr` usage with plain `hasattr`. The builtin function behave poorly in Python2 but this was fixed in Python3. These change are done one by one as they tend to have a small odd to trigger puzzling breackage. diff -r 35b274cba81d -r b23b3ef38ba1 mercurial/httppeer.py --- a/mercurial/httppeer.py Thu Feb 02 17:27:58 2023 +0100 +++ b/mercurial/httppeer.py Thu Feb 02 17:28:07 2023 +0100 @@ -180,7 +180,7 @@ qs = b'?%s' % urlreq.urlencode(q) cu = b"%s%s" % (repobaseurl, qs) size = 0 - if util.safehasattr(data, b'length'): + if util.safehasattr(data, 'length'): size = data.length elif data is not None: size = len(data)