'Gets all attributes from the symbol.
Example usage:
>>> data = mx.sym.Variable(\'data\', attr={\'mood\': \'angry\'})
>>> data.list_attr()
{\'mood\': \'angry\'}
Returns
ret : Dict of str to str
A dictionary mapping attribute keys to values.'

def list_attr(self, recursive=False):

    if recursive:
        raise DeprecationWarning('Symbol.list_attr    with    recursive=True    has    been    deprecated.    Please    use    attr_dict    instead.')
    size = mx_uint()
    pairs = ctypes.POINTER(ctypes.c_char_p)()
    f_handle = _LIB.MXSymbolListAttrShallow
    check_call(f_handle(self.handle, ctypes.byref(size), ctypes.byref(pairs)))
    return {py_str(pairs[(i * 2)]): py_str(pairs[((i * 2) + 1)]) for i in range(size.value)}
