Sort_YM/sort_ym
Andrew Pimenov 0902d86bcd classify tracks by combined track + artist genre signals
Раньше жанр брался только с альбома (одна строка, часто общая:
rock/alternative/pop) - разные по звучанию артисты сваливались в одну
крупную корзину. Теперь classify_track сводит жанр трека и жанры
артиста (client.artists(), несколько тегов на артиста) на уровне
под-жанра: при согласии сигналов или отсутствии одного из них берём
имеющийся; при конфликте - если альбомный тег зонтичный (GENERIC_SLUGS)
доверяем артисту, если точный - треку (вероятный осознанный эксперимент
артиста в другом жанре). Один и тот же артист с разными по духу треками
теперь раскладывается по разным плейлистам.

Под-жанровые группы меньше config.small_group_min схлопываются в
родительскую крупную корзину (report.build_rows, двухпроходно,
без циклов - coarse_of детерминирована от fine).

Попутно: artist_ids трека может быть None (артист без привязки к
каталогу Яндекса, встречается у стороннего/пиратского аплоада) - раньше
это улетало в client.artists() как строка "None" и валилось
BadRequestError на батче; теперь такие id отфильтровываются на записи
и дополнительно на чтении кэша.
2026-07-06 14:26:49 +03:00
..
__init__.py init: сортировка лайков Яндекс.Музыки по жанру и языку 2026-07-06 09:49:36 +03:00
__main__.py init: сортировка лайков Яндекс.Музыки по жанру и языку 2026-07-06 09:49:36 +03:00
apply.py fix duplicate track/playlist inserts on network timeout 2026-07-06 12:04:18 +03:00
auth.py init: сортировка лайков Яндекс.Музыки по жанру и языку 2026-07-06 09:49:36 +03:00
classify.py classify tracks by combined track + artist genre signals 2026-07-06 14:26:49 +03:00
cli.py classify tracks by combined track + artist genre signals 2026-07-06 14:26:49 +03:00
config.py classify tracks by combined track + artist genre signals 2026-07-06 14:26:49 +03:00
fetch.py classify tracks by combined track + artist genre signals 2026-07-06 14:26:49 +03:00
genres.py classify tracks by combined track + artist genre signals 2026-07-06 14:26:49 +03:00
language.py retry network errors and raise request timeout 2026-07-06 10:05:22 +03:00
report.py classify tracks by combined track + artist genre signals 2026-07-06 14:26:49 +03:00
ymclient.py retry network errors and raise request timeout 2026-07-06 10:05:22 +03:00