From c9542cbc0454a5361ce3cb32ec3014d15a953cad Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Wed, 20 Aug 2014 11:43:25 +0200 Subject: [PATCH] Start implementing an is_class function that will determine if an object is a class or not in the future. --- jedi/evaluate/compiled/__init__.py | 3 +++ jedi/evaluate/representation.py | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/jedi/evaluate/compiled/__init__.py b/jedi/evaluate/compiled/__init__.py index 4aec2dcc..f1d9386c 100644 --- a/jedi/evaluate/compiled/__init__.py +++ b/jedi/evaluate/compiled/__init__.py @@ -54,6 +54,9 @@ class CompiledObject(Base): def py__bool__(self): return bool(self.obj) + def is_class(self): + return isinstance(self.obj, type) + @property def doc(self): return inspect.getdoc(self.obj) or '' diff --git a/jedi/evaluate/representation.py b/jedi/evaluate/representation.py index 973681d8..be13c8b8 100644 --- a/jedi/evaluate/representation.py +++ b/jedi/evaluate/representation.py @@ -314,6 +314,9 @@ class Wrapper(pr.Base): def is_scope(self): return True + def is_class(self): + return False + class Class(use_metaclass(CachedMetaClass, Wrapper)): """ @@ -384,6 +387,9 @@ class Class(use_metaclass(CachedMetaClass, Wrapper)): if add_class_vars: yield self, compiled.type_names + def is_class(self): + return True + def get_subscope_by_name(self, name): for s in [self] + self.py__bases__(self._evaluator): for sub in reversed(s.subscopes):