class_docstr: Dictionary wrapper that prevents modifications to the dictionary 
class_docstr_tok: ["Dictionary","wrapper","that","prevents","modifications","to","the","dictionary"]
code: def __init__(self, update_obj, update_func, *args, **kwargs):
      super(ProxyDictPreWrite, self).__init__(*args, **kwargs)
      self._update_func = None
      for k, i in self.items():
          if isinstance(i, dict):
              self.update(
                  {k: ProxyDictPreWrite(k, self._nested_callback, i)}
              )
      self._update_obj = update_obj
      self._update_func = update_func
  
imports: import itertools
  import json
  from copy import copy
  from logging import getLogger
  import six
  import yaml
label_desc: Use image node_id 1 to create a new ProxyDictPreWrite object from inherited base classes: dict with example: obj = ProxyDictPreWrite(update_obj, update_func)