Skip to content

feat: сбор параметров и характеристик объявлений («О помещении» и др.) (fixes #335) - #337

Open
eminsk wants to merge 2 commits into
Duff89:masterfrom
eminsk:feat/item-params
Open

eminsk wants to merge 2 commits into
Duff89:masterfrom
eminsk:feat/item-params

Conversation

@eminsk

@eminsk eminsk commented Sep 30, 2026

Copy link
Copy Markdown
Contributor

Привет! Реализовал сбор дополнительных параметров и характеристик объявлений (включая раздел «О помещении» для коммерческой недвижимости, квартир и др.) в ответ на #335.

Что сделано:

  • Модель данных (models.py): добавлено поле params: Optional[Dict[str, str]] = None в модель Item.
  • Парсинг характеристик (parser_cls.py):
    • Реализован метод _extract_params(payload), который динамически забирает параметры из Beduin-виджетов (itemParams, aboutPremises, aboutRoom, parameters и др.) и из mobile.params.
    • В метод _enrich_ads добавлена выгрузка параметров попутно из карточки без лишних сетевых запросов.
    • Добавлен метод parse_params() и опция parse_params: bool = False в конфиг (dto.py и config.toml).
  • Экспорт в Excel (parser/export/excel.py): добавлена колонка «Параметры» (в конец таблицы, чтобы не ломать индексы существующих колонок), характеристики форматируются в виде "Ключ: Значение; ...".
  • Совместимость с Python 3.10: добавлен фоллбэк на tomli в load_config.py.
  • Тесты: написаны юнит-тесты в tests/test_params_parser.py (сценарии Beduin, мобильный API, пустые ответы, обогащение карточки, экспорт в Excel).

Все тесты проверены локально на Python 3.10, 3.11 и 3.12 (36/36 passed), а также на всех платформах в GitHub Actions (Windows, Linux, macOS).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant