import json import os def process_inventory_data(filepath: str, update_threshold: int) -> dict: """ Process an inventory JSON file and return statistics. Expected JSON format: { "store_id": "ST-001", "items": [ {"id": "A1", "name": "Widget", "stock": 50, "price": 10.99, "category": "tools"}, {"id": "A2", "name": "Gadget", "stock": 10, "price": 25.50, "category": "electronics"} ] } Returns a dict with: - 'total_value': total value of all stock - 'low_stock_items': list of item names with stock < update_threshold - 'categories': dict mapping category to total stock """ # BUG 1: File descriptor leak, no context manager f = open(filepath, 'r') try: data = json.loads(f.read()) except ValueError: # BUG 2: Broad exception catch that swallows the error, returns incorrect default return None total_value = 0 low_stock = [] categories = {} # BUG 3: Not checking if 'items' key exists, could crash for item in data['items']: # BUG 4: Type mismatch risk if stock or price are strings in JSON stock = item.get('stock', 0) price = item.get('price', 0.0) total_value += stock * price if stock < update_threshold: low_stock.append(item['name']) cat = item.get('category', 'uncategorized') # BUG 5: using setdefault improperly, overrides value categories.setdefault(cat, 0) categories[cat] = stock # Overwrites instead of adding f.close() return { 'total_value': total_value, 'low_stock_items': low_stock, 'categories': categories }