Submits the job either locally or to a remote server if it is defined.

        Args:
            queue (int, optional): The number of sub-jobs to run. This argmuent will set the num_jobs attribute of
                this object. Defaults to None, meaning the value of num_jobs will be used.
            options (list of str, optional): A list of command line options for the condor_submit command. For
                details on valid options see: http://research.cs.wisc.edu/htcondor/manual/current/condor_submit.html.
                Defaults to an empty list.

def submit(self, queue=None, options=[]):
        """Submits the job either locally or to a remote server if it is defined.

        Args:
            queue (int, optional): The number of sub-jobs to run. This argmuent will set the num_jobs attribute of
                this object. Defaults to None, meaning the value of num_jobs will be used.
            options (list of str, optional): A list of command line options for the condor_submit command. For
                details on valid options see: http://research.cs.wisc.edu/htcondor/manual/current/condor_submit.html.
                Defaults to an empty list.

        """
        if not self.executable:
            log.error('Job %s was submitted with no executable', self.name)
            raise NoExecutable('You cannot submit a job without an executable')

        self._num_jobs = queue or self.num_jobs

        self._write_job_file()

        args = ['condor_submit']
        args.extend(options)
        args.append(self.job_file)

        log.info('Submitting job %s with options: %s', self.name, args)
        return super(Job, self).submit(args)