Exemplo n.º 1
0
def scaled_dish(dish, factor):
    return classes.Dish(
        name=dish.name,
        variants=dish.variants,
        ingredients=[
            classes.Ingredient(
                name=ingredient.name, quantity=ingredient.quantity *
                factor) if ingredient.quantity is not None else ingredient
            for ingredient in dish.ingredients
        ])
Exemplo n.º 2
0
def subtract_from_shopping_list(shopping_list, sub, ingredient_types):
    subd = classes.NameDict(sub)
    for ingredient in shopping_list:
        sub_ingredient = subd.get(ingredient.name, None)
        if sub_ingredient is None:
            yield ingredient
        else:
            # Copy
            ing = classes.Ingredient(ingredient)
            pu = to_purchase_unit(sub_ingredient, ingredient_types)
            ing.quantity -= pu
            if ing.quantity and ing.quantity.magnitude > 0:
                yield ing
Exemplo n.º 3
0
 def loadIngredients(self):
     global ingredient
     files = os.listdir("ingredients/")
     ingredientsList = []
     for i in files:
         archive = open("ingredients/" + i, "r")
         data = archive.readlines()
         ingredient = classes.Ingredient(
             str(data[0]).strip(),
             str(data[1]).strip(),
             str(data[2]).strip(),
             str(data[3]).strip(), eval(data[4]), eval(data[5]),
             eval(data[6]))
         ingredientsList.append(ingredient)
     return ingredientsList
Exemplo n.º 4
0
 def saveIngredient(self, widget, data):
     filename = string.translate(str(data[0]), None,
                                 '\'"¡!·$%&/()=?¿*^-\áóéúíñÑ´¨çÇ`+"')
     filename = string.replace(string.lower(filename), ' ', '_')
     newfile = open("ingredients/" + filename + ".ing", 'w')
     newfile.write(data[0] + "\n")  # Name
     newfile.write(str(data[1]) + "\n")  # Type
     newfile.write(str(data[2]) + "\n")  # Group
     newfile.write(str(data[3]) + "\n")  # Measure
     newfile.write(str(data[4]) + "\n")  # Equivalents
     newfile.write(str(data[5]) + "\n")  # Packages
     newfile.write(str(data[6]) + "\n")  # Prices
     newfile.close()
     return classes.Ingredient(
         str(data[0]).strip(),
         str(data[1]).strip(),
         str(data[2]).strip(),
         str(data[3]).strip(), data[4], data[5], data[6])
Exemplo n.º 5
0
def make_shopping_list(menu, ingredient_types):
    shopping_list = classes.NameDict()
    for menuitem in menu:
        ingredients = zip(menuitem.dish.ingredients, itertools.repeat(1))
        for variant, count in menuitem.variants.iteritems():
            ingredients.extend(
                zip(menuitem.dish.variants[variant], itertools.repeat(count)))
        for ingredient, count in ingredients:
            pu = to_purchase_unit(ingredient, ingredient_types)
            if not pu is None:
                pu *= count

            entry = shopping_list.get(ingredient.name)
            if entry:
                if not pu is None:
                    entry.quantity += pu
                    entry.sources.append(menuitem)
            else:
                entry = classes.Ingredient(ingredient_types[ingredient.name])
                entry.quantity = pu
                entry.sources = [menuitem]
                shopping_list.append(entry)
    return shopping_list.values()