From 1dc83115be60c0e17a1ce7f57051c61824a4bd2b Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Thu, 2 Jul 2020 00:58:30 +0200 Subject: [PATCH] Remove use_metaclass --- jedi/_compatibility.py | 7 ------- jedi/inference/filters.py | 9 ++++----- jedi/inference/value/function.py | 3 +-- jedi/inference/value/klass.py | 3 +-- 4 files changed, 6 insertions(+), 16 deletions(-) diff --git a/jedi/_compatibility.py b/jedi/_compatibility.py index 6d637a6f..7a2a577d 100644 --- a/jedi/_compatibility.py +++ b/jedi/_compatibility.py @@ -218,13 +218,6 @@ except NameError: unicode = str -def use_metaclass(meta, *bases): - """ Create a class with a metaclass. """ - if not bases: - bases = (object,) - return meta("Py2CompatibilityMetaClass", bases, {}) - - try: encoding = sys.stdout.encoding if encoding is None: diff --git a/jedi/inference/filters.py b/jedi/inference/filters.py index 00e594f7..7f085ee0 100644 --- a/jedi/inference/filters.py +++ b/jedi/inference/filters.py @@ -7,7 +7,6 @@ import weakref from parso.tree import search_ancestor -from jedi._compatibility import use_metaclass from jedi.inference import flow_analysis from jedi.inference.base_value import ValueSet, ValueWrapper, \ LazyValueWrapper @@ -334,14 +333,14 @@ class _AttributeOverwriteMixin(object): yield filter -class LazyAttributeOverwrite(use_metaclass(_OverwriteMeta, _AttributeOverwriteMixin, - LazyValueWrapper)): +class LazyAttributeOverwrite(_AttributeOverwriteMixin, LazyValueWrapper, + metaclass=_OverwriteMeta): def __init__(self, inference_state): self.inference_state = inference_state -class AttributeOverwrite(use_metaclass(_OverwriteMeta, _AttributeOverwriteMixin, - ValueWrapper)): +class AttributeOverwrite(_AttributeOverwriteMixin, ValueWrapper, + metaclass=_OverwriteMeta): pass diff --git a/jedi/inference/value/function.py b/jedi/inference/value/function.py index 6736c40b..d0443ef9 100644 --- a/jedi/inference/value/function.py +++ b/jedi/inference/value/function.py @@ -1,6 +1,5 @@ from parso.python import tree -from jedi._compatibility import use_metaclass from jedi import debug from jedi.inference.cache import inference_state_method_cache, CachedMetaClass from jedi.inference import compiled @@ -126,7 +125,7 @@ class FunctionMixin(object): return [TreeSignature(f) for f in self.get_signature_functions()] -class FunctionValue(use_metaclass(CachedMetaClass, FunctionMixin, FunctionAndClassBase)): +class FunctionValue(FunctionMixin, FunctionAndClassBase, metaclass=CachedMetaClass): @classmethod def from_context(cls, context, tree_node): def create(tree_node): diff --git a/jedi/inference/value/klass.py b/jedi/inference/value/klass.py index 33510445..76117fdd 100644 --- a/jedi/inference/value/klass.py +++ b/jedi/inference/value/klass.py @@ -37,7 +37,6 @@ py__doc__() Returns the docstring for a value. """ from jedi import debug -from jedi._compatibility import use_metaclass from jedi.parser_utils import get_cached_parent_scope, expr_is_dotted from jedi.inference.cache import inference_state_method_cache, CachedMetaClass, \ inference_state_method_generator_cache @@ -321,7 +320,7 @@ class ClassMixin(object): return ValueSet({self}) -class ClassValue(use_metaclass(CachedMetaClass, ClassMixin, FunctionAndClassBase)): +class ClassValue(ClassMixin, FunctionAndClassBase, metaclass=CachedMetaClass): api_type = u'class' @inference_state_method_cache()