def builtins_isinstance(evaluator, objects, types, arguments): bool_results = set() for o in objects: try: mro_func = o.py__class__().py__mro__ except AttributeError: # This is temporary. Everything should have a class attribute in # Python?! Maybe we'll leave it here, because some numpy objects or # whatever might not. return ContextSet(compiled.create(True), compiled.create(False)) mro = mro_func() for cls_or_tup in types: if cls_or_tup.is_class(): bool_results.add(cls_or_tup in mro) elif cls_or_tup.name.string_name == 'tuple' \ and cls_or_tup.get_root_context() == evaluator.BUILTINS: # Check for tuples. classes = ContextSet.from_sets( lazy_context.infer() for lazy_context in cls_or_tup.iterate()) bool_results.add(any(cls in mro for cls in classes)) else: _, lazy_context = list(arguments.unpack())[1] if isinstance(lazy_context, LazyTreeContext): node = lazy_context.data message = 'TypeError: isinstance() arg 2 must be a ' \ 'class, type, or tuple of classes and types, ' \ 'not %s.' % cls_or_tup analysis.add(lazy_context._context, 'type-error-isinstance', node, message) return ContextSet.from_iterable( compiled.create(evaluator, x) for x in bool_results)
def builtins_isinstance(evaluator, objects, types, arguments): bool_results = set() for o in objects: try: mro_func = o.py__class__().py__mro__ except AttributeError: # This is temporary. Everything should have a class attribute in # Python?! Maybe we'll leave it here, because some numpy objects or # whatever might not. return ContextSet(compiled.create(True), compiled.create(False)) mro = mro_func() for cls_or_tup in types: if cls_or_tup.is_class(): bool_results.add(cls_or_tup in mro) elif cls_or_tup.name.string_name == 'tuple' \ and cls_or_tup.get_root_context() == evaluator.BUILTINS: # Check for tuples. classes = ContextSet.from_sets( lazy_context.infer() for lazy_context in cls_or_tup.iterate() ) bool_results.add(any(cls in mro for cls in classes)) else: _, lazy_context = list(arguments.unpack())[1] if isinstance(lazy_context, LazyTreeContext): node = lazy_context.data message = 'TypeError: isinstance() arg 2 must be a ' \ 'class, type, or tuple of classes and types, ' \ 'not %s.' % cls_or_tup analysis.add(lazy_context._context, 'type-error-isinstance', node, message) return ContextSet.from_iterable(compiled.create(evaluator, x) for x in bool_results)
def py__call__(self, params): if inspect.isclass(self.obj): from jedi.evaluate.context import CompiledInstance return ContextSet( CompiledInstance(self.evaluator, self.parent_context, self, params)) else: return ContextSet.from_iterable(self._execute_function(params))
def _imitate_items(self): items = ContextSet.from_iterable( FakeSequence( self.evaluator, u'tuple' (LazyKnownContexts(keys), LazyKnownContexts(values)) ) for keys, values in self._iterate() ) return create_evaluated_sequence_set(self.evaluator, items, sequence_type=u'list')
def _imitate_items(self): items = ContextSet.from_iterable( FakeSequence( self.evaluator, 'tuple' (LazyKnownContexts(keys), LazyKnownContexts(values)) ) for keys, values in self._iterate() ) return create_evaluated_sequence_set(self.evaluator, items, sequence_type='list')
def py__call__(self, params): if self.tree_node is not None and self.tree_node.type == 'funcdef': from jedi.evaluate.context.function import FunctionContext return FunctionContext(self.evaluator, parent_context=self.parent_context, funcdef=self.tree_node).py__call__(params) if self.access_handle.is_class(): from jedi.evaluate.context import CompiledInstance return ContextSet( CompiledInstance(self.evaluator, self.parent_context, self, params)) else: return ContextSet.from_iterable(self._execute_function(params))
def py__call__(self, params): if self.tree_node is not None and self.tree_node.type == 'funcdef': from jedi.evaluate.context.function import FunctionContext return FunctionContext( self.evaluator, parent_context=self.parent_context, funcdef=self.tree_node ).py__call__(params) if self.access_handle.is_class(): from jedi.evaluate.context import CompiledInstance return ContextSet(CompiledInstance(self.evaluator, self.parent_context, self, params)) else: return ContextSet.from_iterable(self._execute_function(params))
def dict_values(self): return ContextSet.from_iterable( create_from_access_path(self.evaluator, access) for access in self.access_handle.dict_values())
def eval_docstring(docstring): return ContextSet.from_iterable( p for param_str in _search_param_in_docstr(docstring, param.name.value) for p in _evaluate_for_statement_string(module_context, param_str))
def eval_docstring(docstring): return ContextSet.from_iterable( p for param_str in _search_param_in_docstr(docstring, param.name.value) for p in _evaluate_for_statement_string(module_context, param_str) )
def dict_values(self): return ContextSet.from_iterable( create(self.evaluator, v) for v in self.obj.values())
def dict_values(self): return ContextSet.from_iterable( create_from_access_path(self.evaluator, access) for access in self.access_handle.dict_values() )