alchemistry

Реестр ингредиентов

Статус по параметру — свойство ингредиента, а не строчка в тексте. Одно и то
же молоко в двух рецептах, а «проверь» на пачке остаётся «проверь», пока не
посмотрел состав. Поэтому статусы живут в
../../data/ingredients.json, а таблица ниже
подставляется оттуда при сборке.

Проверка: python tools/check_ingredients.py. Новый продукт, которого нет в
реестре, считается небезопасным, пока для него не заведён статус.


Статусы

ЗначокЧто значит
содержитГлютен в составе. Не вариант.
может содержать следыВ составе чисто, но производство, упаковка или склад общие с пшеницей. Глютена в составе нет, конкретная цифра не указана.
не указаноЗависит от состава и конкретного производителя: маркировка добровольная, и отсутствие упоминания глютена не гарантирует его отсутствия.
без глютенаЗнак сертификации или маркировка «без глютена»: производитель отвечает за содержание ниже 20 мг/кг. Это порог маркировки, а не ноль.
не содержитГлютен по составу невозможен: сахар, молоко, масло, какао из бобов, соль.
не провереноПачка не попадалась в руки. Это не «не содержит».

Слова и цвета взяты с упаковки: «без глютена», «может содержать следы», и
отсутствие любого упоминания.

«Не указано» — это не «не содержит». Отсутствие упоминания глютена на
упаковке не означает его отсутствия: такая маркировка добровольная.
Подтверждать можно только составом конкретной пачки.

«Без глютена» — это не ноль, а 20 мг/кг. Порог из Codex CXS 118-1979,
п. 3.1; FDA берёт тот же порог. Люди с целиакией реагируют на десятки
миллиграммов на порцию, поэтому «без глютена» на пачке и «не содержит» в
реестре — разные статусы, и зелёный достаётся второму.


Параметры

ПараметрСостояниеЗачем
ГлютенвключёнПроект человека с целиакией. Цена ошибки — испорченное здоровье
ЛактозазапланированСухое молоко и сливки есть почти в каждом рецепте
ОрехизапланированАллерген, а не непереносимость
СахарзапланированСчитать надо уметь: плитка и литр газировки — разные количества
ОстроезапланированПерец, имбирь, корица. Переносится плохо и незаметно

Чтобы включить параметр, в data/ingredients.json ставится "active": true, и
тогда статус по нему обязателен для каждого ингредиента — проверка упадёт, пока
не заведены все.


Что заказать

ИнгредиентПроизводительФасовка₽/шт₽/гАртикулСостав
Какао-тертоеAruBio · Какао тертое натуральное, 200 гр.200 г5922,96166127706не указано
Какао-маслоАлива · Натуральное нерафинированное какао-масло, Мексика (100 г)100 г3713,714519007220не указано
Сухое молокоБЗМЖК · Молоко сухое цельное ГОСТ, короб 200 грамм201 г3261,62700955392не указано
Сухие сливкиВкусный выбор · Сухие сливки 500 гр500 г2350,474578237468не указано
Сухие сливкиMr. Сливкин · Заменитель сухих сливок 200 гр200 г1270,641596789961не указано
Сухие сливкиДобрый Удон · Сухие сливки Новогородские №1, 20%, 1 кг1000 г4880,492157865240не указано
ВанилинПарфэ Декор · Ароматизатор пищевой «Ванилин», 5 пак. по 1 г5 пакетиков по 1 г17434,802256519194не содержит
Ванильная пастаПарфэ Декор · Паста с натуральной ванилью без глютена60 г2814,682256512028без глютена
Ванильный сахарПарфэ Декор · Ванильный сахар без глютена12 пакетиков по 5 г2554,252256522461без глютена

Статус в таблице появляется только там, где состав прочитан с пачки: у
шести порошков и какао его не видно, скрин с Ozon показывает цену и артикул, а
не состав. У ванилина он зелёный — там написано «ароматизатор Ванилин», одна
молекула. У пасты и сахара синий — «без глютена» на пачке, а это 20 мг/кг, не ноль.

Цены меняются. Артикул привязывает к конкретной позиции Ozon, а не к
продукту: перефасовка меняет и цену, и состав. Даты среза цен — в поле seen
позиции.

Реестр

ИнгредиентГраммыГлютенЧто важно
Какао-тертое—не содержитБобы. Муки быть не может. Неалкализированное — тот же продукт, просто без обработки щёлочью
Какао-масло—не содержитОтжим из бобов, отдельный продукт: в тёртом масла непостоянное количество
Какао-порошок—не указаноБывает с добавками: крахмал, ароматизатор, «натуральное какао» разного качества
Сахар—не содержитИз сахарного тростника или свёклы. Пудра — та же сахарная пудра, но в магазине с наполнителями
Кукурузный крахмал—не содержитКукуруза или картофель. Пшеничный крахмал — это уже нет
Ксантановая камедь—не содержитПродукт брожения на среде с глюкозой, выращивается из сои или кукурузы
Соль—не содержитМинерал. Хлопья и морская — тот же минерал
Уксус—не указаноСолодовый уксус делают из ячменя, и это глютен. Спиртовой и синтетический (9 % в бутылке) — из уксусной кислоты, пшеницы в них нет. Читай состав: «солодовый» и «из ячменя» — нет, «уксусная кислота» — да
Вода—не содержит—
Сухое молоко—не указаноСухие смеси для кофе с наполнителями. В состав идёт сухое обезжиренное, а рядом бывают добавки
Сухие сливки—не указаноТот же случай, что у сухого молока: сухая смесь, а не продукт
Сливки 20-33 %—не содержитЖидкие сливки: производство на молоке, пшеница не участвует
Масло сливочное—не содержитЖидкое сливочное масло всегда
Кокосовое масло—не содержитКокос или подсолнечник — оба чистые
Кокосовая мука—не содержитКокосовая стружка, размолотая в пыль
Мёд—не содержит—
Инвертный сироп—не указаноДекстроза и мальтодекстрин. Источник не всегда указан на пакете
Лецитин—не указаноПорошок. У соевого бывает своя мука в составе как носитель
Ваниль—не содержитСама ягода, даже настоянная на спирте
Ванильный порошок—не указаноСухая смесь: сахар, специи, иногда загуститель. Не путать с ванилью
Лимонная кислота—не содержит—
Яйцо—не содержитБелок и желток по отдельности — то же яйцо
Кефир—не содержитКисломолочный продукт из молока
Разрыхлитель—не указаноБывают пекарские смеси с мукой. Смотри, что именно в составе
Мука GARNEC универсальная—не провереноКонкретная пачка не проверена. Безглютеновая по названию бренда — не подтверждение
Ванилин—не содержитОдна молекула, C8H8O3. По составу муки быть не может. На пачке пишут «подходит для безглютеновой продукции» — это подсказка производителям, а не маркировка «без глютена»
Ванильная паста—не указаноСахар, загуститель, экстракт и семена ванили, и почти половина массы — вода. В шоколад не идёт: вода засевает
Ванильный сахар—не указаноСахар с ароматизатором, а не с ягодой. По сути тот же сахар из рецепта, только с ванилином
Сырок глазированный—не содержитПастеризованный творожный сыр: молоко, молочный жир, соль. Муки быть не может по составу, поэтому зелёный, а не жёлтый как у сухого молока
Творог—не содержитКисломолочный продукт из молока. Мука не участвует в приготовлении
Картофель—не содержитКлубень: пшеницы по составу быть не может. Глютен приходит не из картошки, а из общего фритюра и из приправы к готовым чипсам
Масло растительное рафинированное—не содержитОтжим семечек, муки в нём быть не может. Глютен приходит из фритюра, где жарили панировку, а не из масла
Кешью—не содержитОрех: в нём самом муки быть не может. Глютен приходит не из ореха, а из обжарки и приправы — солёный кешью из пакета бывает с общей линией. Проверять надо не глютен, а состав посыпки

Сортировка и фильтры работают на странице: поиск ищет по названию и по
синонимам, кнопки оставляют один статус или несколько сразу. В поле «сколько
в рецептах» считается не число строк, а число разных рецептов: одно и то же
сухое молоко в молочном и в белом — это один рецепт дважды, а не два.


Что смотреть на пачке

Слова и надписи, из-за которых «без глютена» не получается, в
store-guide.md. Коротко: глютен, гидролизованный пшеничный белок, декстроза без указания источника, мальтодекстрин, ванильный экстракт, карамель как колёр, дрожжи пищевые, семейный состав.