blob: b9bcdb9e834cbac509301739b742a38133824cb5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
"""Regression test for issue 5408.
Recursion error for self-referencing class attribute.
See: https://github.com/PyCQA/pylint/issues/5408
"""
# pylint: disable=missing-docstring, too-few-public-methods, invalid-name, inherit-non-class
# pylint: disable=no-self-argument
class MyInnerClass:
...
class MySubClass:
inner_class = MyInnerClass
class MyClass:
sub_class = MySubClass()
def get_unpatched_class(cls):
return cls
def get_unpatched(item):
lookup = get_unpatched_class if isinstance(item, type) else lambda item: None
return lookup(item)
_Child = get_unpatched(MyClass.sub_class.inner_class)
class Child(_Child):
def patch(cls):
MyClass.sub_class.inner_class = cls
|