Список изменений

Версия 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.

Незначительные изменения и/или исправления

  • Исправлен баг с загрузкой файлов (#149).
  • Исправлен баг некорректной десериализации плейлиста при отсутствии прав на него (#147).
  • Исправлен баг неправильной десериализации треков и артистов у собственных загруженных файлов (#154).

Версия 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).
  • Исправлена загрузка обложки у трека.
  • Исправлены сравнения объектов.