# HG changeset patch
# User Augie Fackler <raf@durin42.com>
# Date 1462935757 14400
# Node ID c79fdd5f615da63d1fdfbb2f929745c6bd0fd107
# Parent  94eb844fd4ab6e79f6004669b204635cb73ceb11
cleanup: stop using hasattr

Use hg's util.safehasattr when possible, and a getattr trick when not.

diff --git a/hgsubversion/svnexternals.py b/hgsubversion/svnexternals.py
--- a/hgsubversion/svnexternals.py
+++ b/hgsubversion/svnexternals.py
@@ -488,7 +488,7 @@ class svnsubrepo(subrepo.svnsubrepo):
     def dirty(self, ignoreupdate=False):
         # You cannot compare anything with HEAD. Just accept it
         # can be anything.
-        if hasattr(self, '_wcrevs'):
+        if hgutil.safehasattr(self, '_wcrevs'):
             wcrevs = self._wcrevs()
         else:
             wcrev = self._wcrev()
diff --git a/hgsubversion/svnmeta.py b/hgsubversion/svnmeta.py
--- a/hgsubversion/svnmeta.py
+++ b/hgsubversion/svnmeta.py
@@ -221,7 +221,7 @@ class SVNMeta(object):
 
     @property
     def editor(self):
-        if not hasattr(self, '_editor'):
+        if not hgutil.safehasattr(self, '_editor'):
             self._editor = editor.HgEditor(self)
         return self._editor
 
diff --git a/hgsubversion/svnwrap/svn_swig_wrapper.py b/hgsubversion/svnwrap/svn_swig_wrapper.py
--- a/hgsubversion/svnwrap/svn_swig_wrapper.py
+++ b/hgsubversion/svnwrap/svn_swig_wrapper.py
@@ -170,7 +170,7 @@ def _create_auth_baton(pool, password_st
                     providers.append(p)
     else:
         for p in platform_specific:
-            if hasattr(core, p):
+            if getattr(core, p, None) is not None:
                 try:
                     providers.append(getattr(core, p)())
                 except RuntimeError: