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/scmutil.py Fri Feb 03 01:04:22 2023 +0100
+++ b/mercurial/scmutil.py Fri Feb 03 01:05:41 2023 +0100
@@ -1066,7 +1066,7 @@
return
# translate mapping's other forms
- if not util.safehasattr(replacements, b'items'):
+ if not util.safehasattr(replacements, 'items'):
replacements = {(n,): () for n in replacements}
else:
# upgrading non tuple "source" to tuple ones for BC