code: def get_collection_sizes(obj, collections: Optional[Tuple]=None,
                           get_only_non_empty=False):
      
      from pympler import asizeof
      collections = collections or (list, dict, set, deque, abc.Sized)
      if not isinstance(collections, tuple):
          collections = tuple(collections)
  
      result = []
      for attr_name in dir(obj):
          attr = getattr(obj, attr_name)
          if isinstance(attr, collections) and (
                  not get_only_non_empty or len(attr) > 0):
              result.append(
                  (attr_name, len(attr), asizeof.asizeof(attr, detail=1)))
      return result
docs: Iterates over `collections` of the gives object and gives its byte size
      and number of items in collection