# HG changeset patch # User Pierre-Yves David # Date 2023-02-02 16:27:58 # Node ID 35b274cba81d2355c1c8b73a4f1cd769503d6e05 # Parent f30ce3558c2b455ca3629aede514471a51d5f729 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 --git a/mercurial/httppeer.py b/mercurial/httppeer.py --- a/mercurial/httppeer.py +++ b/mercurial/httppeer.py @@ -65,7 +65,7 @@ def encodevalueinheaders(value, header, class _multifile: def __init__(self, *fileobjs): for f in fileobjs: - if not util.safehasattr(f, b'length'): + if not util.safehasattr(f, 'length'): raise ValueError( b'_multifile only supports file objects that ' b'have a length but this one does not:',