From ae701b2f9a23f9123327dd9bd87272269f5a8f72 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 17 Jan 2016 12:43:23 +0100 Subject: [PATCH] Support for typing.Tuple[type, ...] --- jedi/evaluate/jedi_typing.py | 7 ++++++- test/completion/pep0484_typing.py | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/jedi/evaluate/jedi_typing.py b/jedi/evaluate/jedi_typing.py index 62f52fd4..e34ee989 100644 --- a/jedi/evaluate/jedi_typing.py +++ b/jedi/evaluate/jedi_typing.py @@ -35,7 +35,12 @@ def factory(typing_name, indextypes): class Tuple(Sequence, tuple): def __getitem__(self, index): - return indextypes[index]() + if indextypes[1] == ...: + # https://www.python.org/dev/peps/pep-0484/#the-typing-module + # Tuple[int, ...] means a tuple of ints of indetermined length + return indextypes[0]() + else: + return indextypes[index]() class AbstractSet(Iterable, abc.Set): pass diff --git a/test/completion/pep0484_typing.py b/test/completion/pep0484_typing.py index 2dfc50fc..74a99e51 100644 --- a/test/completion/pep0484_typing.py +++ b/test/completion/pep0484_typing.py @@ -83,7 +83,7 @@ def tuple( q[2] #? B() r[0] - ##? B() --- TODO fix support for arbitrary length + #? B() r[1] #? B() r[2]