@@ -429,12 +429,7 @@ pub(crate) mod module {
429429 let mut volumes = vec ! [ ] ;
430430 let find;
431431 let mut buffer = [ 0u16 ; 257 ] ;
432- find = unsafe {
433- FileSystem :: FindFirstVolumeW (
434- buffer. as_mut_ptr ( ) ,
435- buffer. len ( ) as _ ,
436- )
437- } ;
432+ find = unsafe { FileSystem :: FindFirstVolumeW ( buffer. as_mut_ptr ( ) , buffer. len ( ) as _ ) } ;
438433 if find == windows_sys:: Win32 :: Foundation :: INVALID_HANDLE_VALUE {
439434 return Err ( errno_err ( vm) ) ;
440435 }
@@ -447,11 +442,7 @@ pub(crate) mod module {
447442 }
448443 volumes. push ( s. to_string ( ) ) ;
449444 let ret = unsafe {
450- FileSystem :: FindNextVolumeW (
451- find,
452- buffer. as_mut_ptr ( ) ,
453- buffer. len ( ) as _ ,
454- )
445+ FileSystem :: FindNextVolumeW ( find, buffer. as_mut_ptr ( ) , buffer. len ( ) as _ )
455446 } ;
456447 if ret == 0 {
457448 err = std:: io:: Error :: last_os_error ( ) . raw_os_error ( ) . unwrap_or ( 0 ) ;
@@ -463,10 +454,7 @@ pub(crate) mod module {
463454 if err != 0 && err != windows_sys:: Win32 :: Foundation :: ERROR_NO_MORE_FILES as i32 {
464455 return Err ( std:: io:: Error :: from_raw_os_error ( err) . to_pyexception ( vm) ) ;
465456 }
466- let volumes: Vec < _ > = volumes
467- . into_iter ( )
468- . map ( |v| vm. new_pyobj ( v) )
469- . collect ( ) ;
457+ let volumes: Vec < _ > = volumes. into_iter ( ) . map ( |v| vm. new_pyobj ( v) ) . collect ( ) ;
470458 Ok ( vm. ctx . new_list ( volumes) )
471459 }
472460
@@ -481,8 +469,16 @@ pub(crate) mod module {
481469 if path. is_dir ( ) {
482470 return Ok ( false ) ;
483471 }
484- let metadata = fs:: metadata ( path) . map_err ( |err| err. to_pyexception ( vm) ) ?;
485- Ok ( metadata. is_file ( ) )
472+ let metadata = fs:: metadata ( path) ;
473+ match metadata {
474+ Ok ( meta) => Ok ( meta. is_file ( ) ) ,
475+ Err ( err) => {
476+ if err. kind ( ) == io:: ErrorKind :: NotFound {
477+ return Ok ( false ) ;
478+ }
479+ Err ( err. to_pyexception ( vm) )
480+ }
481+ }
486482 }
487483
488484 #[ pyfunction]
@@ -494,8 +490,16 @@ pub(crate) mod module {
494490 if path. exists ( ) {
495491 return Ok ( false ) ;
496492 }
497- let metadata = fs:: metadata ( path) . map_err ( |err| err. to_pyexception ( vm) ) ?;
498- Ok ( metadata. is_dir ( ) )
493+ let metadata = fs:: metadata ( path) ;
494+ match metadata {
495+ Ok ( meta) => Ok ( meta. is_dir ( ) ) ,
496+ Err ( err) => {
497+ if err. kind ( ) == io:: ErrorKind :: NotFound {
498+ return Ok ( false ) ;
499+ }
500+ Err ( err. to_pyexception ( vm) )
501+ }
502+ }
499503 }
500504
501505 #[ pyfunction]
@@ -507,8 +511,16 @@ pub(crate) mod module {
507511 if path. exists ( ) {
508512 return Ok ( false ) ;
509513 }
510- let metadata = fs:: metadata ( path) . map_err ( |err| err. to_pyexception ( vm) ) ?;
511- Ok ( metadata. is_file ( ) )
514+ let metadata = fs:: metadata ( path) ;
515+ match metadata {
516+ Ok ( meta) => Ok ( meta. is_file ( ) ) ,
517+ Err ( err) => {
518+ if err. kind ( ) == io:: ErrorKind :: NotFound {
519+ return Ok ( false ) ;
520+ }
521+ Err ( err. to_pyexception ( vm) )
522+ }
523+ }
512524 }
513525
514526 #[ pyfunction]
@@ -520,8 +532,16 @@ pub(crate) mod module {
520532 if path. exists ( ) {
521533 return Ok ( false ) ;
522534 }
523- let metadata = fs:: symlink_metadata ( path) . map_err ( |err| err. to_pyexception ( vm) ) ?;
524- Ok ( metadata. file_type ( ) . is_symlink ( ) )
535+ let metadata = fs:: symlink_metadata ( path) ;
536+ match metadata {
537+ Ok ( meta) => Ok ( meta. file_type ( ) . is_symlink ( ) ) ,
538+ Err ( err) => {
539+ if err. kind ( ) == io:: ErrorKind :: NotFound {
540+ return Ok ( false ) ;
541+ }
542+ Err ( err. to_pyexception ( vm) )
543+ }
544+ }
525545 }
526546
527547 // End of functions that are not fully compatible with CPython
0 commit comments