Mercurial > public > mercurial-scm > hg
comparison mercurial/templateutil.py @ 50617:26e63204c31e
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.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Thu, 02 Feb 2023 17:37:51 +0100 |
parents | ae2de4cb7869 |
children | d718eddf01d9 |
comparison
equal
deleted
inserted
replaced
50616:2704dc40cf10 | 50617:26e63204c31e |
---|---|
856 b'Mercurial IO including templates is done' | 856 b'Mercurial IO including templates is done' |
857 b' with bytes, not strings, got %r' % thing | 857 b' with bytes, not strings, got %r' % thing |
858 ) | 858 ) |
859 elif thing is None: | 859 elif thing is None: |
860 pass | 860 pass |
861 elif not util.safehasattr(thing, b'__iter__'): | 861 elif not util.safehasattr(thing, '__iter__'): |
862 yield pycompat.bytestr(thing) | 862 yield pycompat.bytestr(thing) |
863 else: | 863 else: |
864 for i in thing: | 864 for i in thing: |
865 if isinstance(i, wrapped): | 865 if isinstance(i, wrapped): |
866 i = i.show(context, mapping) | 866 i = i.show(context, mapping) |