@@ 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): |