code: def stack_nested_keys(nested_dict, key=(), depth=-1):
      
  
      if depth != 0 and hasattr(nested_dict, 'items'):
          for k, v in nested_dict.items():
              yield from stack_nested_keys(v, key=key + (k,), depth=depth - 1)
      else:
          yield key, nested_dict
docs: Stacks the keys of nested-dictionaries into tuples and yields a list of
      k-v pairs.
  
      :param nested_dict:
          Nested dictionary.
      :type nested_dict: dict
  
      :param key:
          Initial keys.
      :type key: tuple, optional
  
      :param depth:
          Maximum keys depth.
      :type depth: int, optional
  
      :return:
          List of k-v pairs.
      :rtype: generator