# scripts/inspect_inventory.py """ Скрипт для глубокой инспекции доступных 3D-моделей товаров по категориям. """ import logging from typing import List import hydra from omegaconf import DictConfig # Настройка подробного логирования logging.basicConfig( level=logging.INFO, format="%(asctime)s [%(levelname)s] %(message)s", datefmt="%H:%M:%S" ) logger: logging.Logger = logging.getLogger(__name__) @hydra.main(version_base=None, config_path="../configs", config_name="main_config") def main(cfg: DictConfig) -> None: """ Главная функция для парсинга и вывода всех товаров из products_hierarchy. Args: cfg (DictConfig): Конфигурация проекта, загруженная Hydra. """ logger.info("🔍 Запуск ГЛУБОКОГО инспектора инвентаря (v4)...") try: # Извлекаем конфигурацию ассетов assets_cfg: DictConfig = cfg.get("assets", cfg.get("asset_config", {})) # Берем весь products_hierarchy целиком products_hierarchy: DictConfig = assets_cfg.get("products_hierarchy", {}) if not products_hierarchy: logger.error("❌ Не удалось найти структуру products_hierarchy в конфиге!") return total_items: int = 0 total_categories: int = 0 # Обходим все группы (food, drinks и т.д.) for group_name, group_categories in products_hierarchy.items(): logger.info(f"📁 ГРУППА: {group_name.upper()}") # Проходим по всем категориям внутри группы (например, RICE_SPAGHETTI, SAUCES) for category_name, category_items in group_categories.items(): items_in_category: List[str] = list(category_items.keys()) count: int = len(items_in_category) total_items += count total_categories += 1 logger.info(f" 📂 КАТЕГОРИЯ: {category_name} ({count} товаров)") logger.info("=" * 50) logger.info(f"✅ ИТОГО: {total_items} товаров в {total_categories} категориях.") logger.info("=" * 50) except Exception as e: logger.error(f"❌ Ошибка при чтении: {e}", exc_info=True) if __name__ == "__main__": main()