code: def deep_del(data, fn):
      
      result = {}
  
      for k, v in data.iteritems():
          if not fn(v):
              if isinstance(v, dict):
                  result[k] = deep_del(v, fn)
              else:
                  result[k] = v
  
      return result
docs: Create dict copy with removed items.
  
      Recursively remove items where fn(value) is True.
  
      Returns:
          dict: New dict with matching items removed.