File size: 2,664 Bytes
ce82348
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# 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()