MCPcopy
hub / github.com/scrapy/scrapy / method_is_overridden

Function method_is_overridden

scrapy/utils/deprecate.py:169–200  ·  view source on GitHub ↗

Return True if a method named ``method_name`` of a ``base_class`` is overridden in a ``subclass``. >>> class Base: ... def foo(self): ... pass >>> class Sub1(Base): ... pass >>> class Sub2(Base): ... def foo(self): ... pass >>

(subclass: type, base_class: type, method_name: str)

Source from the content-addressed store, hash-verified

167
168
169def method_is_overridden(subclass: type, base_class: type, method_name: str) -> bool:
170 """
171 Return True if a method named ``method_name`` of a ``base_class``
172 is overridden in a ``subclass``.
173
174 >>> class Base:
175 ... def foo(self):
176 ... pass
177 >>> class Sub1(Base):
178 ... pass
179 >>> class Sub2(Base):
180 ... def foo(self):
181 ... pass
182 >>> class Sub3(Sub1):
183 ... def foo(self):
184 ... pass
185 >>> class Sub4(Sub2):
186 ... pass
187 >>> method_is_overridden(Base, Base, 'foo')
188 False
189 >>> method_is_overridden(Sub1, Base, 'foo')
190 False
191 >>> method_is_overridden(Sub2, Base, 'foo')
192 True
193 >>> method_is_overridden(Sub3, Base, 'foo')
194 True
195 >>> method_is_overridden(Sub4, Base, 'foo')
196 True
197 """
198 base_method = getattr(base_class, method_name)
199 sub_method = getattr(subclass, method_name)
200 return base_method.__code__ is not sub_method.__code__
201
202
203def argument_is_required(func: Callable[..., Any], arg_name: str) -> bool:

Callers 2

__init__Method · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected