Интегрирован wesp в сайт
CI / quality (push) Canceled after 0s

This commit is contained in:
влад
2026-07-17 12:57:18 +03:00
parent 5dfa06ddbe
commit 355c0ef9f1
883 changed files with 194576 additions and 177 deletions
+169
View File
@@ -0,0 +1,169 @@
"""Все показатели рациона для расчёта и сравнения с нормами профиля."""
from __future__ import annotations
from typing import Any
def _ind(
key: str,
label: str,
unit: str,
nutrient_keys: list[str] | None = None,
*,
aggregation: str = "daily_total",
derived: str | None = None,
**extra: Any,
) -> dict[str, Any]:
row: dict[str, Any] = {
"key": key,
"label": label,
"unit": unit,
"nutrient_keys": nutrient_keys or [],
"aggregation": aggregation,
}
if derived:
row["derived"] = derived
row.update(extra)
return row
# Порядок: базовые → расширенные zootech → производные
RATION_ALL_INDICATORS: list[dict[str, Any]] = [
_ind("dry_matter", "Сухое вещество", "г", ["СВ"]),
_ind("dm_main", "СВ — основной корм", "г", ["Осн.Корм", "СВ Основной корм"]),
_ind("oe", "ОЭ — КРС / Дойн", "MJ", ["ОЭ-КРС", " ОЭ-КРС", "OЭ КРС форм"]),
_ind("nel", "ЧЭЛ — КРС / Дойн", "MJ", ["ЧЭЛ- КРС", " ЧЭЛ- КРС", "ЧЭЛ - КРС Форм"]),
_ind("nel_per_kg_dm", "ЧЭЛ/кг СВ", "MJ", derived="nel_per_kg_dm"),
_ind("crude_protein", "Сырой протеин", "г", ["Сыр. Протеин"]),
_ind("rup_per_kg_dm", "Нер. СП / кг СВ", "г", ["Нер. СП / кг СВ"], aggregation="weighted_avg"),
_ind("insoluble_protein", "Нерастворимый протеин", "г", ["Нераствор протеин ", "Нерастворим прот ", "Нерастворим прот"]),
_ind("insoluble_protein_pct", "% нераств. протеин", "%", ["% нераств. протеин", "% нераствор протеин"], aggregation="weighted_avg"),
_ind("usp", "уСП", "г", ["уСП", "уСП формул"]),
_ind("usp_pct_dm", "% уСП/кг СВ", "%", ["% уСП/кг СВ", "% уСП/кг СР"], aggregation="weighted_avg"),
_ind("usp_per_kg_dm", "уСП/кг СВ", "г", derived="g_per_kg_dm", from_key="usp"),
_ind("usp_in_om", "уСП в ОВ", "г", ["уСП в ОР", "уСП в ОВ"]),
_ind("usp_low_fat", "уСП <7% СЖ", "г", ["уСП<7%"], aggregation="weighted_avg"),
_ind("usp_high_fat", "уСП >7% СЖ", "г", ["уСП>7%"], aggregation="weighted_avg"),
_ind("ndf", "Сырая клетчатка", "г", ["Сырая клетч", "Сырая клетчатка", "НДК"]),
_ind("ndf_total", "НДК общ", "г", ["НДК Общ", "НДК"]),
_ind("ndf_main_feed", "НДК осн. корм", "г", ["НДК Осн. Корм"]),
_ind("adf_total", "КДК общ", "г", ["КДК общ", "КДК"]),
_ind("structural_fiber", "Структур. клетчатка", "г", ["Структур клетч", "Структур. клетчатка"]),
_ind("structural_fiber_pct", "% стр. клетчатки", "%", ["% стр Сыр. Клетчатк.", "% стр Сыр. Клетч."], aggregation="weighted_avg"),
_ind("crude_fat", "Сырой жир", "г", ["Сырой жир"]),
_ind("rnb", "RNB", "г", ["RNB", "БРА", " БРА "], derived="rnb"),
_ind("calcium", "Ca", "г", ["Ca"]),
_ind("phosphorus", "P", "г", ["P"]),
_ind("magnesium", "Mg", "г", ["Mg"]),
_ind("sodium", "Na", "г", ["Na"]),
_ind("potassium", "K", "г", ["K"]),
_ind("dcab", "DCAB", "мэкв", ["DCAB Форм", "DCAB"]),
_ind("sugar_starch", "Сахар и крахмал", "г", ["Сахар и Крохм"]),
_ind("sugar_digestible_starch", "Сахар и усв. крахмал", "г", ["Сахар и усв. крох"]),
_ind("insoluble_starch", "Нераств. крахмал", "г", ["Нераств. Крохмал", "Нераств Крохм", "Нераств крахмал"]),
_ind("insoluble_starch_alt", "Нераств. крахмал (2)", "г", ["Нераств крохмал"]),
_ind("insoluble_starch_pct", "% нераств. крахмала", "%", ["% Нераств крохм"], aggregation="weighted_avg"),
_ind("sugar", "Сахар", "г", ["Сахар"]),
_ind("starch", "Крахмал", "г", ["Крахмал"]),
_ind("starch_pct_dm", "% крахмала СВ", "%", ["% Крохмал. СВ", "доля крохмала"], aggregation="weighted_avg"),
_ind("carotene", "Каротин", "мг", ["Каротин"]),
_ind("beta_carotene", "β-каротин", "мг", ["b -Каротин"]),
_ind("linoleic_acid", "Линолевая к-та", "г", ["Линолевая к-та"]),
_ind("linolenic_acid", "Линоленовая к-та", "г", ["Линоленовая ки-та"]),
_ind("butyric_acid", "Масляная к-та", "г", ["Масляная ки-та"]),
_ind("arachidonic_acid", "Арахидоновая к-та", "г", ["Арахидоновая ки-та"]),
_ind("polyenoic_acid", "Полиэновая к-та", "г", ["Полиэновая ки-та"]),
_ind("urea", "Мочевина", "г", ["Мочевина"]),
_ind("crude_ash", "Сырая зола", "г", ["Сырая зола"]),
_ind("nfe", "БЭВ", "г", ["БЕР", "БЭВ"]),
_ind("tdn_cattle", "КРС орг. вещество", "г", ["КРС Орг Вещ", "ВРХ Орг Вещ"]),
_ind("digestible_organic_matter", "Перевар. орг. вещество", "г", ["Перевар Орг Вещ", "Переварим Орг Вещ"]),
_ind("cp_cattle", "КРС протеин", "г", ["КРС Протеин"]),
_ind("digestible_protein", "Перевар. протеин", "г", ["Перевар Протеин", "Переварим Протеин"]),
_ind("fat_cattle", "КРС сырой жир", "г", ["КРС Сырой жир", "КРС Сирий жир", "КРС Сирой жир"]),
_ind("digestible_fat", "Перевар. сырой жир", "г", ["Перевар Сырой жир", "Перевар Сирой жир", "Переварим Сырой жир"]),
_ind("fiber_cattle", "КРС сырая клетчатка", "г", ["КРС Сырая клетч"]),
_ind("digestible_fiber", "Перевар. сырая клетчатка", "г", ["Перевар сыр клетч", "Переварим сырая клетч"]),
_ind("nfe_cattle", "КРС БЭВ", "г", ["КРС БЭВ"]),
_ind("digestible_nfe", "Перевар. БЭВ", "г", ["Перевар БЭВ", "Переварим БЭВ"]),
_ind("feed_value", "ВЕ", "", ["ВЕ"], aggregation="weighted_avg"),
_ind("fat_per_kg_dm", "СЖ/кг СВ", "г", derived="g_per_kg_dm", from_key="crude_fat"),
_ind("nsp_per_kg_dm", "НСП/кг СВ", "г", ["НСП/кг СВ"], aggregation="weighted_avg"),
_ind("cp_per_kg_dm", "СП/кг СВ", "г", derived="g_per_kg_dm", from_key="crude_protein"),
_ind("dom_per_kg_dm", "пОВ/кг СВ", "г", derived="g_per_kg_dm", from_key="digestible_organic_matter"),
_ind(
"digestible_fat_per_kg_dm",
"пСЖ/кг СВ",
"г",
derived="g_per_kg_dm",
from_key="digestible_fat",
),
_ind("fiber_pct_per_kg_dm", "%СК/кг СВ", "%", derived="pct_of_dm", from_key="ndf"),
_ind("fat_pct_per_kg_dm", "%-СЖ/кг СВ", "%", derived="pct_of_dm", from_key="crude_fat"),
_ind("usp_pct_per_kg_dm", "%-уСП / кг СВ", "%", derived="pct_of_dm", from_key="usp"),
_ind("ca_pct_per_kg_dm", "%-Ca / кг СВ", "%", derived="pct_of_dm", from_key="calcium"),
_ind("p_pct_per_kg_dm", "%-P / кг СВ", "%", derived="pct_of_dm", from_key="phosphorus"),
_ind("k_pct_per_kg_dm", "%-К / кг СВ", "%", derived="pct_of_dm", from_key="potassium"),
_ind("na_pct_per_kg_dm", "%-Na / кг СВ", "%", derived="pct_of_dm", from_key="sodium"),
_ind("mg_pct_per_kg_dm", "%-Mg / кг СВ", "%", derived="pct_of_dm", from_key="magnesium"),
_ind("ndf_pct_dm", "НДК % от СВ", "%", derived="pct_of_dm", from_key="ndf"),
_ind("ndf_main_pct_dm", "НДК-ОК % от СВ", "%", derived="pct_of_dm", from_key="ndf_main_feed"),
_ind("adf_pct_dm", "КДК % от СВ", "%", derived="pct_of_dm", from_key="adf_total"),
_ind("nfc_pct_dm", "НКВ % от СВ", "%", derived="pct_of_dm", from_key="nfe"),
_ind("sw_per_kg_dm", "SW / кг СВ", "", ["SW / кг СВ ()"], aggregation="weighted_avg"),
_ind("metab_oet", "Метаб. ОЕТ", "г", ["Метаб ОЕТ", "OEB"]),
_ind("metab_lysine", "Метаб. лизин", "г", ["Метаб лизин", "Лизин"]),
_ind("metab_threonine", "Метаб. треонин", "г", ["Метабол Треон", "Треонин"]),
_ind("metab_leucine", "Метаб. лейцин", "г", ["Метаб Лейц", "Метабол Лейцин", "Лейцин"]),
_ind("metab_isoleucine", "Метаб. изолейцин", "г", ["Метаб Изол", "Метабол Изолейц", "Изолейцин"]),
_ind("metab_valine", "Метаб. валин", "г", ["Метаб Вал", "Метабол Валин", "Валин"]),
_ind("vitamin_a", "Витамин А", "МЕ", ["Вит А"]),
_ind("vitamin_d", "Витамин D", "МЕ", ["Вит D"]),
_ind("vitamin_e", "Витамин Е", "мг", ["Вит Е"]),
_ind("vitamin_b1", "Витамин В1", "мг", ["Вит В1"]),
_ind("vitamin_b2", "Витамин В2", "мг", ["Вит В2"]),
_ind("vitamin_b6", "Витамин В6", "мг", ["Вит В6"]),
_ind("vitamin_b12", "Витамин В12", "мкг", ["Вит В12"]),
_ind("calcium_pantothenate", "Пантотенат кальция", "мг", ["Пант Кальц", "Пантеонат Кальция"]),
_ind("niacin", "Никотиновая к-та", "мг", ["Никот Ки-та", "Никотиновая кислота"]),
_ind("folic_acid", "Фолиевая к-та", "мг", ["Фол ки-та", "Фолиева кислота"]),
_ind("choline", "Холин", "мг", ["Холин"]),
_ind("biotin", "Биотин", "мкг", ["Биотин"]),
_ind("iron", "Fe", "мг", ["Fe"]),
_ind("zinc", "Zn", "мг", ["Zn"]),
_ind("copper", "Cu", "мг", ["Cu"]),
_ind("cobalt", "Co", "мг", ["Co"]),
_ind("manganese", "Mn", "мг", ["Mn"]),
_ind("selenium", "Se", "мг", ["Se"]),
_ind("iodine", "J", "мг", ["J"]),
_ind("oet", "OET", "", ["OEB", "OET"]),
_ind("synthesis_mj", "Синтез", "МДж", ["Синтез Мдж"]),
_ind("ca_p_ratio", "Са:P", "", derived="ratio", ratio_num="calcium", ratio_den="phosphorus"),
_ind("k_na_ratio", "K:Na", "", derived="ratio", ratio_num="potassium", ratio_den="sodium"),
_ind("ration_dm_pct_bw", "Рацион % СВ от веса", "%", derived="dm_pct_bw"),
_ind("ration_pct_bw", "Рацион % от веса", "%", derived="ration_pct_bw"),
# Дубликаты ключей норм (укр. заголовки) — тот же расчёт
_ind("ndf_pct_dm_uk", "НДК % від СВ", "%", derived="alias", alias_of="ndf_pct_dm"),
_ind("ndf_main_pct_dm_uk", "НДК-ОК % від СВ", "%", derived="alias", alias_of="ndf_main_pct_dm"),
_ind("adf_pct_dm_uk", "КДК % від СВ", "%", derived="alias", alias_of="adf_pct_dm"),
_ind("nfc_pct_dm_uk", "НКВ % від СВ", "%", derived="alias", alias_of="nfc_pct_dm"),
]
# Обратная совместимость
RATION_QUALITY_INDICATORS = RATION_ALL_INDICATORS
_INDICATOR_BY_KEY = {d["key"]: d for d in RATION_ALL_INDICATORS}
_LABEL_TO_KEY = {d["label"]: d["key"] for d in RATION_ALL_INDICATORS}
def indicator_by_key(key: str) -> dict[str, Any] | None:
return _INDICATOR_BY_KEY.get(key)
def label_to_indicator_key(label: str) -> str | None:
return _LABEL_TO_KEY.get(label)
def calc_indicator_keys() -> frozenset[str]:
return frozenset(_INDICATOR_BY_KEY)