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.
--- 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: