@@ -685,24 +685,27 @@ def _rmtree_unsafe(path, dir_fd, onexc):
685685 def onerror (err ):
686686 if not isinstance (err , FileNotFoundError ):
687687 onexc (os .scandir , err .filename , err )
688- results = os .walk (path , topdown = False , onerror = onerror , followlinks = os ._walk_symlinks_as_files )
689- for dirpath , dirnames , filenames in results :
690- for name in dirnames :
691- fullname = os .path .join (dirpath , name )
692- try :
693- os .rmdir (fullname )
694- except FileNotFoundError :
695- continue
696- except OSError as err :
697- onexc (os .rmdir , fullname , err )
698- for name in filenames :
699- fullname = os .path .join (dirpath , name )
700- try :
701- os .unlink (fullname )
702- except FileNotFoundError :
703- continue
704- except OSError as err :
705- onexc (os .unlink , fullname , err )
688+ try :
689+ results = os .walk (path , topdown = False , onerror = onerror , followlinks = os ._walk_symlinks_as_files )
690+ for dirpath , dirnames , filenames in results :
691+ for name in dirnames :
692+ fullname = os .path .join (dirpath , name )
693+ try :
694+ os .rmdir (fullname )
695+ except FileNotFoundError :
696+ continue
697+ except OSError as err :
698+ onexc (os .rmdir , fullname , err )
699+ for name in filenames :
700+ fullname = os .path .join (dirpath , name )
701+ try :
702+ os .unlink (fullname )
703+ except FileNotFoundError :
704+ continue
705+ except OSError as err :
706+ onexc (os .unlink , fullname , err )
707+ except OSError as err :
708+ onexc (os .walk , path , err )
706709 try :
707710 os .rmdir (path )
708711 except FileNotFoundError :
0 commit comments