code: def select_tasks(self, nids=None, wslice=None, task_class=None):
          
          if nids is not None:
              assert wslice is None
              tasks = self.tasks_from_nids(nids)
  
          elif wslice is not None:
              tasks = []
              for work in self[wslice]:
                  tasks.extend([t for t in work])
          else:
              # All tasks selected if no option is provided.
              tasks = list(self.iflat_tasks())
  
          # Filter by task class
          if task_class is not None:
              tasks = [t for t in tasks if t.isinstance(task_class)]
  
          return tasks
docs: Return a list with a subset of tasks.
  
          Args:
              nids: List of node identifiers.
              wslice: Slice object used to select works.
              task_class: String or class used to select tasks. Ignored if None.
  
          .. note::
  
              nids and wslice are mutually exclusive.
              If no argument is provided, the full list of tasks is returned.