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)