docs: def mpd_command_provider(cls):
      """Decorator hooking up registered MPD commands to concrete client
      implementation.
  
      A class using this decorator must inherit from ``MPDClientBase`` and
      implement it's ``add_command`` function.
      """
      def collect(cls, callbacks=dict()):
          """Collect MPD command callbacks from given class.
  
          Searches class __dict__ on given class and all it's bases for functions
          which have been decorated with @mpd_commands and returns a dict
          containing callback name as keys and
          (callback, callback implementing class) tuples as values.
          """
          for name, ob in cls.__dict__.items():
              if hasattr(ob, "mpd_commands") and name not in callbacks:
                  callbacks[name] = (ob, cls)
          for base in cls.__bases__:
              callbacks = collect(base, callbacks)
          return callbacks
  
      for name, value in collect(cls).items():
          callback, from_ = value
          for command in callback.mpd_commands:
              cls.add_command(command, callback)
      return cls