コード例 #1
0
ファイル: stdlib.py プロジェクト: imdone/nuclide
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)
コード例 #2
0
ファイル: stdlib.py プロジェクト: BarnetteME1/DnD-stuff
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)
コード例 #3
0
 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))
コード例 #4
0
ファイル: iterable.py プロジェクト: andrewgu12/config
    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')
コード例 #5
0
    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')
コード例 #6
0
ファイル: context.py プロジェクト: barni2000/ide-python
 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))
コード例 #7
0
ファイル: context.py プロジェクト: Marslo/VimConfig
 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))
コード例 #8
0
ファイル: context.py プロジェクト: barni2000/ide-python
 def dict_values(self):
     return ContextSet.from_iterable(
         create_from_access_path(self.evaluator, access)
         for access in self.access_handle.dict_values())
コード例 #9
0
 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))
コード例 #10
0
ファイル: docstrings.py プロジェクト: BarnetteME1/DnD-stuff
 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)
     )
コード例 #11
0
 def dict_values(self):
     return ContextSet.from_iterable(
         create(self.evaluator, v) for v in self.obj.values())
コード例 #12
0
ファイル: context.py プロジェクト: Marslo/VimConfig
 def dict_values(self):
     return ContextSet.from_iterable(
         create_from_access_path(self.evaluator, access)
         for access in self.access_handle.dict_values()
     )