Code Duplication    Length = 19-19 lines in 2 locations

injectify/inspect_mate.py 2 locations

@@ 106-124 (lines=19) @@
103
    return False
104
105
106
def is_class_method(klass, attr, value=None):
107
    """Test if a value of a class is class method.
108
109
    Args:
110
        klass: The class.
111
        attr: Attribute name.
112
        value: Attribute value.
113
    """
114
    if value is None:
115
        value = getattr(klass, attr)
116
    assert getattr(klass, attr) == value
117
118
    for cls in inspect.getmro(klass):
119
        if inspect.isroutine(value):
120
            if attr in cls.__dict__:
121
                binded_value = cls.__dict__[attr]
122
                if isinstance(binded_value, classmethod):
123
                    return True
124
    return False
125
126
127
def _get_members(klass, tester_func, return_builtin):
@@ 85-103 (lines=19) @@
82
    return False
83
84
85
def is_static_method(klass, attr, value=None):
86
    """Test if a value of a class is static method.
87
88
    Args:
89
        klass: The class.
90
        attr: Attribute name.
91
        value: Attribute value.
92
    """
93
    if value is None:
94
        value = getattr(klass, attr)
95
    assert getattr(klass, attr) == value
96
97
    for cls in inspect.getmro(klass):
98
        if inspect.isroutine(value):
99
            if attr in cls.__dict__:
100
                binded_value = cls.__dict__[attr]
101
                if isinstance(binded_value, staticmethod):
102
                    return True
103
    return False
104
105
106
def is_class_method(klass, attr, value=None):