示例#1
0
 def credentials_blob_updated(sp_session, data):
     if not spotify._session_instance:
         return
     data = ffi.string(data)
     logger.debug('Credentials blob updated: %r', data)
     spotify._session_instance.emit(SessionEvent.CREDENTIALS_BLOB_UPDATED,
                                    spotify._session_instance, data)
示例#2
0
def to_bytes_or_none(value):
    """Converts C char arrays to bytes and C NULL values to None."""
    if value == ffi.NULL:
        return None
    elif isinstance(value, ffi.CData):
        return ffi.string(value)
    else:
        raise ValueError('Value must be char[] or NULL')
示例#3
0
文件: session.py 项目: jcranston/juke
 def credentials_blob_updated(sp_session, data):
     if not spotify._session_instance:
         return
     data = ffi.string(data)
     logger.debug('Credentials blob updated: %r', data)
     spotify._session_instance.emit(
         SessionEvent.CREDENTIALS_BLOB_UPDATED,
         spotify._session_instance, data)
示例#4
0
def to_unicode_or_none(value):
    """Converts C char arrays to unicode and C NULL values to None.

    C char arrays are decoded from UTF-8.
    """
    if value == ffi.NULL:
        return None
    elif isinstance(value, ffi.CData):
        return ffi.string(value).decode('utf-8')
    else:
        raise ValueError('Value must be char[] or NULL')
示例#5
0
def to_unicode(value):
    """Converts bytes, unicode, and C char arrays to unicode strings.

    Bytes and C char arrays are decoded from UTF-8.
    """
    if isinstance(value, ffi.CData):
        return ffi.string(value).decode('utf-8')
    elif isinstance(value, binary_type):
        return value.decode('utf-8')
    elif isinstance(value, text_type):
        return value
    else:
        raise ValueError('Value must be text, bytes, or char[]')
示例#6
0
def to_bytes(value):
    """Converts bytes, unicode, and C char arrays to bytes.

    Unicode strings are encoded to UTF-8.
    """
    if isinstance(value, text_type):
        return value.encode('utf-8')
    elif isinstance(value, ffi.CData):
        return ffi.string(value)
    elif isinstance(value, binary_type):
        return value
    else:
        raise ValueError('Value must be text, bytes, or char[]')