# HG changeset patch # User Pierre-Yves David # Date 1675355807 -3600 # Node ID a30e6401c7f08529220cc6f1fcccf6a37b852bde # Parent 98b805d40c415beff06cde863f480bc53e2b3f4a 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 98b805d40c41 -r a30e6401c7f0 mercurial/subrepoutil.py --- a/mercurial/subrepoutil.py Thu Feb 02 17:36:38 2023 +0100 +++ b/mercurial/subrepoutil.py Thu Feb 02 17:36:47 2023 +0100 @@ -415,7 +415,7 @@ # type: (localrepo.localrepository, bool, bool) -> Optional[bytes] """return pull/push path of repo - either based on parent repo .hgsub info or on the top repo config. Abort or return None if no source found.""" - if util.safehasattr(repo, b'_subparent'): + if util.safehasattr(repo, '_subparent'): source = urlutil.url(repo._subsource) if source.isabs(): return bytes(source)