Список изменений#
Версия 2.1.0#
23.04.2023
Переломные изменения
При работе над #547 и
#550
были удалены *args
параметры, у методов класса Client
, которые не имели никакого эффекта.
Передать через позиционные аргументы что-то в конечный запрос не было возможно.
Удаление данной конструкции могло затронуть код в котором ошибочно передавались лишние аргументы.
При корректном использовании библиотеки новая версия полностью совместима со старым кодом.
Крупные изменения
Добавлена поддержка Python 3.11.
В модели добавлены методы
download_bytes
иdownload_bytes_async
, для получения файлов в виде байтов (#539).Добавлен новый метод получения текста и синхронного текста треков (#568).
Добавлена возможность задать
timeout
по умолчанию дляClient
(#362).Использование настройки языка клиента во всех методах (#554).
Добавлено поле
preview_description
классуGeneratedPlaylist
.Добавлены поля
pretrial_active
иuserhash
классуStatus
.Добавлено поле
had_any_subscription
классуSubscription
.Добавлено поле
child
классуAccount
.Добавлены новые поля
up_title
,rup_description
,custom_name
классуStationResult
.Добавлены новые модели:
CustomWave
,R128
,LyricsInfo
.Классу
Track
добавлены новые поля:track_source
,available_for_options
,r128
,lyrics_info
,track_sharing_flag
.Классу
TrackShort
добавлены новые поля:original_index
.Классу
Playlist
добавлены новые поля:custom_wave
,pager
.Классу
Album
добавлены новые поля:available_for_options
.Поле
cover_white
классаMixLink
теперь опциональное.
Незначительные изменения и/или исправления
Добавлен генератор Camel Case псевдонимов для методов (#542).
Добавлен Makefile с сокращениями удобными при разработке библиотеки.
Добавлено отображение модуля при нахождении неизвестного поля.
Добавлена поддержка MD файлов для документации.
Добавлена страница в документацию по получению токена.
Добавлены примеры в документацию.
Переделана структура и обновлена документации.
Исправлен запуск генератора async клиента на Windows.
Исправлен метод
fetch_tracks_async
у классаPlaylist
.Исправлены type hints у декоратора
log
.Исправлены type hints для
SearchResult
в классеSearch
.Исправлено отображение название класса в
report_unknown_fields_callback
.Исправлены методы-сокращения
like
иdislike
классаPlaylist
(#516).
Версия 2.0.0#
23.02.2022
Поддержка asyncio и модели на dataclasses
Переломные изменения
Убрана поддержка
Python 3.6
.Удалено получение авторизационного токена по логину и паролю (метод
from_credentials
классаClient
).Удалена возможность задать свой обработчик на полученные неизвестные поля от API (аргумент
report_new_fields_callback
конструктора классаClient
.Удалён аргумент
fetch_account_status
из конструктора классаClient
. Теперь необходимо вызывать методinit
для получения ID аккаунта который будет использоваться в последующих запросах. В противном случае передачаuser_id
при вызове многих методов классаClient
становится обязательной.Исключение
BadRequest
переименовано вBadRequestError
.Исключение
Unauthorized
переименовано вUnauthorizedError
.Исключение
InvalidBitrate
переименовано вInvalidBitrateError
.Исключение
TimedOut
переименовано вTimedOutError
.Свойство
result
классаResponse
удалено. Вместо него добавлен методget_result
.Свойство
error
классаResponse
удалено. Вместо него добавлен метоlget_error
.В JSON представлении моделей к полям, чьё имя совпадает с именем стандартных функций, больше не добавляется нижнее подчеркивание в конец (пример:
id
, а неid_
;max
, а неmax_
). Теперь нижнее подчеркивание добавляется только к зарезервированным словам (пример:from
будетfrom_
).
Крупные изменения
Добавлена асинхронная версия клиента и всех методов-сокращений (класс
ClientAsync
).Добавлено новое исключение
NotFoundError
(наследникNetworkError
). Будет сгенерировано при получении статус кода 404.Проект больше не использует
pipenv
.Зависимости проекта больше не требуют конкретных версий.
Для генерации исходных файлов
Sphinx
теперь используетсяsphinx-apidoc
.
Незначительные изменения и/или исправления
Исправлена обработка серверных ошибок которые вернулись в отличном от JSON формате.
Исправлена обработка серверных ошибок метода
search
классаClient
.Предупреждения о пришедших неизвестных полях от API отключены по умолчанию.
Используется английская локализация
Sphinx
.Изменена тема документации.
Версия 1.0.0#
06.02.2021
Стабильная версия библиотеки
Переломные изменения
Поле
error
классаArtist
теперь называетсяreason
.Метод
users_playlists
классаClient
теперь возвращает один объект плейлиста, когда был передан одинkind
. При передаче списка вkind
вернётся список плейлистов (#318).Поле
labels
классаAlbum
теперь может содержать список из строк, а не только список объектов классаLabel
.
Крупные изменения
Добавлены примеры в папку
examples
.Добавлена поддержка рекомендаций для плейлистов (#324):
Добавлен класс
PlaylistRecommendations
.Добавлен метод клиента для получения рекомендаций(
users_playlists_recommendations
).Добавлен метод
get_recommendations
классуPlaylist
для
Добавлено получение чартов (#294):
Добавлены новые классы:
ChartInfo
,ChartInfoMenu
,ChartInfoMenuItem
.Добавлен метод клиента для получения чарта (
chart
).
Добавлена поддержка тегов/подборок (#192):
Добавлены новые классы:
TagResult
,Tag
.Добавлен новый метод клиента для получения тегов (
tags
).
Добавлено присоединение к коллективному плейлисту (#317):
Добавлен новый метод клиента для присоединения(
playlists_collective_join
).
Добавлена поддержка очередей прослушивания (#246):
Добавлены новые классы:
Context
,Queue
,QueueItem
.Добавлены новые методы в
Client
:queues_list
,queue
,queue_update_position
,queue_create
.Добавлены поля
track_id
иfrom_
в классTrackId
.Добавлена возможность смены языка у клиента для ответов от API.
Добавлена десериализация любого объекта в
JSON
пригодного для отправки в запросе на Яндекс API.
Добавлены следующие методы для
Client
:new_releases
– получение полного списка всех новых релизов.new_playlists
– получение полного списка всех новый плейлистов.podcasts
– получение подкаста с лендинга.
Добавлены новые сокращения в модели:
download_cover_white
,download_cover_uri
вMixLink
.download_image
вPromotion
.artists_name
вAlbum
иTrack
.fetch_track
,track_full_id
вTrackId
.fetch_tracks
вTracksList
.insert_track
,delete_tracks
,delete
вPlaylist
.playlist_id
,fetch_playlist
вPlaylistId
.get_current_track
вQueue
.fetch_queue
вQueueItem
.next_page
,get_page
,prev_page
вSearch
.и другие…
Добавлена поддержка новых типов поиска: подкасты, выпуски, пользователи.
Добавлен callback для обработки новых полей.
Добавлена информацию по поводу запуска потока по треку, плейлисту и др.
Добавлена десериализация
decomposed
уArtist
(#10).Добавлен
__len__
дляTracksList
(#380).Добавлены
__iter__
,__len__
и__getitem__
для классов представляющих список каких-либо объектов.Добавлено сокращение
fetch_tracks
классуPlaylist
для получения треков плейлиста.Добавлен метод
get_url
классуIcon
для получения прямой ссылки на изображение.Класс
User
расширен для поддержки поляuser_info
изTrack
(поляfull_name
,display_name
).Добавлены новые классы по отчётам с Telegram бота (#306, #398):
LandingList
.RenewableRemainder
.Alert
.AlertButton
.StationData
.Brand
.Contest
.OpenGraphData
.NonAutoRenewable
.Operator
.Deactivation
.PoetryLoverMatch
.Deprecation
.
Добавлены новые поля классам по отчётам с Telegram бота (#306, #398):
plus
вProduct
.non_auto_renewable_remainder
вSubscription
.og_image
вArtist
.meta_type
вAlbum
.advertisement
вStatus
.best
вTrack
.offer_id
иartist_ids
вVinyl
.playlists
вBriefInfo
.is_custom
вCover
.play_count
,recent
,chart
,track
вTrackShort
.url_part
,og_title
,image
,cover_without_text
,background_color
,text_color
,id_for_from
,similar_playlists
,last_owner_playlists
вPlaylist
.bg_color
вChart
.error
вArtist
.substituted
,matched_track
,can_publish
,state
,desired_visibility
,filename
,user_info
,meta_data
вTrack
.copyright_name
,copyright_cline
вCover
.direct
вDownloadInfo
.cheapest
,title
,family_sub
,fb_image
,fb_name
,family
,intro_period_duration
,intro_price
,start_period_duration
,start_price
,licence_text_parts
вProduct
.storage_dir
,duplicates
вAlbum
.subscribed
вArtistEvent
.description
вGeneratedPlaylist
.genre
вEvent
.show_in_regions
вGenre
.cover_uri
вMixLink
.og_description
,top_artist
вPlaylist
.full_image_url
,mts_full_image_url
вStation
.coauthors
иrecent_tracks
вPlaylist
.regions
вUser
.users
,podcasts
,podcast_episodes
,type_
,page
,per_page
вSearch
.short_description
,description
,is_premiere
,is_banner
вLike
.master_info
вAutoRenewable
.station_data
иbar_below
вStatus
.family_auto_renewable
вSubscription
.misspell_result
иmisspell_original
вSearch
.experiment
в классStatus
.operator
иnon_auto_renewable
вSubscription
.text_color
,short_description
,description
,is_premiere
иis_banner
вAlbum
.hand_made_description
вArtist
.metrika_id
вPlaylist
.og_image
вTag
.url
вLyrics
.number
,genre
вMetaData
.poetry_lover_matches
вTrack
.contest
,dummy_description
,dummy_page_description
,dummy_cover
,dummy_rollover_cover
,og_data
,branding
вPlaylist
.available_as_rbt
,lyrics_available
,remember_position
,albums
,duration_ms
,explicit
,start_date
,likes_count
,deprecation
вAlbum
.lyricist
,version
,composer
вMetaData
.last_releases
вBriefInfo
.playlist_uuid
вPlaylist
.sync_queue_enabled
вUserSettings
.background_video_uri
,short_description
,is_suitable_for_children
вTrack
(#376).meta_type
,likes_count
вAlbum
(#386).deprecation
вAlbum
.available_regions
вAlbum
.type
,ready
вPlaylist
.description
вSupplement
.
Незначительные изменения и/или исправления
Добавлена опциональность следующим полям:
Исправлена десериализация подкастов, эпизодов подкастов и пользователей в лучшем результате поиска.
Исправлена десериализация альбомов. В зависимости от запроса содержимое лейблов может быть списком объектом или списком строк (в поиске).
Исправлен выбор настроек радио.
Исправлены ошибки в документации.
Протестирована работа на Python 3.9.
Версия 0.1.1#
25.03.2020
Закончено документирование всех классов и основных методов!
Переломные изменения
Классы отметок “мне нравится” для альбомов, плейлистов и исполнителей обобщены. Теперь представлены одним классом.
Удаленные классы:
ArtistsLikes
.AlbumsLikes
.PlaylistsLikes
.
Новый класс:
Like
(полеtype
для определения содержимого).
Изменено название пакета с
status
наaccount
(#195).Исправлено выбрасываемое исключение при таймауте:
Прошлое исключение:
TimeoutError
(built-in).Новое исключение:
TimedOut
(yandex_music.exceptions
).
Удалены следующие файлы:
requirements.txt
,requirements-dev.txt
,requirements-docs.txt
.
Крупные изменения
Добавлено обнаружение новых полей с просьбой сообщить о них (#216).
Добавлена проверка на неизвестные поля.
Добавлен вывод отладочной информации в виде warning’a.
Добавлен шаблон issue для отправки логов.
Добавлено поле
type
для классаSearchResult
для определения типа результата поиска по объекту.Добавлены настройки пользователя (#195):
Добавлен класс
UserSettings
.Добавлен метод для получения своих настроек (
account_settings
).Добавлен метод для получения настроек другого пользователя (
users_settings
).Добавлен метод для изменения настроек (
account_settings_set
).
Добавлен возможность получить похожие треки (#197):
Добавлен класс
TracksSimilar
с полями трека и списка похожих треков.Добавлен метод для получения похожих треков (
tracks_similar
).
Добавлены шоты от Алисы (#185):
Добавлен метод
after_track
в классClient
для получения контента для воспроизведения после трека (реклама, шот).Добавлены методы для загрузки обложки и аудиоверсии шота.
Добавлены новые классы:
Shot
ShotData
ShotEvent
ShotType
Добавлен метод для изменения видимости плейлиста (#179).
Добавлена поддержка Яндекс.Радио (#20):
Исправлена отправка фидбека.
Написана инструкция по использованию (в доке к методу).
Добавлен аргумент для перехода по цепочке треков.
Добавлен метод для изменения настроек станции.
Незначительные изменения и/или исправления
Убрано дублирование информации в документации (#247).
Добавлены новые поля в класс
Track
:version
,remember_position
(#238).Добавлено исключение
InvalidBitrate
при попытке загрузить недопустимый трек по критериям (кодек, битрейт).Исправлено получение прямой ссылки на файл с кодеком AAC (#237, #25).
Исправлено получение плейлиста с Алисой в лендинге (#185).
Исправлено название поля с ссылкой на источник в классе
Description
(сurl
наuri
).Исправлена десериализация несуществующего исполнителя.
Добавлено поле
version
в классAlbum
(#178).Поле
picture
классаVinyl
теперь опциональное.Поле
week
классаRatings
теперь опциональное.Поле
product_id
классаAutoRenewable
теперь опциональное (#182).Правки замечаний по codacy.
Версия 0.0.16#
29.12.2019
Переломные изменения
Поле
account
переименовано вme
и теперь содержит объектStatus
, вместоAccount
(#162).Убрано использование зарезервированных имён в аргументах конструкторов (теперь они с
_
на конце). Имена с нижними подчёркиваниями есть как при сериализации так и при десериализации (#168).
Крупные изменения
Добавлены аннотации типов во всей библиотеке!
Незначительные изменения и/или исправления
Добавлен аргумент
fetch_account_status
для опциональности получения информации об аккаунте при инициализации клиента (#162).Добавлены тесты c передачей пустого словаря в
de_json
иde_list
(#174).Использование
ujson
при наличии, обновлены зависимости (#161).Добавлен в зависимости для разработки
importlib_metadata
для поддержки старых версий (в новой версииpytest
его больше не используют, в угодуimportlib.metadata
#pytest-5537)) (#161).Добавлен в зависимости для разработки
atomicwrites
, который используетсяpytest
теперь только наWindows
- #pytest-6148 (#161).Исправлен баг с передачей
timeout
аргумента в аргументparams
в следующих методах:artists
,albums
,playlists_list
(#120).Исправлена инициализация клиента при помощи логина и пароля с использованием прокси (#159).
Исправлен баг в загрузке обложки альбома.
Версия 0.0.15#
01.12.2019
Переломные изменения
У классов
Artist
,Track
иPlaylist
изменился перечень полей для генерации хеша.
Крупные изменения
Добавлена возможность выполнять запросы через прокси-сервер для использовании библиотеки на зарубежных серверах (#139).
Добавлен пример использования в
README
.
Добавлена обработка капчи при авторизации с возможностью использования callback-функции для её обработки (#140):
Новые исключения:
Captcha:
CaptchaRequired.
CaptchaWrong.
Новые классы:
CaptchaResponse.
Новые примеры в
README
:Пример обработки с использованием callback-функции.
Пример полностью своей обработки капчи.
Добавлена документация для класса
Search
(#83).Добавлена возможность получения всех альбомов исполнителя (#141):
Новые классы:
ArtistAlbums.
Новые методы:
artists_direct_albums
уClient
.get_albums
уArtist
.
Добавлена обработка несуществующего плейлиста (#147):
Новые классы:
PlaylistAbsence
.
Незначительные изменения и/или исправления
Версия 0.0.14#
10.11.2019
Переломные изменения
Практически у всех классов был обновлён список полей участвующих при сравнении объектов.
Если в атрибутах для сравнения объектов присутствуют списки, то они будут преобразованы к frozenset.
Убрано конвертирование даты из строки в объект. Теперь все даты представлены строками в ISO формате.
Классы
AlbumSearchResult
,ArtistSearchResult
,PlaylistSearchResult
,TrackSearchResult
,VideoSearchResult
были объединены в один –SearchResult
.
Крупные изменения
Добавлен метод получения треков исполнителя (#123).
Добавлены классы-обёртки над пагинацией (
Pager
) и списка треков артиста (ArtistsTracks
).Добавлено 554 unit-теста для всех классов-обёрток над объектами API.
Добавлен codecov и workflows для GitHub Actions.
Незначительные изменения и/или исправления
Поле
cover_uri
классаAlbum
теперь опциональное.Поле
region
у классаAccount
теперь не обязательное.Исправлен баг в
.to_dict()
методе, связанный с десериализацией объектов списков и словарей.Исправлен баг в
.to_dict()
методе, связанный с не рекурсивной десериализацией.Исправлена десериализация
similar_artists
вBriefInfo
.Исправлен баг с десериализацией
artist
в классеArtistEvent
.Исправлен баг десериализации списка альбомов и артистов у класса
Track
(#122).Исправлена загрузка обложки у трека.
Исправлены сравнения объектов.