def py__getitem__(self, index): with reraise_as_evaluator(IndexError, KeyError, TypeError): access = self.access_handle.py__getitem__(index) if access is None: return ContextSet() return ContextSet(create_from_access_path(self.evaluator, access))
def py__getitem__(self, index): if isinstance(index, slice): return ContextSet(self) all_types = list(self.py__iter__()) with reraise_as_evaluator(IndexError, TypeError): lazy_context = all_types[index] return lazy_context.infer()
def py__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._items(): for k in self._defining_context.eval_node(key): if isinstance(k, compiled.CompiledObject) \ and k.execute_operation(compiled_obj_index, u'==').get_safe_value(): return self._defining_context.eval_node(value) raise EvaluatorKeyError('No key found in dictionary %s.' % self) # Can raise an IndexError if isinstance(index, slice): return ContextSet(self) else: with reraise_as_evaluator(TypeError, KeyError, IndexError): node = self._items()[index] return self._defining_context.eval_node(node)
def py__getitem__(self, index): if is_py3 and self.evaluator.environment.version_info.major == 2: # In Python 2 bytes and unicode compare. if isinstance(index, bytes): index_unicode = force_unicode(index) try: return self._dct[index_unicode].infer() except KeyError: pass elif isinstance(index, str): index_bytes = index.encode('utf-8') try: return self._dct[index_bytes].infer() except KeyError: pass with reraise_as_evaluator(KeyError): lazy_context = self._dct[index] return lazy_context.infer()
def py__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._items(): for k in self._defining_context.eval_node(key): if isinstance(k, compiled.CompiledObject) \ and k.execute_operation(compiled_obj_index, u'==').get_safe_value(): return self._defining_context.eval_node(value) raise EvaluatorKeyError('No key found in dictionary %s.' % self) # Can raise an IndexError if isinstance(index, slice): return ContextSet(self) else: with reraise_as_evaluator(TypeError, KeyError, IndexError): node = self._items()[index] return self._defining_context.eval_node(node)
def py__getitem__(self, index): with reraise_as_evaluator(IndexError, TypeError): lazy_context = self._lazy_context_list[index] return lazy_context.infer()