diff --git a/vm/src/stdlib/subprocess.rs b/vm/src/stdlib/subprocess.rs index 199128b4e..10b618547 100644 --- a/vm/src/stdlib/subprocess.rs +++ b/vm/src/stdlib/subprocess.rs @@ -49,6 +49,12 @@ struct PopenArgs { start_new_session: Option, } +#[derive(FromArgs)] +struct PopenWaitArgs { + #[pyarg(positional_or_keyword, default = "None")] + timeout: Option, +} + impl IntoPyObject for subprocess::ExitStatus { fn into_pyobject(self, vm: &VirtualMachine) -> PyResult { let status: i32 = match self { @@ -142,8 +148,8 @@ impl PopenRef { self.process.borrow().exit_status() } - fn wait(self, timeout: OptionalArg, vm: &VirtualMachine) -> PyResult<()> { - let timeout = match timeout.into_option() { + fn wait(self, args: PopenWaitArgs, vm: &VirtualMachine) -> PyResult<()> { + let timeout = match args.timeout { Some(timeout) => self .process .borrow_mut()