@@ -124,14 +124,14 @@ def _add_flux_callbacks(self, job: Job, fut: flux.job.FluxExecutorFuture) -> Non
124124
125125 def submit (self , job : Job ) -> None :
126126 """See :func:`~psij.job_executor.JobExecutor.submit`."""
127- assert job . spec
128- assert job . spec . attributes
129- job . executor = self
130- if isinstance (job . spec .resources , ResourceSpecV1 ):
131- resources = job . spec .resources
132- elif isinstance (job . spec .resources , ResourceSpec ):
127+ spec = self . _check_job ( job )
128+
129+ assert spec . attributes
130+ if isinstance (spec .resources , ResourceSpecV1 ):
131+ resources = spec .resources
132+ elif isinstance (spec .resources , ResourceSpec ):
133133 raise InvalidJobException (
134- f"ResourceSpec version { job . spec .resources .version } not supported"
134+ f"ResourceSpec version { spec .resources .version } not supported"
135135 )
136136 else :
137137 resources = ResourceSpecV1 (process_count = 1 , cpu_cores_per_process = 1 )
@@ -142,24 +142,24 @@ def submit(self, job: Job) -> None:
142142 )
143143 if resources .processes_per_node :
144144 raise InvalidJobException ("Flux does not support processes_per_node" )
145- if not job . spec .executable :
145+ if not spec .executable :
146146 raise InvalidJobException ("Job must have an executable" )
147- argv = list (job . spec .arguments ) if job . spec .arguments else []
148- argv .insert (0 , job . spec .executable )
147+ argv = list (spec .arguments ) if spec .arguments else []
148+ argv .insert (0 , spec .executable )
149149 flux_jobspec = flux .job .JobspecV1 .from_command (
150150 argv ,
151151 num_tasks = resources .process_count ,
152152 cores_per_task = resources .cpu_cores_per_process ,
153153 gpus_per_task = resources .gpu_cores_per_process ,
154154 num_nodes = resources .node_count ,
155155 )
156- if job . spec .stdout_path :
157- flux_jobspec .stdout = job . spec .stdout_path
158- if job . spec .stdin_path :
159- flux_jobspec .stdin = job . spec .stdin_path
160- if job . spec .stderr_path :
161- flux .jobspec .stderr = job . spec .stderr_path
162- flux_jobspec .duration = job . spec .attributes .duration .total_seconds ()
156+ if spec .stdout_path :
157+ flux_jobspec .stdout = spec .stdout_path
158+ if spec .stdin_path :
159+ flux_jobspec .stdin = spec .stdin_path
160+ if spec .stderr_path :
161+ flux .jobspec .stderr = spec .stderr_path
162+ flux_jobspec .duration = spec .attributes .duration .total_seconds ()
163163 fut = self ._flux_executor .submit (flux_jobspec )
164164 self ._add_flux_callbacks (job , fut )
165165
0 commit comments