Mercurial > public > mercurial-scm > hg-stable
diff mercurial/pycompat.py @ 37102:6ca5f825a0ca
util: make safehasattr() a pycompat function
So safehasattr() can be imported by utils.* modules. util.safehasattr() still
remains as an alias since it is pretty basic utility available for years.
On current Python 3, the builtin hasattr() should have no problem.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 24 Mar 2018 14:24:32 +0900 |
parents | 434e520adb8c |
children | 8da30ceae88f |
line wrap: on
line diff
--- a/mercurial/pycompat.py Sat Mar 24 14:13:37 2018 +0900 +++ b/mercurial/pycompat.py Sat Mar 24 14:24:32 2018 +0900 @@ -243,6 +243,8 @@ def open(name, mode='r', buffering=-1, encoding=None): return builtins.open(name, sysstr(mode), buffering, encoding) + safehasattr = _wrapattrfunc(builtins.hasattr) + def _getoptbwrapper(orig, args, shortlist, namelist): """ Takes bytes arguments, converts them to unicode, pass them to @@ -326,6 +328,11 @@ def getdoc(obj): return getattr(obj, '__doc__', None) + _notset = object() + + def safehasattr(thing, attr): + return getattr(thing, attr, _notset) is not _notset + def _getoptbwrapper(orig, args, shortlist, namelist): return orig(args, shortlist, namelist)