code: def dump_obj(self, obj):
      if obj is None:
          return None
      elif hasattr(obj, "dump"):
          return obj.dump()
      elif isinstance(obj, (int, float, str)):
          return obj
      elif isinstance(obj, (list, tuple)):
          return [self.dump_obj(value) for value in obj]
      elif isinstance(obj, dict):
          return {
              key: self.dump_obj(value) for key, value in obj.items()
          }
      else:
          return str(obj)
  
file_path: EasyOCR/easyocr/DBNet/model/constructor.py
imports: import importlib
  from collections import OrderedDict
label_desc: Use image node_id 8 for calling the Configurable obj's underlying member method code with example usage: obj.dump_obj(obj) and returns: None, obj, obj, unknown, unknown, str