Comments
Patch
@@ -11,6 +11,7 @@
from __future__ import absolute_import
import getopt
+import inspect
import os
import shlex
import sys
@@ -65,6 +66,7 @@
maplist = lambda *args: list(map(*args))
ziplist = lambda *args: list(zip(*args))
rawinput = input
+ getargspec = inspect.getfullargspec
# TODO: .buffer might not exist if std streams were replaced; we'll need
# a silly wrapper to make a bytes stream backed by a unicode one.
@@ -330,6 +332,8 @@
maplist = map
ziplist = zip
rawinput = raw_input
+ getargspec = inspect.getargspec
+
def emailparser(*args, **kwargs):
import email.parser
@@ -9,7 +9,6 @@
import errno
import hashlib
-import inspect
import os
import random
import time
@@ -1068,7 +1067,7 @@
if not fn:
fn = lambda s, c, **kwargs: util.filter(s, c)
# Wrap old filters not supporting keyword arguments
- if not inspect.getargspec(fn)[2]:
+ if not pycompat.getargspec(fn)[2]:
oldfn = fn
fn = lambda s, c, **kwargs: oldfn(s, c)
l.append((mf, fn, params))
@@ -195,11 +195,7 @@
try:
extsetup(ui)
except TypeError:
- # 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:
+ if pycompat.getargspec(extsetup).args:
raise
extsetup() # old extsetup with no ui argument
except Exception as inst:
@@ -64,6 +64,12 @@
from mercurial import scmutil # since 1.9 (or 8b252e826c68)
except ImportError:
pass
+try:
+ from mercurial import pycompat
+ getargspec = pycompat.getargspec # added to module after 4.5
+except (ImportError, AttributeError):
+ import inspect
+ getargspec = inspect.getargspec
# for "historical portability":
# define util.safehasattr forcibly, because util.safehasattr has been
@@ -114,9 +120,8 @@
if safehasattr(registrar, 'command'):
command = registrar.command(cmdtable)
elif safehasattr(cmdutil, 'command'):
- import inspect
command = cmdutil.command(cmdtable)
- if 'norepo' not in inspect.getargspec(command)[0]:
+ if 'norepo' not in getargspec(command).args:
# for "historical portability":
# wrap original cmdutil.command, because "norepo" option has
# been available since 3.1 (or 75a96326cecb)