# HG changeset patch # User Pierre-Yves David # Date 1675355418 -3600 # Node ID 5586076b8030c8145614653d04a370393901c67f # Parent 58e58ea3dcb8fc1105bfe92523ae1d1c4f515f6f 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 58e58ea3dcb8 -r 5586076b8030 mercurial/lock.py --- a/mercurial/lock.py Thu Feb 02 17:29:39 2023 +0100 +++ b/mercurial/lock.py Thu Feb 02 17:30:18 2023 +0100 @@ -76,11 +76,11 @@ # save handlers first so they can be restored even if a setup is # interrupted between signal.signal() and orighandlers[] =. for name in [ - b'CTRL_C_EVENT', - b'SIGINT', - b'SIGBREAK', - b'SIGHUP', - b'SIGTERM', + 'CTRL_C_EVENT', + 'SIGINT', + 'SIGBREAK', + 'SIGHUP', + 'SIGTERM', ]: num = getattr(signal, name, None) if num and num not in orighandlers: