code: def update_from_proto(config_dict, config_proto):
      for item in config_proto.update:
          key_list = item.nested_key or (item.key,)
          assert key_list, "key or nested key must be set"
          target = config_dict
          # recurse down the dictionary structure:
          for prop in key_list[:-1]:
              if not target.get(prop):
                  target[prop] = {}
              target = target[prop]
          # use the last element of the key to write the leaf:
          target[key_list[-1]] = json.loads(item.value_json)
      for item in config_proto.remove:
          key_list = item.nested_key or (item.key,)
          assert key_list, "key or nested key must be set"
          target = config_dict
          # recurse down the dictionary structure:
          for prop in key_list[:-1]:
              target = target[prop]
          # use the last element of the key to write the leaf:
          del target[key_list[-1]]
  
file_path: wandb/wandb/sdk/lib/config_util.py
imports: import json
  import logging
  import os
  from typing import Any, Dict, Optional
  import yaml
  import wandb
  from wandb.errors import Error
  from wandb.util import load_yaml
  from .None import filesystem
label_desc: Use image node_id 2 for calling a global function with example usage: update_from_proto(config_dict, config_proto) without return types