pylint: fix bad-mcs-method-argument

Reviewed-By: Tomas Krizek <tkrizek@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
This commit is contained in:
Jan Barta
2016-06-03 13:43:21 +02:00
committed by Martin Basti
parent 8420d04f38
commit 71b3352ad0
2 changed files with 24 additions and 25 deletions

View File

@@ -88,16 +88,16 @@ class InnerClassMeta(type):
return super(InnerClassMeta, mcs).__new__(mcs, name, bases, class_dict) return super(InnerClassMeta, mcs).__new__(mcs, name, bases, class_dict)
def __get__(self, obj, obj_type): def __get__(cls, obj, obj_type):
outer_class, outer_name = self.__bind(obj_type) outer_class, outer_name = cls.__bind(obj_type)
if obj is None: if obj is None:
return self return cls
assert isinstance(obj, outer_class) assert isinstance(obj, outer_class)
try: try:
return obj.__dict__[outer_name] return obj.__dict__[outer_name]
except KeyError: except KeyError:
inner = self(obj) inner = cls(obj)
try: try:
getter = inner.__get__ getter = inner.__get__
except AttributeError: except AttributeError:
@@ -105,11 +105,11 @@ class InnerClassMeta(type):
else: else:
return getter(obj, obj_type) return getter(obj, obj_type)
def __set__(self, obj, value): def __set__(cls, obj, value):
outer_class, outer_name = self.__bind(obj.__class__) outer_class, outer_name = cls.__bind(obj.__class__)
assert isinstance(obj, outer_class) assert isinstance(obj, outer_class)
inner = self(obj) inner = cls(obj)
try: try:
setter = inner.__set__ setter = inner.__set__
except AttributeError: except AttributeError:
@@ -122,11 +122,11 @@ class InnerClassMeta(type):
else: else:
setter(obj, value) setter(obj, value)
def __delete__(self, obj): def __delete__(cls, obj):
outer_class, outer_name = self.__bind(obj.__class__) outer_class, outer_name = cls.__bind(obj.__class__)
assert isinstance(obj, outer_class) assert isinstance(obj, outer_class)
inner = self(obj) inner = cls(obj)
try: try:
deleter = inner.__delete__ deleter = inner.__delete__
except AttributeError: except AttributeError:
@@ -142,23 +142,23 @@ class InnerClassMeta(type):
else: else:
deleter(obj) deleter(obj)
def __bind(self, obj_type): def __bind(cls, obj_type):
try: try:
cls = self.__dict__['__outer_class__'] outer_class = cls.__dict__['__outer_class__']
name = self.__dict__['__outer_name__'] name = cls.__dict__['__outer_name__']
except KeyError: except KeyError:
cls, name, value = None, None, None outer_class, name, value = None, None, None
for cls in obj_type.__mro__: for outer_class in obj_type.__mro__:
for name, value in six.iteritems(cls.__dict__): for name, value in six.iteritems(outer_class.__dict__):
if value is self: if value is cls:
break break
if value is self: if value is cls:
break break
assert value is self assert value is cls
self.__outer_class__ = cls cls.__outer_class__ = outer_class
self.__outer_name__ = name cls.__outer_name__ = name
self.__name__ = '.'.join((cls.__name__, name)) cls.__name__ = '.'.join((outer_class.__name__, name))
self.__qualname__ = self.__name__ cls.__qualname__ = cls.__name__
return cls, name return outer_class, name

View File

@@ -60,7 +60,6 @@ disable=
unused-variable, unused-variable,
useless-else-on-loop, useless-else-on-loop,
bad-continuation, bad-continuation,
bad-mcs-method-argument,
bad-whitespace, bad-whitespace,
blacklisted-name, blacklisted-name,
invalid-name, invalid-name,