@@ -429,12 +429,7 @@ pub(crate) mod module {
429
429
let mut volumes = vec ! [ ] ;
430
430
let find;
431
431
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 _ ) } ;
438
433
if find == windows_sys:: Win32 :: Foundation :: INVALID_HANDLE_VALUE {
439
434
return Err ( errno_err ( vm) ) ;
440
435
}
@@ -447,11 +442,7 @@ pub(crate) mod module {
447
442
}
448
443
volumes. push ( s. to_string ( ) ) ;
449
444
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 _ )
455
446
} ;
456
447
if ret == 0 {
457
448
err = std:: io:: Error :: last_os_error ( ) . raw_os_error ( ) . unwrap_or ( 0 ) ;
@@ -463,10 +454,7 @@ pub(crate) mod module {
463
454
if err != 0 && err != windows_sys:: Win32 :: Foundation :: ERROR_NO_MORE_FILES as i32 {
464
455
return Err ( std:: io:: Error :: from_raw_os_error ( err) . to_pyexception ( vm) ) ;
465
456
}
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 ( ) ;
470
458
Ok ( vm. ctx . new_list ( volumes) )
471
459
}
472
460
@@ -481,8 +469,16 @@ pub(crate) mod module {
481
469
if path. is_dir ( ) {
482
470
return Ok ( false ) ;
483
471
}
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
+ }
486
482
}
487
483
488
484
#[ pyfunction]
@@ -494,8 +490,16 @@ pub(crate) mod module {
494
490
if path. exists ( ) {
495
491
return Ok ( false ) ;
496
492
}
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
+ }
499
503
}
500
504
501
505
#[ pyfunction]
@@ -507,8 +511,16 @@ pub(crate) mod module {
507
511
if path. exists ( ) {
508
512
return Ok ( false ) ;
509
513
}
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
+ }
512
524
}
513
525
514
526
#[ pyfunction]
@@ -520,8 +532,16 @@ pub(crate) mod module {
520
532
if path. exists ( ) {
521
533
return Ok ( false ) ;
522
534
}
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
+ }
525
545
}
526
546
527
547
// End of functions that are not fully compatible with CPython
0 commit comments