Top

spotify.v1.audio_features module

from spotify.page import Page
from spotify.resource import Instance, Resource


class AudioFeaturesInstance(Instance):

    @property
    def danceability(self):
        return self.property('danceability')

    @property
    def energy(self):
        return self.property('energy')

    @property
    def key(self):
        return self.property('key')

    @property
    def loudness(self):
        return self.property('loudness')

    @property
    def mode(self):
        return self.property('mode')

    @property
    def speechiness(self):
        return self.property('speechiness')

    @property
    def acousticness(self):
        return self.property('acousticness')

    @property
    def instrumentalness(self):
        return self.property('instrumentalness')

    @property
    def liveness(self):
        return self.property('liveness')

    @property
    def valence(self):
        return self.property('valence')

    @property
    def tempo(self):
        return self.property('tempo')

    @property
    def type(self):
        return self.property('type')

    @property
    def id(self):
        return self.property('id')

    @property
    def uri(self):
        return self.property('uri')

    @property
    def track_href(self):
        return self.property('track_href')

    @property
    def analysis_url(self):
        return self.property('analysis_url')

    @property
    def duration_ms(self):
        return self.property('duration_ms')

    @property
    def time_signature(self):
        return self.property('time_signature')


class AudioFeaturesContext(Resource):

    def __init__(self, version, id):
        super(AudioFeaturesContext, self).__init__(version)
        self.id = id

    def fetch(self):
        response = self.version.request('GET', '/audio-features/{}'.format(self.id))
        return AudioFeaturesInstance(self.version, response.json())


class AudioFeaturesList(Resource):

    def list(self, ids=None):
        params = {}
        if ids:
            params['ids'] = ','.join(ids)

        response = self.version.request('GET', '/audio-features', params=params)
        return AudioFeaturesPage(self.version, response.json(), 'audio_features')


class AudioFeaturesPage(Page):

    @property
    def instance_class(self):
        return AudioFeaturesInstance

Classes

class AudioFeaturesContext

class AudioFeaturesContext(Resource):

    def __init__(self, version, id):
        super(AudioFeaturesContext, self).__init__(version)
        self.id = id

    def fetch(self):
        response = self.version.request('GET', '/audio-features/{}'.format(self.id))
        return AudioFeaturesInstance(self.version, response.json())

Ancestors (in MRO)

Instance variables

var id

Methods

def __init__(

self, version, id)

def __init__(self, version, id):
    super(AudioFeaturesContext, self).__init__(version)
    self.id = id

def fetch(

self)

def fetch(self):
    response = self.version.request('GET', '/audio-features/{}'.format(self.id))
    return AudioFeaturesInstance(self.version, response.json())

class AudioFeaturesInstance

class AudioFeaturesInstance(Instance):

    @property
    def danceability(self):
        return self.property('danceability')

    @property
    def energy(self):
        return self.property('energy')

    @property
    def key(self):
        return self.property('key')

    @property
    def loudness(self):
        return self.property('loudness')

    @property
    def mode(self):
        return self.property('mode')

    @property
    def speechiness(self):
        return self.property('speechiness')

    @property
    def acousticness(self):
        return self.property('acousticness')

    @property
    def instrumentalness(self):
        return self.property('instrumentalness')

    @property
    def liveness(self):
        return self.property('liveness')

    @property
    def valence(self):
        return self.property('valence')

    @property
    def tempo(self):
        return self.property('tempo')

    @property
    def type(self):
        return self.property('type')

    @property
    def id(self):
        return self.property('id')

    @property
    def uri(self):
        return self.property('uri')

    @property
    def track_href(self):
        return self.property('track_href')

    @property
    def analysis_url(self):
        return self.property('analysis_url')

    @property
    def duration_ms(self):
        return self.property('duration_ms')

    @property
    def time_signature(self):
        return self.property('time_signature')

Ancestors (in MRO)

Instance variables

var acousticness

var analysis_url

var danceability

var duration_ms

var energy

var id

var instrumentalness

var key

var liveness

var loudness

var mode

var speechiness

var tempo

var time_signature

var track_href

var type

var uri

var valence

Methods

def __init__(

self, version, properties)

def __init__(self, version, properties):
    super(Instance, self).__init__(version)
    self.properties = properties

def property(

self, name, default=None)

def property(self, name, default=None):
    return self.properties.get(name, default)

class AudioFeaturesList

class AudioFeaturesList(Resource):

    def list(self, ids=None):
        params = {}
        if ids:
            params['ids'] = ','.join(ids)

        response = self.version.request('GET', '/audio-features', params=params)
        return AudioFeaturesPage(self.version, response.json(), 'audio_features')

Ancestors (in MRO)

Methods

def __init__(

self, version)

def __init__(self, version):
    self.version = version

def list(

self, ids=None)

def list(self, ids=None):
    params = {}
    if ids:
        params['ids'] = ','.join(ids)
    response = self.version.request('GET', '/audio-features', params=params)
    return AudioFeaturesPage(self.version, response.json(), 'audio_features')

class AudioFeaturesPage

class AudioFeaturesPage(Page):

    @property
    def instance_class(self):
        return AudioFeaturesInstance

Ancestors (in MRO)

Instance variables

var instance_class

Methods

def __init__(

self, version, data, key)

def __init__(self, version, data, key):
    super(Page, self).__init__(version)
    self._key = key
    self._items = iter([self.instance_class(self.version, item) for item in data.get(key, [])])
    del data[key]
    self._meta = data

def has_next_page(

self)

def has_next_page(self):
    return 'next' in self._meta and self._meta['next'] is not None

def next_page(

self)

def next_page(self):
    response = self.version.request(self._meta['next'])
    return self.__class__(
        self.version,
        response.json(),
        self._key
    )