aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/typeguard/tests/dummymodule.py
blob: 7578976a1a74d64f24a7c81e72eccf3e2e8a4b68 (plain) (blame)
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
"""Module docstring."""
from __future__ import absolute_import, division

from typing import no_type_check, no_type_check_decorator

from typeguard import typeguard_ignore


@no_type_check_decorator
def dummy_decorator(func):
    return func


def type_checked_func(x: int, y: int) -> int:
    return x * y


@no_type_check
def non_type_checked_func(x: int, y: str) -> 6:
    return 'foo'


@dummy_decorator
def non_type_checked_decorated_func(x: int, y: str) -> 6:
    return 'foo'


@typeguard_ignore
def non_typeguard_checked_func(x: int, y: str) -> 6:
    return 'foo'


def dynamic_type_checking_func(arg, argtype, return_annotation):
    def inner(x: argtype) -> return_annotation:
        return str(x)

    return inner(arg)


class Metaclass(type):
    pass


class DummyClass(metaclass=Metaclass):
    def type_checked_method(self, x: int, y: int) -> int:
        return x * y

    @classmethod
    def type_checked_classmethod(cls, x: int, y: int) -> int:
        return x * y

    @staticmethod
    def type_checked_staticmethod(x: int, y: int) -> int:
        return x * y

    @classmethod
    def undocumented_classmethod(cls, x, y):
        pass

    @staticmethod
    def undocumented_staticmethod(x, y):
        pass

    @property
    def unannotated_property(self):
        return None


def outer():
    class Inner:
        pass

    def create_inner() -> 'Inner':
        return Inner()

    return create_inner


class Outer:
    class Inner:
        pass

    def create_inner(self) -> 'Inner':
        return Outer.Inner()

    @classmethod
    def create_inner_classmethod(cls) -> 'Inner':
        return Outer.Inner()

    @staticmethod
    def create_inner_staticmethod() -> 'Inner':
        return Outer.Inner()