extensions: attempt to use non-deprecated inspect method
authorAugie Fackler <augie@google.com>
Tue, 25 Jul 2017 22:48:46 -0400
changeset 33722 62fbe95075d3
parent 33721 24849d53697d
child 33723 5b2f331d0a33
extensions: attempt to use non-deprecated inspect method Avoids some deprecation warnings when extension loading breaks. Differential Revision: https://phab.mercurial-scm.org/D295
mercurial/extensions.py
--- a/mercurial/extensions.py	Thu Jun 15 14:22:25 2017 -0400
+++ b/mercurial/extensions.py	Tue Jul 25 22:48:46 2017 -0400
@@ -186,7 +186,11 @@
             try:
                 extsetup(ui)
             except TypeError:
-                if inspect.getargspec(extsetup).args:
+                # Try to use getfullargspec (Python 3) first, and fall
+                # back to getargspec only if it doesn't exist so as to
+                # avoid warnings.
+                if getattr(inspect, 'getfullargspec',
+                           getattr(inspect, 'getargspec'))(extsetup).args:
                     raise
                 extsetup() # old extsetup with no ui argument
         except Exception as inst: