code: def __setattr__(self, name, value):
      if isinstance(value, (list, tuple)):
          value = [
              self.__class__(x) if isinstance(x, dict) else x
              for x in value
          ]
      elif isinstance(value, dict) and not isinstance(
          value, self.__class__
      ):
          value = self.__class__(value)
      super(AttrDict, self).__setattr__(name, value)
      super(AttrDict, self).__setitem__(name, value)
  
imports: import sys
  import datetime
  import os
  import yaml
  import random
  import shutil
  import six
  import warnings
  import glob
  from utils.util import get_last_dir
label_desc: Use image node_id 2 for calling the AttrDict obj's underlying member method code with example usage: obj.__setattr__(name, value) without return types