예제 #1
0
파일: iterable.py 프로젝트: lqhSniper/jedi
 def py__simple_getitem__(self, index):
     for keys, values in self._iterate():
         for k in keys:
             if isinstance(k, compiled.CompiledObject):
                 if k.get_safe_value(default=object()) == index:
                     return values
     raise SimpleGetItemNotFound()
예제 #2
0
 def py__simple_getitem__(self, index):
     for keys, values in self._iterate():
         for k in keys:
             if isinstance(k, compiled.CompiledObject):
                 # Be careful in the future if refactoring, index could be a
                 # slice.
                 if k.get_safe_value(default=object()) == index:
                     return values
     raise SimpleGetItemNotFound()
예제 #3
0
    def py__simple_getitem__(self, index):
        """Here the index is an int/str. Raises IndexError/KeyError."""
        if self.array_type == u'dict':
            compiled_obj_index = compiled.create_simple_object(self.evaluator, index)
            for key, value in self.get_tree_entries():
                for k in self._defining_context.eval_node(key):
                    try:
                        method = k.execute_operation
                    except AttributeError:
                        pass
                    else:
                        if method(compiled_obj_index, u'==').get_safe_value():
                            return self._defining_context.eval_node(value)
            raise SimpleGetItemNotFound('No key found in dictionary %s.' % self)

        if isinstance(index, slice):
            return ContextSet([self])
        else:
            with reraise_getitem_errors(TypeError, KeyError, IndexError):
                node = self.get_tree_entries()[index]
            return self._defining_context.eval_node(node)