def _loadJob(cls, command, jobStore):
        """
        Unpickles a :class:`toil.job.Job` instance by decoding command.

        The command is a reference to a jobStoreFileID containing the \
        pickle file for the job and a list of modules which must be imported so that \
        the Job can be successfully unpickled. \
        See :func:`toil.job.Job._serialiseFirstJob` and \
        :func:`toil.job.Job._makeJobGraphs` to see precisely how the Job is encoded \
        in the command.

        :param string command: encoding of the job in the job store.
        :param toil.jobStores.abstractJobStore.AbstractJobStore jobStore: The job store.
        :returns: The job referenced by the command.
        :rtype: toil.job.Job
        """
        commandTokens = command.split()
        assert "_toil" == commandTokens[0]
        userModule = ModuleDescriptor.fromCommand(commandTokens[2:])
        logger.debug('Loading user module %s.', userModule)
        userModule = cls._loadUserModule(userModule)
        pickleFile = commandTokens[1]

        # Get a directory to download the job in
        directory = tempfile.mkdtemp()
        # Initialize a blank filename so the finally below can't fail due to a
        # missing variable
        filename = ''

        try:
            # Get a filename to download the job to.
            # Don't use mkstemp because we would need to delete and replace the
            # file.
            # Don't use a NamedTemporaryFile context manager because its
            # context manager exit will crash if we deleted it.
            filename = os.path.join(directory, 'job')
                
            # Download the job
            if pickleFile == "firstJob":
                jobStore.readSharedFile(pickleFile, filename)
            else:
                jobStore.readFile(pickleFile, filename)

            # Open and unpickle
            with open(filename, 'rb') as fileHandle:
                return cls._unpickle(userModule, fileHandle, jobStore.config)

            # TODO: We ought to just unpickle straight from a streaming read
        finally:
            # Clean up the file
            if os.path.exists(filename):
                os.unlink(filename)
            # Clean up the directory we put it in
            # TODO: we assume nobody else put anything in the directory
            if os.path.exists(directory):
                os.rmdir(directory)
Unpickles a :class:`toil.job.Job` instance by decoding command.

        The command is a reference to a jobStoreFileID containing the \
        pickle file for the job and a list of modules which must be imported so that \
        the Job can be successfully unpickled. \
        See :func:`toil.job.Job._serialiseFirstJob` and \
        :func:`toil.job.Job._makeJobGraphs` to see precisely how the Job is encoded \
        in the command.

        :param string command: encoding of the job in the job store.
        :param toil.jobStores.abstractJobStore.AbstractJobStore jobStore: The job store.
        :returns: The job referenced by the command.
        :rtype: toil.job.Job