Добавлены тайп хинты для Suggestions, SearchResult, Search, Best, Value, StationResult, Station, Sequence, RotorSettings, Restrictions, Id, Enum, DiscreteScale, Dashboard, AdParams
このコミットが含まれているのは:
コミット
9d8b58f5c5
|
@ -33,7 +33,7 @@ class AdParams(YandexMusicObject):
|
||||||
self.target_ref, self.other_params, self.ad_volume)
|
self.target_ref, self.other_params, self.ad_volume)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def de_json(cls, data: dict, client: 'Client'):
|
def de_json(cls, data: dict, client: 'Client') -> Optional['AdParams']:
|
||||||
if not data:
|
if not data:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from typing import TYPE_CHECKING, Optional
|
from typing import TYPE_CHECKING, Optional, List
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from yandex_music import Client
|
from yandex_music import Client, StationResult
|
||||||
|
|
||||||
from yandex_music import YandexMusicObject
|
from yandex_music import YandexMusicObject
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ from yandex_music import YandexMusicObject
|
||||||
class Dashboard(YandexMusicObject):
|
class Dashboard(YandexMusicObject):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
dashboard_id,
|
dashboard_id,
|
||||||
stations,
|
stations: List['StationResult'],
|
||||||
pumpkin,
|
pumpkin,
|
||||||
client: Optional['Client'] = None,
|
client: Optional['Client'] = None,
|
||||||
**kwargs) -> None:
|
**kwargs) -> None:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from typing import TYPE_CHECKING, Optional
|
from typing import TYPE_CHECKING, Optional
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from yandex_music import Client
|
from yandex_music import Client, Value
|
||||||
|
|
||||||
from yandex_music import YandexMusicObject
|
from yandex_music import YandexMusicObject
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@ class DiscreteScale(YandexMusicObject):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
type_,
|
type_,
|
||||||
name,
|
name,
|
||||||
min_,
|
min_: Optional['Value'],
|
||||||
max_,
|
max_: Optional['Value'],
|
||||||
client: Optional['Client'] = None,
|
client: Optional['Client'] = None,
|
||||||
**kwargs) -> None:
|
**kwargs) -> None:
|
||||||
self.type = type_
|
self.type = type_
|
||||||
|
@ -23,7 +23,7 @@ class DiscreteScale(YandexMusicObject):
|
||||||
self._id_attrs = (self.type, self.name, self.min, self.max)
|
self._id_attrs = (self.type, self.name, self.min, self.max)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def de_json(cls, data: dict, client: 'Client'):
|
def de_json(cls, data: dict, client: 'Client') -> Optional['DiscreteScale']:
|
||||||
if not data:
|
if not data:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from typing import TYPE_CHECKING, Optional, List
|
from typing import TYPE_CHECKING, Optional, List
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from yandex_music import Client
|
from yandex_music import Client, Value
|
||||||
|
|
||||||
from yandex_music import YandexMusicObject
|
from yandex_music import YandexMusicObject
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ class Enum(YandexMusicObject):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
type_,
|
type_,
|
||||||
name,
|
name,
|
||||||
possible_values,
|
possible_values: List['Value'],
|
||||||
client: Optional['Client'] = None,
|
client: Optional['Client'] = None,
|
||||||
**kwargs) -> None:
|
**kwargs) -> None:
|
||||||
self.type = type_
|
self.type = type_
|
||||||
|
@ -21,7 +21,7 @@ class Enum(YandexMusicObject):
|
||||||
self._id_attrs = (self.type, self.name, self.possible_values)
|
self._id_attrs = (self.type, self.name, self.possible_values)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def de_json(cls, data: dict, client: 'Client'):
|
def de_json(cls, data: dict, client: 'Client') -> Optional['Enum']:
|
||||||
if not data:
|
if not data:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ class Id(YandexMusicObject):
|
||||||
self._id_attrs = (self.type, self.tag)
|
self._id_attrs = (self.type, self.tag)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def de_json(cls, data: dict, client: 'Client'):
|
def de_json(cls, data: dict, client: 'Client') -> Optional['Id']:
|
||||||
if not data:
|
if not data:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from typing import TYPE_CHECKING, Optional
|
from typing import TYPE_CHECKING, Optional, Union
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from yandex_music import Client
|
from yandex_music import Client
|
||||||
|
@ -15,10 +15,10 @@ de_json = {
|
||||||
class Restrictions(YandexMusicObject):
|
class Restrictions(YandexMusicObject):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
language,
|
language,
|
||||||
diversity,
|
diversity: Optional[Union['Enum', 'DiscreteScale']],
|
||||||
mood=None,
|
mood: Optional[Union['Enum', 'DiscreteScale']] = None,
|
||||||
energy=None,
|
energy: Optional[Union['Enum', 'DiscreteScale']] = None,
|
||||||
mood_energy=None,
|
mood_energy: Optional[Union['Enum', 'DiscreteScale']] = None,
|
||||||
client: Optional['Client'] = None,
|
client: Optional['Client'] = None,
|
||||||
**kwargs) -> None:
|
**kwargs) -> None:
|
||||||
self.language = language
|
self.language = language
|
||||||
|
@ -31,7 +31,7 @@ class Restrictions(YandexMusicObject):
|
||||||
self._id_attrs = (self.language, self.diversity)
|
self._id_attrs = (self.language, self.diversity)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def de_json(cls, data: dict, client: 'Client'):
|
def de_json(cls, data: dict, client: 'Client') -> Optional['Restrictions']:
|
||||||
if not data:
|
if not data:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ class RotorSettings(YandexMusicObject):
|
||||||
self._id_attrs = (self.language, self.diversity)
|
self._id_attrs = (self.language, self.diversity)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def de_json(cls, data: dict, client: 'Client'):
|
def de_json(cls, data: dict, client: 'Client') -> Optional['RotorSettings']:
|
||||||
if not data:
|
if not data:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from typing import TYPE_CHECKING, Optional, List
|
from typing import TYPE_CHECKING, Optional, List
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from yandex_music import Client
|
from yandex_music import Client, Track
|
||||||
|
|
||||||
from yandex_music import YandexMusicObject
|
from yandex_music import YandexMusicObject
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ from yandex_music import YandexMusicObject
|
||||||
class Sequence(YandexMusicObject):
|
class Sequence(YandexMusicObject):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
type_,
|
type_,
|
||||||
track,
|
track: Optional['Track'],
|
||||||
liked,
|
liked,
|
||||||
client: Optional['Client'] = None,
|
client: Optional['Client'] = None,
|
||||||
**kwargs) -> None:
|
**kwargs) -> None:
|
||||||
|
@ -21,7 +21,7 @@ class Sequence(YandexMusicObject):
|
||||||
self._id_attrs = (self.type, self.track, self.liked)
|
self._id_attrs = (self.type, self.track, self.liked)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def de_json(cls, data: dict, client: 'Client'):
|
def de_json(cls, data: dict, client: 'Client') -> Optional['Sequence']:
|
||||||
if not data:
|
if not data:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ class Sequence(YandexMusicObject):
|
||||||
return cls(client=client, **data)
|
return cls(client=client, **data)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def de_list(cls, data: dict, client: 'Client'):
|
def de_list(cls, data: dict, client: 'Client') -> List['Sequence']:
|
||||||
if not data:
|
if not data:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
from typing import TYPE_CHECKING, Optional
|
from typing import TYPE_CHECKING, Optional
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from yandex_music import Client
|
from yandex_music import Client, Id, Icon, Restrictions
|
||||||
|
|
||||||
from yandex_music import YandexMusicObject
|
from yandex_music import YandexMusicObject
|
||||||
|
|
||||||
|
|
||||||
class Station(YandexMusicObject):
|
class Station(YandexMusicObject):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
id_,
|
id_: Optional['Id'],
|
||||||
name,
|
name,
|
||||||
icon,
|
icon: Optional['Icon'],
|
||||||
mts_icon,
|
mts_icon: Optional['Icon'],
|
||||||
geocell_icon,
|
geocell_icon: Optional['Icon'],
|
||||||
id_for_from,
|
id_for_from,
|
||||||
restrictions,
|
restrictions: Optional['Restrictions'],
|
||||||
restrictions2,
|
restrictions2: Optional['Restrictions'],
|
||||||
parent_id=None,
|
parent_id: Optional['Id'] = None,
|
||||||
client: Optional['Client'] = None,
|
client: Optional['Client'] = None,
|
||||||
**kwargs) -> None:
|
**kwargs) -> None:
|
||||||
self.id = id_
|
self.id = id_
|
||||||
|
@ -35,7 +35,7 @@ class Station(YandexMusicObject):
|
||||||
self.id_for_from, self.restrictions, self.restrictions2)
|
self.id_for_from, self.restrictions, self.restrictions2)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def de_json(cls, data: dict, client: 'Client'):
|
def de_json(cls, data: dict, client: 'Client') -> Optional['Station']:
|
||||||
if not data:
|
if not data:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
from typing import TYPE_CHECKING, Optional
|
from typing import TYPE_CHECKING, Optional, List
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from yandex_music import Client
|
from yandex_music import Client, Station, RotorSettings, AdParams
|
||||||
|
|
||||||
from yandex_music import YandexMusicObject
|
from yandex_music import YandexMusicObject
|
||||||
|
|
||||||
|
|
||||||
class StationResult(YandexMusicObject):
|
class StationResult(YandexMusicObject):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
station,
|
station: Optional['Station'],
|
||||||
settings,
|
settings: Optional['RotorSettings'],
|
||||||
settings2,
|
settings2: Optional['RotorSettings'],
|
||||||
ad_params,
|
ad_params: Optional['AdParams'],
|
||||||
explanation=None,
|
explanation=None,
|
||||||
prerolls=None,
|
prerolls=None,
|
||||||
client: Optional['Client'] = None,
|
client: Optional['Client'] = None,
|
||||||
|
@ -27,7 +27,7 @@ class StationResult(YandexMusicObject):
|
||||||
self._id_attrs = (self.station, self.settings, self.settings2, self.ad_params)
|
self._id_attrs = (self.station, self.settings, self.settings2, self.ad_params)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def de_json(cls, data: dict, client: 'Client'):
|
def de_json(cls, data: dict, client: 'Client') -> Optional['StationResult']:
|
||||||
if not data:
|
if not data:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ class StationResult(YandexMusicObject):
|
||||||
return cls(client=client, **data)
|
return cls(client=client, **data)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def de_list(cls, data: dict, client: 'Client'):
|
def de_list(cls, data: dict, client: 'Client') -> List['StationResult']:
|
||||||
if not data:
|
if not data:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ class Value(YandexMusicObject):
|
||||||
self._id_attrs = (self.value, self.name)
|
self._id_attrs = (self.value, self.name)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def de_json(cls, data: dict, client: 'Client'):
|
def de_json(cls, data: dict, client: 'Client') -> Optional['Value']:
|
||||||
if not data:
|
if not data:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ class Value(YandexMusicObject):
|
||||||
return cls(client=client, **data)
|
return cls(client=client, **data)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def de_list(cls, data: dict, client: 'Client'):
|
def de_list(cls, data: dict, client: 'Client') -> List['Value']:
|
||||||
if not data:
|
if not data:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from typing import TYPE_CHECKING, Optional
|
from typing import TYPE_CHECKING, Optional, Union
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from yandex_music import Client
|
from yandex_music import Client
|
||||||
|
@ -17,9 +17,9 @@ de_json_result = {
|
||||||
|
|
||||||
class Best(YandexMusicObject):
|
class Best(YandexMusicObject):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
type_,
|
type_: str,
|
||||||
result,
|
result: Optional[Union[Track, Artist, Album, Playlist, Video]],
|
||||||
text=None,
|
text: Optional[str] = None,
|
||||||
client: Optional['Client'] = None,
|
client: Optional['Client'] = None,
|
||||||
**kwargs) -> None:
|
**kwargs) -> None:
|
||||||
self.type = type_
|
self.type = type_
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from typing import TYPE_CHECKING, Optional
|
from typing import TYPE_CHECKING, Optional
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from yandex_music import Client
|
from yandex_music import Client, Best, SearchResult
|
||||||
|
|
||||||
from yandex_music import YandexMusicObject
|
from yandex_music import YandexMusicObject
|
||||||
|
|
||||||
|
@ -13,11 +13,16 @@ class Search(YandexMusicObject):
|
||||||
search_request_id (:obj:`str`): ID запроса.
|
search_request_id (:obj:`str`): ID запроса.
|
||||||
text (:obj:`str`): Текст запроса.
|
text (:obj:`str`): Текст запроса.
|
||||||
best (:obj:`yandex_music.Best`): Объект класса :class:`yandex_music.Best` представляющий лучший результат.
|
best (:obj:`yandex_music.Best`): Объект класса :class:`yandex_music.Best` представляющий лучший результат.
|
||||||
albums (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий найденные альбомы.
|
albums (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий
|
||||||
artists (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий найденных исполнителей.
|
найденные альбомы.
|
||||||
playlists (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий найденные плейлисты.
|
artists (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий
|
||||||
tracks (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий найденные треки.
|
найденных исполнителей.
|
||||||
videos (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий найденные видео.
|
playlists (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий
|
||||||
|
найденные плейлисты.
|
||||||
|
tracks (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий
|
||||||
|
найденные треки.
|
||||||
|
videos (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий
|
||||||
|
найденные видео.
|
||||||
misspell_corrected (:obj:`bool`): Был ли исправлен запрос.
|
misspell_corrected (:obj:`bool`): Был ли исправлен запрос.
|
||||||
nocorrect (:obj:`bool`): Было ли отключено исправление результата.
|
nocorrect (:obj:`bool`): Было ли отключено исправление результата.
|
||||||
client (:obj:`yandex_music.Client`): Объект класса :class:`yandex_music.Client` представляющий клиент Yandex
|
client (:obj:`yandex_music.Client`): Объект класса :class:`yandex_music.Client` представляющий клиент Yandex
|
||||||
|
@ -27,29 +32,34 @@ class Search(YandexMusicObject):
|
||||||
search_request_id (:obj:`str`): ID запроса.
|
search_request_id (:obj:`str`): ID запроса.
|
||||||
text (:obj:`str`): Текст запроса.
|
text (:obj:`str`): Текст запроса.
|
||||||
best (:obj:`yandex_music.Best`): Объект класса :class:`yandex_music.Best` представляющий лучший результат.
|
best (:obj:`yandex_music.Best`): Объект класса :class:`yandex_music.Best` представляющий лучший результат.
|
||||||
albums (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий найденные альбомы.
|
albums (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий
|
||||||
artists (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий найденных исполнителей.
|
найденные альбомы.
|
||||||
playlists (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий найденные плейлисты.
|
artists (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий
|
||||||
tracks (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий найденные треки.
|
найденных исполнителей.
|
||||||
videos (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий найденные видео.
|
playlists (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий
|
||||||
|
найденные плейлисты.
|
||||||
|
tracks (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий
|
||||||
|
найденные треки.
|
||||||
|
videos (:obj:`yandex_music.SearchResult`): Объект класса :class:`yandex_music.SearchResult` представляющий
|
||||||
|
найденные видео.
|
||||||
misspell_corrected (:obj:`bool`, optional): Был ли исправлен запрос.
|
misspell_corrected (:obj:`bool`, optional): Был ли исправлен запрос.
|
||||||
nocorrect (:obj:`bool`, optional): Было ли отключено исправление результата.
|
nocorrect (:obj:`bool`, optional): Было ли отключено исправление результата.
|
||||||
client (:obj:`yandex_music.Client`, optional): Объект класса :class:`yandex_music.Client` представляющий клиент Yandex
|
client (:obj:`yandex_music.Client`, optional): Объект класса :class:`yandex_music.Client` представляющий клиент
|
||||||
Music.
|
Yandex Music.
|
||||||
**kwargs: Произвольные ключевые аргументы полученные от API.
|
**kwargs: Произвольные ключевые аргументы полученные от API.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
search_request_id,
|
search_request_id: str,
|
||||||
text,
|
text: str,
|
||||||
best,
|
best: Optional['Best'],
|
||||||
albums,
|
albums: Optional['SearchResult'],
|
||||||
artists,
|
artists: Optional['SearchResult'],
|
||||||
playlists,
|
playlists: Optional['SearchResult'],
|
||||||
tracks,
|
tracks: Optional['SearchResult'],
|
||||||
videos,
|
videos: Optional['SearchResult'],
|
||||||
misspell_corrected=None,
|
misspell_corrected: Optional[bool] = None,
|
||||||
nocorrect=None,
|
nocorrect: Optional[bool] = None,
|
||||||
client: Optional['Client'] = None,
|
client: Optional['Client'] = None,
|
||||||
**kwargs) -> None:
|
**kwargs) -> None:
|
||||||
self.search_request_id = search_request_id
|
self.search_request_id = search_request_id
|
||||||
|
@ -69,7 +79,7 @@ class Search(YandexMusicObject):
|
||||||
self.artists, self.playlists, self.tracks, self.videos)
|
self.artists, self.playlists, self.tracks, self.videos)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def de_json(cls, data: dict, client: 'Client'):
|
def de_json(cls, data: dict, client: 'Client') -> Optional['Search']:
|
||||||
"""Десериализация объекта.
|
"""Десериализация объекта.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from typing import TYPE_CHECKING, Optional
|
from typing import TYPE_CHECKING, Optional, List, Union
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from yandex_music import Client
|
from yandex_music import Client
|
||||||
|
@ -20,7 +20,7 @@ class SearchResult(YandexMusicObject):
|
||||||
total,
|
total,
|
||||||
per_page,
|
per_page,
|
||||||
order,
|
order,
|
||||||
results,
|
results: List[Union[Track, Artist, Album, Playlist, Video]],
|
||||||
client: Optional['Client'] = None,
|
client: Optional['Client'] = None,
|
||||||
**kwargs) -> None:
|
**kwargs) -> None:
|
||||||
self.total = total
|
self.total = total
|
||||||
|
@ -32,7 +32,7 @@ class SearchResult(YandexMusicObject):
|
||||||
self._id_attrs = (self.total, self.per_page, self.order, self.results)
|
self._id_attrs = (self.total, self.per_page, self.order, self.results)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def de_json(cls, data, client, type_=None):
|
def de_json(cls, data: dict, client: 'Client', type_: str = None) -> Optional['SearchResult']:
|
||||||
if not data:
|
if not data:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ from yandex_music import YandexMusicObject
|
||||||
|
|
||||||
class Suggestions(YandexMusicObject):
|
class Suggestions(YandexMusicObject):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
best,
|
best: Optional['Best'],
|
||||||
suggestions,
|
suggestions,
|
||||||
client: Optional['Client'] = None,
|
client: Optional['Client'] = None,
|
||||||
**kwargs) -> None:
|
**kwargs) -> None:
|
||||||
|
|
読み込み中…
新しいイシューから参照