/
Tailord
/
omd
Обзор
Документация
Войти
/
Tailord
/
omd
Код
Запросы
4
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
cli.py
55 строк
2 KB
Daniil
small updates
14 ноя 2024, 19:34
14 ноя 2024, 19:34
11c74bd
Код
Авторство
О чём код?
from pizza import Pizza, Margherita, Pepperoni, Hawaiian, bake, deliver, pickup import click @click.group() def cli(): pass @cli.command() @click.option("--delivery", is_flag=True, help="Заказать доставку") @click.argument("pizza", type=str) @click.option("--size", default="L", help="Размер пиццы (L или XL)") def order(pizza: str, delivery: bool, size: str): pizzas = {"margherita": Margherita, "pepperoni": Pepperoni, "hawaiian": Hawaiian} pizza = pizza.lower() if pizza not in pizzas: print("Извините, такого вида пиццы нет в меню😕") return if size not in ('L', 'XL'): print("Извините, такого размера пиццы нет в меню😕") pizza = pizzas[pizza](size=size) bake(pizza) if delivery: if not deliver(pizza): print("О нет, вам привезли не ту пиццу!😭") else: pickup(pizza) @cli.command() @click.option("--size", default="L", help="Размер пиццы (L или XL)") def menu(size: str): size_num = getattr(Pizza.Size, size) available_pizzas = [ Margherita(size_num), Pepperoni(size_num), Hawaiian(size_num), ] for pizza in available_pizzas: ingredients = pizza.dict() ingredients_list = ", ".join( f"{ingredient}: {amount}г" for ingredient, amount in ingredients.items() ) print(f"{pizza.icon} {pizza.name} ({size}): {ingredients_list}") if __name__ == "__main__": cli()