Base
Core abstract classes for the Remote
module.
These define the foundations of any remote object or item.
Classes:
|
Generic base class for remote objects. |
|
Generic base class for remote items. |
- class musify.libraries.remote.core.base.RemoteObject(response, api=None, skip_checks=False)
Bases:
RemoteResponse
,Generic
Generic base class for remote objects. Extracts key data from a remote API JSON response.
- Parameters:
response (
dict
[str
,Any
]) – The remote API JSON responseapi (
TypeVar
(T
, bound=RemoteAPI
|None
) (default:None
)) – The instantiated and authorised API object for this source type.
Attributes:
URI (Uniform Resource Indicator) is the unique identifier for this item/collection.
Does this item/collection have a valid URI that is not a local URI.
The API response for this object
The type of remote object this class represents
The
RemoteAPI
to call when reloadingMethods:
load
(value, api, *args, **kwargs)Generate a new object of this class, calling all required endpoints to get a complete set of data for this item type.
reload
(*args, **kwargs)Reload this object from the API, calling all required endpoints to get a complete set of data for this item type.
- abstract property uri: str
URI (Uniform Resource Indicator) is the unique identifier for this item/collection.
- abstract property has_uri: bool
Does this item/collection have a valid URI that is not a local URI.
- property response: dict[str, Any]
The API response for this object
- abstract property kind: RemoteObjectType
The type of remote object this class represents
- api
The
RemoteAPI
to call when reloading
- abstract async classmethod load(value, api, *args, **kwargs)
Generate a new object of this class, calling all required endpoints to get a complete set of data for this item type.
value
may be:A string representing a URL/URI/ID.
A remote API JSON response for a collection with a valid ID value under an
id
key.An object of the same type as this collection. The remote API JSON response will be used to load a new object.
- Parameters:
value (
GenericAlias
[RemoteResponse
]) – The value representing some remote object. See description for allowed value types.api (
RemoteAPI
) – An authorised API object to load the object from.
- Return type:
Self
- abstract async reload(*args, **kwargs)
Reload this object from the API, calling all required endpoints to get a complete set of data for this item type.
- Return type:
None
- class musify.libraries.remote.core.base.RemoteItem(response, api=None, skip_checks=False)
Bases:
RemoteObject
,MusifyItem
Generic base class for remote items. Extracts key data from a remote API JSON response.
Attributes:
The
RemoteAPI
to call when reloading- api
The
RemoteAPI
to call when reloading