Spaces:
Sleeping
Sleeping
| # 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__) | |
| 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() |