# HG changeset patch # User Pierre-Yves David # Date 1675354704 -3600 # Node ID 9e24f8442640468dc8edc201d57d8c0f16d7bb64 # Parent 9dcb0084276911d9033d8e19d6fae0f9864cbfbb 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 9dcb00842769 -r 9e24f8442640 mercurial/wireprotov1server.py --- a/mercurial/wireprotov1server.py Wed May 31 12:02:56 2023 -0300 +++ b/mercurial/wireprotov1server.py Thu Feb 02 17:18:24 2023 +0100 @@ -665,7 +665,7 @@ r = exchange.unbundle( repo, gen, their_heads, b'serve', proto.client() ) - if util.safehasattr(r, b'addpart'): + if util.safehasattr(r, 'addpart'): # The return looks streamable, we are in the bundle2 case # and should return a stream. return wireprototypes.streamreslegacy(gen=r.getchunks())