# HG changeset patch # User Pierre-Yves David # Date 2023-02-02 16:24:16 # Node ID 9a322ccd2fdc35a87492a63f382c5c9d31121872 # Parent 35e420abaef3e0d227e28421702db025c6463794 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/dispatch.py b/mercurial/dispatch.py --- a/mercurial/dispatch.py +++ b/mercurial/dispatch.py @@ -1024,7 +1024,7 @@ def _checkshellalias(lui, ui, args): cmd = aliases[0] fn = entry[0] - if cmd and util.safehasattr(fn, b'shell'): + if cmd and util.safehasattr(fn, 'shell'): # shell alias shouldn't receive early options which are consumed by hg _earlyopts, args = _earlysplitopts(args) d = lambda: fn(ui, *args[1:])