docs: def sort_kwargs(kwargs, *param_lists):
      """Function to sort keyword arguments and sort them into dictionaries
  
      This function returns dictionaries that contain the keyword arguments
      from `kwargs` corresponding given iterables in ``*params``
  
      Parameters
      ----------
      kwargs: dict
          Original dictionary
      ``*param_lists``
          iterables of strings, each standing for a possible key in kwargs
  
      Returns
      -------
      list
          len(params) + 1 dictionaries. Each dictionary contains the items of
          `kwargs` corresponding to the specified list in ``*param_lists``. The
          last dictionary contains the remaining items"""
      return chain(
          ({key: kwargs.pop(key) for key in params.intersection(kwargs)}
           for params in map(set, param_lists)), [kwargs])