@@ -0,0 +1,187 @@
|
||||
"""Каталог показателей zootech «База сырья» (109 колонок)."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from openpyxl.utils import column_index_from_string, get_column_letter
|
||||
|
||||
# Заголовки row 3 в xlsx_extracted/data_csv_cleaned/База сырья.csv
|
||||
INGREDIENT_HEADERS: tuple[str, ...] = (
|
||||
"№",
|
||||
"Наименование",
|
||||
"Цена 1 кг",
|
||||
"СВ",
|
||||
"Осн.Корм",
|
||||
"Сыр. Протеин",
|
||||
"уСП",
|
||||
"БРА",
|
||||
"ЧЭЛ- КРС",
|
||||
"ОЭ-КРС",
|
||||
"Сырая клетч",
|
||||
"Структур клетч",
|
||||
"Сырой жир",
|
||||
"НДК",
|
||||
"КДК",
|
||||
"NFC",
|
||||
"Ca",
|
||||
"P",
|
||||
"Mg",
|
||||
"Fe",
|
||||
"Zn",
|
||||
"Cu",
|
||||
"Co",
|
||||
"Mn",
|
||||
"Se",
|
||||
"J",
|
||||
"Na",
|
||||
"K",
|
||||
"CL",
|
||||
"S",
|
||||
"DCAB Форм",
|
||||
"Сахар и Крохм",
|
||||
"Нераств Крохм",
|
||||
"Сахар",
|
||||
"Крахмал",
|
||||
"Нераств крахмал",
|
||||
"Вит А",
|
||||
"Вит D",
|
||||
"Вит Е",
|
||||
"Вит В1",
|
||||
"Вит В2",
|
||||
"Вит В6",
|
||||
"Вит В12",
|
||||
"Пант Кальц",
|
||||
"Никот Ки-та",
|
||||
"Фол ки-та",
|
||||
"Холин",
|
||||
"Биотин",
|
||||
"Сырая зола",
|
||||
"БЕР",
|
||||
"Лизин",
|
||||
"Метионин",
|
||||
"Треонин",
|
||||
"Триптофан",
|
||||
"Изолейцин",
|
||||
"Лейцин",
|
||||
"Валин",
|
||||
"Каротин",
|
||||
"b -Каротин",
|
||||
"Линолевая к-та",
|
||||
"Линоленовая ки-та",
|
||||
"Масляная ки-та",
|
||||
"Арахидоновая ки-та",
|
||||
"Полиэновая ки-та",
|
||||
"Мочевина",
|
||||
"СВ Основной корм",
|
||||
"ВРХ Орг Вещ",
|
||||
"Перевар Орг Вещ",
|
||||
"КРС Протеин",
|
||||
"Переварим Протеин",
|
||||
"КРС Сырой жир",
|
||||
"Переварим Сырой жир",
|
||||
"КРС Сырая клетч",
|
||||
"Переварим сырая клетч",
|
||||
"КРС БЭВ",
|
||||
"Переварим БЭВ",
|
||||
"ВЕ",
|
||||
"OЭ КРС форм",
|
||||
"ЧЭЛ - КРС Форм",
|
||||
"НДК Общ",
|
||||
"НДК Осн. Корм",
|
||||
"КДК общ",
|
||||
"% нераствор протеин",
|
||||
"Нерастворим прот",
|
||||
"СЖ/кг СВ",
|
||||
"НСП/кг СВ",
|
||||
"СП/кг СВ",
|
||||
"пОВ/кг СВ",
|
||||
"пСЖ/кг СВ",
|
||||
"уСП<7%CЖ",
|
||||
"уСП>7%CЖ",
|
||||
"уСП/кг СВ формул",
|
||||
"уСП в ОР",
|
||||
"уСП формул",
|
||||
"БРА",
|
||||
"Нераств крохмал",
|
||||
"доля крохмала",
|
||||
"Доля белка",
|
||||
"% перев в кишках",
|
||||
"OEB",
|
||||
"Синтез Мдж",
|
||||
"Промеж рез 1",
|
||||
"Промеж рез 2",
|
||||
"Метаб ОЕТ",
|
||||
"Метаб лизин",
|
||||
"Метабол Треон",
|
||||
"Метабол Лейцин",
|
||||
"Метабол Изолейц",
|
||||
"Метабол Валин",
|
||||
)
|
||||
|
||||
HEADER_TO_LETTER: dict[str, str] = {
|
||||
header: get_column_letter(i + 1) for i, header in enumerate(INGREDIENT_HEADERS)
|
||||
}
|
||||
|
||||
LETTER_TO_HEADER: dict[str, str] = {
|
||||
get_column_letter(i + 1): header for i, header in enumerate(INGREDIENT_HEADERS)
|
||||
}
|
||||
|
||||
# Колонки с формулами в шаблонной строке 6 (native port, не Excel runtime).
|
||||
DERIVED_LETTERS: frozenset[str] = frozenset(
|
||||
{
|
||||
"AE",
|
||||
"AF",
|
||||
"AG",
|
||||
"AX",
|
||||
"BN",
|
||||
"BP",
|
||||
"BR",
|
||||
"BT",
|
||||
"BV",
|
||||
"BX",
|
||||
"BY",
|
||||
"BZ",
|
||||
"CA",
|
||||
"CF",
|
||||
"CG",
|
||||
"CH",
|
||||
"CI",
|
||||
"CJ",
|
||||
"CK",
|
||||
"CL",
|
||||
"CM",
|
||||
"CN",
|
||||
"CP",
|
||||
"CQ",
|
||||
"CX",
|
||||
"CY",
|
||||
"CZ",
|
||||
"DA",
|
||||
"DB",
|
||||
"DC",
|
||||
"DD",
|
||||
"DE",
|
||||
}
|
||||
)
|
||||
|
||||
# Отображаемые поля G–J синхронизируются с расчётными CP/CQ/CA/BZ.
|
||||
DISPLAY_SYNC: tuple[tuple[str, str], ...] = (
|
||||
("G", "CP"), # уСП
|
||||
("H", "CQ"), # RNB (legacy заголовок «БРА», дубль CQ)
|
||||
("I", "CA"), # ЧЭЛ- КРС
|
||||
("J", "BZ"), # ОЭ-КРС
|
||||
)
|
||||
|
||||
DERIVED_HEADERS: frozenset[str] = frozenset(
|
||||
LETTER_TO_HEADER[letter] for letter in DERIVED_LETTERS
|
||||
) | frozenset(LETTER_TO_HEADER[g] for g, _ in DISPLAY_SYNC)
|
||||
|
||||
INPUT_HEADERS: frozenset[str] = frozenset(INGREDIENT_HEADERS) - DERIVED_HEADERS - frozenset(
|
||||
("№", "Наименование", "Цена 1 кг")
|
||||
)
|
||||
|
||||
# Дублирующий заголовок «БРА»/RNB (H и CQ) — в derive используем CQ.
|
||||
DUPLICATE_HEADERS: frozenset[str] = frozenset({"БРА"})
|
||||
|
||||
|
||||
def letter_index(letter: str) -> int:
|
||||
return column_index_from_string(letter) - 1
|
||||
Reference in New Issue
Block a user