"""Учебный модуль с высокой сложностью для метрического гейта CI. V(G) функции classify_order — ранг C (11–20). Поэтому: xenon --max-absolute C app/ # зелёный xenon --max-absolute B app/ # красный — гейт не пропускает Мораль: порог в CI делает рост сложности видимым и блокирующим. """ def classify_order(order, cfg): """Классифицировать заказ по десятку правил — намеренно сложно.""" if order is None: return "missing" if "total" not in order: return "no_total" total = order["total"] if total < 0: return "negative" if total == 0: return "empty" if total > 100000: return "huge" if cfg.get("maintenance"): return "maintenance" if cfg.get("blocked"): return "blocked" if cfg.get("regions") and order.get("region") not in cfg["regions"]: return "region" if order.get("coupon") and not cfg.get("coupons", False): return "coupon" if total > cfg.get("limit", 10000): return "limit" if order.get("fraud") and order.get("manual_review"): return "fraud_review" elif order.get("fraud"): return "fraud" if order.get("vip") and total > 5000: return "vip_review" return "ok"