10 def __init__(self):
11 super(UserWarehouseSearchesFeature, self).__init__()
12
13 def name(self):14 return inflection.underscore(UserWarehouseSearchesFeature.__name__)
15
16 def key(self):
13 def name(self):
14 return inflection.underscore(UserWarehouseSearchesFeature.__name__)
15
16 def key(self):17 return ['user_id', 'warehouse_id']
18
19 def serialization(self):
You're changing the method's type while overriding it in the child class. This may lead to unintentional bugs during runtime because of the incinsistency. Some of the cases where this issue would be raised are:
class BaseClass(metaclass=abc.ABCMeta):
@property
@abc.abstractmethod
def prop(self):
...
@abc.abstractmethod
def credit(self):
...
async def yell(self):
...
class InvalidDerived(BaseClass):
def prop(self): # Method was a property in the base class.
...
@property
def credit(self): # Method is being overridden as a `property`
...
def yell(self): # This was async in the base class
...
class ValidDerived(BaseClass):
@property
def prop(self):
return None
def credit(self):
return None
async def yell(self):
...