From ebdfa4380bdcdd99970c7d677df7e0d5e3ede6bc Mon Sep 17 00:00:00 2001 From: Jan Cholasta Date: Wed, 26 Aug 2015 13:29:18 +0200 Subject: Use six.with_metaclass to specify metaclasses Metaclass specification is incompatible between Python 2 and 3. Use the six.with_metaclass helper to specify metaclasses. Reviewed-By: Petr Viktorin --- ipapython/install/core.py | 12 ++++-------- ipapython/install/util.py | 1 + 2 files changed, 5 insertions(+), 8 deletions(-) (limited to 'ipapython/install') diff --git a/ipapython/install/core.py b/ipapython/install/core.py index f4b2806ea..45f7aef78 100644 --- a/ipapython/install/core.py +++ b/ipapython/install/core.py @@ -54,8 +54,7 @@ class KnobValueError(ValueError): self.name = name -class InnerClass(object): - __metaclass__ = util.InnerClassMeta +class InnerClass(six.with_metaclass(util.InnerClassMeta, object)): __outer_class__ = None __outer_name__ = None @@ -162,15 +161,13 @@ def Knob(type, default=_missing, initializable=_missing, sensitive=_missing, return util.InnerClassMeta('Knob', (KnobBase,), class_dict) -class Configurable(object): +class Configurable(six.with_metaclass(abc.ABCMeta, object)): """ Base class of all configurables. FIXME: details of validate/execute, properties and knobs """ - __metaclass__ = abc.ABCMeta - @classmethod def knobs(cls): """ @@ -382,9 +379,8 @@ class ComponentMeta(util.InnerClassMeta, abc.ABCMeta): pass -class ComponentBase(InnerClass, Configurable): - __metaclass__ = ComponentMeta - +class ComponentBase( + six.with_metaclass(ComponentMeta, InnerClass, Configurable)): _order = None @classmethod diff --git a/ipapython/install/util.py b/ipapython/install/util.py index d86db218b..1c264a858 100644 --- a/ipapython/install/util.py +++ b/ipapython/install/util.py @@ -159,5 +159,6 @@ class InnerClassMeta(type): self.__outer_class__ = cls self.__outer_name__ = name self.__name__ = '.'.join((cls.__name__, name)) + self.__qualname__ = self.__name__ return cls, name -- cgit