docs: def attributes(self, full=0):
          """Return a dictionnary describing every global
          attribute attached to the SD interface.
  
          Args::
  
            full      true to get complete info about each attribute
                      false to report only each attribute value
  
          Returns::
  
            Empty dictionnary if no global attribute defined
            Otherwise, dictionnary where each key is the name of a
            global attribute. If parameter 'full' is false,
            key value is the attribute value. If 'full' is true,
            key value is a tuple with the following elements:
  
            - attribute value
            - attribute index number
            - attribute type
            - attribute length
  
          C library equivalent : no equivalent
                                                      """
  
          # Get the number of global attributes.
          nsds, natts = self.info()
  
          # Inquire each attribute
          res = {}
          for n in range(natts):
              a = self.attr(n)
              name, aType, nVal = a.info()
              if full:
                  res[name] = (a.get(), a.index(), aType, nVal)
              else:
                  res[name] = a.get()
  
          return res