class_docstr: :class:`FullSortEvalDataLoader` is a dataloader for full-sort evaluation. In order to speed up calculation,
  this dataloader would only return then user part of interactions, positive items and used items.
  It would not return negative items.
  
  Args:
      config (Config): The config of dataloader.
      dataset (Dataset): The dataset of dataloader.
      sampler (Sampler): The sampler of dataloader.
      shuffle (bool, optional): Whether the dataloader will be shuffle after a round. Defaults to ``False``.
code: def _set_user_property(self, uid, used_item, positive_item):
      if uid is None:
          return
      history_item = used_item - positive_item
      self.uid2positive_item[uid] = torch.tensor(
          list(positive_item), dtype=torch.int64
      )
      self.uid2items_num[uid] = len(positive_item)
      self.uid2history_item[uid] = torch.tensor(
          list(history_item), dtype=torch.int64
      )
  
imports: import numpy
  import torch
  from logging import getLogger
  from recbole.data.dataloader.abstract_dataloader import AbstractDataLoader, NegSampleDataLoader
  from recbole.data.interaction import Interaction, cat_interactions
  from recbole.utils import InputType, ModelType
label_desc: Use image node_id 2 for calling the FullSortEvalDataLoader obj's underlying member method code with example usage: obj._set_user_property(uid, used_item, positive_item) without return types