@@ -332,7 +332,7 @@ pub(super) mod _os {
332332 } ;
333333 dir_iter
334334 . map ( |entry| match entry {
335- Ok ( entry_path) => path. mode . process_path ( entry_path. file_name ( ) , vm) ,
335+ Ok ( entry_path) => Ok ( path. mode . process_path ( entry_path. file_name ( ) , vm) ) ,
336336 Err ( err) => Err ( IOErrorBuilder :: with_filename ( & err, path. clone ( ) , vm) ) ,
337337 } )
338338 . collect :: < PyResult < _ > > ( ) ?
@@ -352,22 +352,18 @@ pub(super) mod _os {
352352 let mut dir =
353353 nix:: dir:: Dir :: from_fd ( new_fd) . map_err ( |e| e. into_pyexception ( vm) ) ?;
354354 dir. iter ( )
355- . filter_map ( |entry| {
356- entry
357- . map_err ( |e| e. into_pyexception ( vm) )
358- . and_then ( |entry| {
359- let fname = entry. file_name ( ) . to_bytes ( ) ;
360- Ok ( match fname {
361- b"." | b".." => None ,
362- _ => Some (
363- OutputMode :: String
364- . process_path ( ffi:: OsStr :: from_bytes ( fname) , vm) ?,
365- ) ,
366- } )
367- } )
368- . transpose ( )
355+ . filter_map_ok ( |entry| {
356+ let fname = entry. file_name ( ) . to_bytes ( ) ;
357+ match fname {
358+ b"." | b".." => None ,
359+ _ => Some (
360+ OutputMode :: String
361+ . process_path ( ffi:: OsStr :: from_bytes ( fname) , vm) ,
362+ ) ,
363+ }
369364 } )
370- . collect :: < PyResult < _ > > ( ) ?
365+ . collect :: < Result < _ , _ > > ( )
366+ . map_err ( |e| e. into_pyexception ( vm) ) ?
371367 }
372368 }
373369 } ;
@@ -429,7 +425,7 @@ pub(super) mod _os {
429425 let [ ] = dir_fd. 0 ;
430426 let path =
431427 fs:: read_link ( & path) . map_err ( |err| IOErrorBuilder :: with_filename ( & err, path, vm) ) ?;
432- mode. process_path ( path, vm)
428+ Ok ( mode. process_path ( path, vm) )
433429 }
434430
435431 #[ pyattr]
@@ -452,12 +448,12 @@ pub(super) mod _os {
452448 impl DirEntry {
453449 #[ pygetset]
454450 fn name ( & self , vm : & VirtualMachine ) -> PyResult {
455- self . mode . process_path ( & self . file_name , vm)
451+ Ok ( self . mode . process_path ( & self . file_name , vm) )
456452 }
457453
458454 #[ pygetset]
459455 fn path ( & self , vm : & VirtualMachine ) -> PyResult {
460- self . mode . process_path ( & self . pathval , vm)
456+ Ok ( self . mode . process_path ( & self . pathval , vm) )
461457 }
462458
463459 fn perform_on_metadata (
@@ -908,12 +904,12 @@ pub(super) mod _os {
908904
909905 #[ pyfunction]
910906 fn getcwd ( vm : & VirtualMachine ) -> PyResult {
911- OutputMode :: String . process_path ( curdir_inner ( vm) ?, vm)
907+ Ok ( OutputMode :: String . process_path ( curdir_inner ( vm) ?, vm) )
912908 }
913909
914910 #[ pyfunction]
915911 fn getcwdb ( vm : & VirtualMachine ) -> PyResult {
916- OutputMode :: Bytes . process_path ( curdir_inner ( vm) ?, vm)
912+ Ok ( OutputMode :: Bytes . process_path ( curdir_inner ( vm) ?, vm) )
917913 }
918914
919915 #[ pyfunction]
0 commit comments