# HG changeset patch # User Pierre-Yves David # Date 1675355263 -3600 # Node ID b08aed45ef00c9c8add8f1513b4ae69cd6cfa729 # Parent eb49f8fb11d83fb6bf1b1ac639ebb1a392ce7afb 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 eb49f8fb11d8 -r b08aed45ef00 mercurial/hgweb/server.py --- a/mercurial/hgweb/server.py Thu Feb 02 17:27:33 2023 +0100 +++ b/mercurial/hgweb/server.py Thu Feb 02 17:27:43 2023 +0100 @@ -344,7 +344,7 @@ threading.active_count() # silence pyflakes and bypass demandimport _mixin = socketserver.ThreadingMixIn except ImportError: - if util.safehasattr(os, b"fork"): + if util.safehasattr(os, "fork"): _mixin = socketserver.ForkingMixIn else: