#python #sql #auto-generate #python-dataclasses
Вопрос:
Цель состоит в том, чтобы получить выбранные столбцы в SQL на основе некоторой классификации полей вручную, например
from dataclasses import dataclass
@dataclass
class Q:
fruits = ('taste', 'color', 'shine')
vege = ('is_green', 'color', 'juiceable')
meat = ('is_white', 'is_dark', 'is_red', 'meat_name')
carbs = ('is_refined', 'gi')
@static_method
def get_fields(self, add_fruits=False, add_vege=False, add_meat=False, add_carbs=False):
fields = set()
fields.update(self.fruits) if add_fruits else None
fields.update(self.vege) if add_vege else None
fields.update(self.meat) if add_meat else None
fields.update(self.carbs) if add_carbs else None
return sorted(",".join(sorted(fields)))
print(f"SELECT {Q.get_fields(add_fruits=True, add_vege=True)} from food_features")
Учитывая большой список категорий полей в Q
объекте, как нам избежать жесткого кода в .get_fields
функции?
fields.update(self._field_name_) if add_field_name else None