code: def _get_object_size(obj, seen=None):
      """Recursively finds size of objects"""
      size = sys.getsizeof(obj)
      if seen is None:
          seen = set()
      obj_id = id(obj)
      if obj_id in seen:
          return 0
      # Important mark as seen *before* entering recursion to gracefully handle
      # self-referential objects
      seen.add(obj_id)
      if isinstance(obj, dict):
          size += sum([_get_object_size(v, seen) for v in obj.values()])
          size += sum([_get_object_size(k, seen) for k in obj.keys()])
      elif hasattr(obj, "__iter__") and not isinstance(
          obj, (str, bytes, bytearray)
      ):
          size += sum([_get_object_size(i, seen) for i in obj])
          if hasattr(obj, "__dict__"):
              size += _get_object_size(obj.__dict__.values(), seen)
      elif hasattr(obj, "__dict__"):
          size += _get_object_size(obj.__dict__, seen)
      return size
  
imports: import json
  import sys
  import base64
  import datetime
  from collections import namedtuple
label_desc: Use image node_id 1 for calling a global function with example usage: _get_object_size(obj, seen) and returns: size, int