1
0
forked from VimPlug/jedi

fix dictionary index problems

This commit is contained in:
David Halter
2013-02-10 16:12:30 +01:00
parent fb6b3ce342
commit a091ee92a4

View File

@@ -815,26 +815,27 @@ class Array(use_metaclass(cache.CachedMetaClass, pr.Base)):
return set(result)
def get_exact_index_types(self, mixed_index):
""" Here the index is an int. Raises IndexError/KeyError """
""" Here the index is an int/str. Raises IndexError/KeyError """
index = mixed_index
if self.type == pr.Array.DICT:
index = None
for i, key_statement in enumerate(self._array.keys):
# Because we only want the key to be a string.
key_elements = key_statement.get_commands()
if len(key_elements) == 1:
key_commands = key_statement.get_commands()
if len(key_commands) == 1:
key = key_commands[0]
key.get_code()
try:
str_key = key_elements.get_code()
str_key = key.get_code()
except AttributeError:
try:
str_key = key_elements[0].name
except AttributeError:
str_key = None
str_key = None
if mixed_index == str_key:
index = i
break
if index is None:
raise KeyError('No key found in dictionary')
# Can raise an IndexError
values = [self._array.values[index]]
return self._follow_values(values)