Vous pouvez créer un dict
avec les données du filtre :
filter_data = {'horsepower': horsepower, 'voltage': voltage, 'rpm': rpm}
Créez ensuite un autre dict
avec uniquement les clés dont les valeurs existent :
filter_data = {key: value for (key, value) in filter_data.items()
if value}
Et enfin, utilisez ce dict comme kwargs pour votre requête :
results = Motor.query.filter_by(**filter_data).all()