8000 Merge pull request #4 from tacaswell/unpack_labeled_data_alternative · pelson/matplotlib@572c1e2 · GitHub
[go: up one dir, main page]

Skip to content

Commit 572c1e2

Browse files
committed
Merge pull request #4 from tacaswell/unpack_labeled_data_alternative
MNT: use IPython's signature if needed + available
2 parents 9846b9c + 2b2092d commit 572c1e2

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

lib/matplotlib/__init__.py

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1594,27 +1594,40 @@ def param(func):
15941594
# python_has_signature = ver_info.major > 2 and ver_info.minor > 2
15951595
python_has_wrapped = ver_info[0] > 2 and ver_info[1] > 1
15961596
# python_has_wrapped = ver_info.major > 2 and ver_info.minor > 1
1597+
if not python_has_signature:
1598+
try:
1599+
import IPython.utils.signatures
1600+
signature = IPython.utils.signatures.signature
1601+
Parameter = IPython.utils.signatures.Parameter
1602+
except ImportError:
1603+
pass
1604+
else:
1605+
python_has_signature = True
1606+
else:
1607+
signature = inspect.signature
1608+
Parameter = inspect.Parameter
1609+
15971610
if not python_has_signature:
15981611
arg_spec = inspect.getargspec(func)
15991612
_arg_names = arg_spec.args
16001613
_has_no_varargs = arg_spec.varargs is None
16011614
_has_varkwargs = arg_spec.keywords is not None
16021615
else:
1603-
sig = inspect.signature(func)
1616+
sig = signature(func)
16041617
_has_no_varargs = True
16051618
_has_varkwargs = False
16061619
_arg_names = []
16071620
params = list(sig.parameters.values())
16081621
for p in params:
1609-
if p.kind is p.VAR_POSITIONAL:
1622+
if p.kind is Parameter.VAR_POSITIONAL:
9FE8 16101623
_has_no_varargs = False
1611-
elif p.kind is p.VAR_KEYWORD:
1624+
elif p.kind is Parameter.VAR_KEYWORD:
16121625
_has_varkwargs = True
16131626
else:
16141627
_arg_names.append(p.name)
1615-
data_param = inspect.Parameter('data',
1616-
inspect.Parameter.KEYWORD_ONLY,
1617-
default=None)
1628+
data_param = Parameter('data',
1629+
Parameter.KEYWORD_ONLY,
1630+
default=None)
16181631
if _has_varkwargs:
16191632
params.insert(-1, data_param)
16201633
else:

0 commit comments

Comments
 (0)
0