# HG changeset patch # User Pierre-Yves David # Date 2023-02-03 00:03:45 # Node ID 7200a9d4ea045c6b2be327f2edea9eef9ae6ab53 # Parent 9e69d9d6f4cf773e5ecfcfd5c1ef6b0c6c4db4fc 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/bundle2.py b/mercurial/bundle2.py --- a/mercurial/bundle2.py +++ b/mercurial/bundle2.py @@ -1381,7 +1381,7 @@ class unbundlepart(unpackermixin): def __init__(self, ui, header, fp): super(unbundlepart, self).__init__(fp) self._seekable = util.safehasattr(fp, 'seek') and util.safehasattr( - fp, b'tell' + fp, 'tell' ) self.ui = ui # unbundle state attr