summaryrefslogtreecommitdiff
path: root/tests/functional/b/bugfix_local_scope_metaclass_1177.py
blob: 06f36be5222fcb53232f3b2e71d2064d28b1247f (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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# pylint: disable=missing-docstring,too-few-public-methods,import-error
from UNINFERABLE import ImportedMetaclass, ImportedMetaclass2


class Meta(type):
    pass


class Class(metaclass=Meta):
    pass


def func_scope():
    class Meta2(type):
        pass

    class Class2(metaclass=Meta2):
        pass

    return Class2


def func_scope_with_metaclass_from_call():
    def get_type():
        return type

    class Class2(metaclass=get_type()):
        pass

    return Class2


class ClassScope:
    class Meta3(type):
        pass

    class Class3(metaclass=Meta3):
        pass

    instance = Class3()


def mixed_scopes():
    class ClassM(metaclass=Meta):
        pass

    return ClassM


def imported_and_nested_scope1():
    class ClassImp1(metaclass=ImportedMetaclass):
        pass

    class ClassImp2(metaclass=ImportedMetaclass):
        pass

    return ClassImp1, ClassImp2


def imported_and_nested_scope2():
    class ClassImp3(metaclass=ImportedMetaclass2):
        pass

    return ClassImp3