Import the file for the given taskfileinfo

        This will also update the status to :data:`Reftrack.IMPORTED`. This will also call
        :meth:`fetch_new_children`. Because after the import, we might have new children.

        :param taskfileinfo: the taskfileinfo to import. If None is given, try to import
                             the current reference
        :type taskfileinfo: :class:`jukeboxcore.filesys.TaskFileInfo` | None
        :returns: None
        :rtype: None
        :raises: :class:`ReftrackIntegrityError`

def import_file(self, taskfileinfo):
        """Import the file for the given taskfileinfo

        This will also update the status to :data:`Reftrack.IMPORTED`. This will also call
        :meth:`fetch_new_children`. Because after the import, we might have new children.

        :param taskfileinfo: the taskfileinfo to import. If None is given, try to import
                             the current reference
        :type taskfileinfo: :class:`jukeboxcore.filesys.TaskFileInfo` | None
        :returns: None
        :rtype: None
        :raises: :class:`ReftrackIntegrityError`
        """
        assert self.status() is None,\
            "Entity is already in scene. Use replace instead."
        refobjinter = self.get_refobjinter()
        refobj = self.create_refobject()
        with self.set_parent_on_new(refobj):
            refobjinter.import_taskfile(refobj, taskfileinfo)
        self.set_refobj(refobj)
        self.set_status(self.IMPORTED)
        self.fetch_new_children()
        self.update_restrictions()
        self.emit_data_changed()