'Yield all import tasks for music found in the user-specified
path `self.toppath`. Any necessary sentinel tasks are also
produced.
During generation, update `self.skipped` and `self.imported`
with the number of tasks that were not produced (due to
incremental mode or resumed imports) and the number of concrete
tasks actually produced, respectively.
If `self.toppath` is an archive, it is adjusted to point to the
extracted data.'

def tasks(self):

    if self.is_archive:
        archive_task = self.unarchive()
        if (not archive_task):
            return
    for (dirs, paths) in self.paths():
        if self.session.config['singletons']:
            for path in paths:
                tasks = self._create(self.singleton(path))
                for task in tasks:
                    (yield task)
            (yield self.sentinel(dirs))
        else:
            tasks = self._create(self.album(paths, dirs))
            for task in tasks:
                (yield task)
    if self.is_archive:
        (yield archive_task)
    else:
        (yield self.sentinel())
