TGViewer
Разъяснивший Python Разъяснивший Python @python_pssss · 6.97K subscribers
Post #4857 255
Как я устал писать парсер под каждый прайс и сделал из этого библиотеку

На проекте десятки прайсингов на топливо: один вендор шлёт CSV, другой Excel, третий JSON на вебхук. Данные одни, но колонка цены везде называется по-своему, даты в трёх форматах, единицы то литры, то галлоны, а половина нужных полей отсутствует. Под каждый источник жил отдельный парсер на сотню строк if-else. Сначала их было три, потом восемь, потом количество перестали считать. Парсеры ломались молча: вендор тихо переименовывал колонку.

В третий раз за месяц копируя один и тот же парсер, я понял, что так нельзя, и вынес логику маппинга из кода в данные. Из этого выросла библиотека fidelis: данные описываются один раз как Pydantic-модель, а соответствие под каждый кривой источник один раз пишет LLM — в виде читаемой YAML-спеки, которую ревьюят и коммитят. Дальше LLM не нужен: чистый детерминированный Python, валидация каждой строки и отлов изменений схемы ещё в CI.

Источник

Разъяснивший Python
Хабр Как я устал писать парсер под каждый прайс и сделал из этого библиотеку С чего всё началось У нас на проекте была до боли знакомая многим картина: десятки источников прайсингов, и каждый — в своём формате. Один вендор присылает CSV с разделителем ; , другой — выгрузку из...
More from @python_pssss
  1. Sep 21, 2026Настраиваемый логгер-декоратор Начнем с примера использования. Так мы не перегружаем внима…
  2. Sep 21, 2026Замена переменных на месте Этот аккуратный трюк поможет сэкономить несколько строк кода. Р…
  3. Sep 20, 2026List Comprehensions List comprehension может заменить неэстетичные циклы, используемые для…
  4. Sep 20, 2026Data classes Начиная с версии 3.7, Python поставляется с классами данных. У них есть неско…
  5. Sep 19, 2026Спортивное программирование: что это, зачем и какие задачи приходится решать Это не програ…
  6. Sep 19, 2026Многоточие в Python Многоточие Python – это последовательность из трех точек, часто исполь…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →