code: def _group(self, group_data):
          
          if isinstance(group_data, dict):
              # get xid from dict
              xid = group_data.get('xid')
          else:
              # get xid from object
              xid = group_data.xid
  
          if self.groups.get(xid) is not None:
              # return existing group from memory
              group_data = self.groups.get(xid)
          elif self.groups_shelf.get(xid) is not None:
              # return existing group from shelf
              group_data = self.groups_shelf.get(xid)
          else:
              # store new group
              self.groups[xid] = group_data
          return group_data
docs: Return previously stored group or new group.
  
          Args:
              group_data (dict|obj): An Group dict or instance of Group object.
  
          Returns:
              dict|obj: The new Group dict/object or the previously stored dict/object.