# HG changeset patch # User Pierre-Yves David # Date 1675355026 -3600 # Node ID b0c938f4141ade2a715159e108a9cda9cdeef34f # Parent fca08dd6223d5f3a5e26e62f23ab1b898ab1c4b3 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 fca08dd6223d -r b0c938f4141a mercurial/dispatch.py --- a/mercurial/dispatch.py Thu Feb 02 17:23:37 2023 +0100 +++ b/mercurial/dispatch.py Thu Feb 02 17:23:46 2023 +0100 @@ -520,7 +520,7 @@ def aliasargs(fn, givenargs): args = [] # only care about alias 'args', ignore 'args' set by extensions.wrapfunction - if not util.safehasattr(fn, b'_origfunc'): + if not util.safehasattr(fn, '_origfunc'): args = getattr(fn, 'args', args) if args: cmd = b' '.join(map(procutil.shellquote, args))