Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from tabulate import tabulate | |
| # Given Data (from original notebook cell) | |
| inventory_data = [ | |
| (1, "Apples", 250), | |
| (2, "Cherry", 650), | |
| (3, "Chickoo", 50), | |
| (4, "Grapes", 90), | |
| (5, "Mangoes", 150), | |
| ] | |
| # Initialize the cart (from original notebook cell) | |
| my_cart = [] | |
| # Function to add items pulling details from inventory (from original notebook cell) | |
| def add_to_cart(product_id): | |
| for item in inventory_data: | |
| if item[0] == product_id: | |
| product = {"id": item[0], "name": item[1], "price": item[2]} | |
| my_cart.append(product) | |
| print(f"Added {item[1]} to the cart.") | |
| return | |
| print(f"Product ID {product_id} not found.") | |
| # Function to remove an item from the cart (from original notebook cell) | |
| def remove_from_cart(product_name): | |
| for item in my_cart: | |
| if item['name'].lower() == product_name.lower(): | |
| my_cart.remove(item) | |
| print(f"Removed {product_name} from the cart.") | |
| return | |
| print(f"{product_name} not found in the cart.") | |
| # Function to calculate total (from original notebook cell) | |
| def calculate_total(): | |
| total = sum(item['price'] for item in my_cart) | |
| print(f"--- Final Bill ---") | |
| for item in my_cart: | |
| print(f"{item['name']}: {item['price']}") | |
| print(f"------------------") | |
| print(f"Total amount to pay: {total}") | |
| return total # Return total for UI | |
| def update_ui(): | |
| inventory_table = tabulate(inventory_data, headers=["ID", "Product Name", "Price"], tablefmt="html") | |
| cart_display = [(item['id'], item['name'], item['price']) for item in my_cart] | |
| if not my_cart: | |
| cart_table = "Your cart is empty." | |
| total_text = "Total: 0" | |
| else: | |
| cart_table = tabulate(cart_display, headers=["ID", "Product Name", "Price"], tablefmt="html") | |
| total = sum(item['price'] for item in my_cart) | |
| total_text = f"Total amount to pay: {total}" | |
| return inventory_table, cart_table, total_text | |
| def add_item_ui(prod_id): | |
| try: | |
| add_to_cart(int(prod_id)) | |
| except ValueError: | |
| pass # Handle invalid input gracefully in UI | |
| return update_ui() | |
| def remove_item_ui(prod_name): | |
| remove_from_cart(prod_name) | |
| return update_ui() | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# 🍎 Fruit Shopping System") | |
| with gr.Row(): | |
| with gr.Column(): | |
| gr.Markdown("### Inventory") | |
| inventory_html = gr.HTML() | |
| with gr.Column(): | |
| gr.Markdown("### Your Cart") | |
| cart_html = gr.HTML() | |
| total_output = gr.Markdown() | |
| with gr.Row(): | |
| prod_id_input = gr.Number(label="Product ID to Add") | |
| add_btn = gr.Button("Add to Cart") | |
| with gr.Row(): | |
| prod_name_input = gr.Textbox(label="Product Name to Remove") | |
| remove_btn = gr.Button("Remove from Cart") | |
| add_btn.click(add_item_ui, inputs=[prod_id_input], outputs=[inventory_html, cart_html, total_output]) | |
| remove_btn.click(remove_item_ui, inputs=[prod_name_input], outputs=[inventory_html, cart_html, total_output]) | |
| demo.load(update_ui, outputs=[inventory_html, cart_html, total_output]) | |
| demo.launch() |