Last but not least, I tend more towards the "rmtree" method just
    to make it crystal clear to everyone. Maybe docs could cross-refer
    both methods. Tree manipulations are inherently complicated and a
    lot can go wrong. Symmetry is not 100% given as you might delete
    more than what you've created (which was a single node path).


We already have tree removal functionality that this can use internally.


I am not much concerned about the internals; shutil.rmtree should work fine here.

I am more concerned with the external interface (see also root/base/stem) and its impression on developers.


As for the name, one thing to consider is that making a recursive tree uses an argument.

And I think the argument would need to be keyword-only to avoid accidentally invoking it.


Why not adding a new method?

I am still not convinced from a safety perspective that adding a new meaning-changing argument to a removal function is such a good idea. Just consider the following example.


When deleting /my/soon/to/be/deleted/dir, you DO NOT delete a simple directory as the method name "rmdir" would suggest:

- /my/soon/to/be/deleted/dir

instead you delete something like this:

- /my/soon/to/be/deleted/dir/d1/f1
- /my/soon/to/be/deleted/dir/d1/d3/f1
- /my/soon/to/be/deleted/dir/d1/d3/f2
- /my/soon/to/be/deleted/dir/d1/d3
- /my/soon/to/be/deleted/dir/d1/f2
- /my/soon/to/be/deleted/dir/d1/f3
- /my/soon/to/be/deleted/dir/d1
- /my/soon/to/be/deleted/dir/d2/f1
- /my/soon/to/be/deleted/dir/d2/f2
- /my/soon/to/be/deleted/dir/d2
- /my/soon/to/be/deleted/dir


That is a completely different beast (a complete tree) and there is no way back once deleted.

And there are a couple of other reasons when I look as the interface of shutil.rmtree and what "recursively" really means for pathlib.


Best
Sven

_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/IWI6ES76CVZ3XEQMTP6PS2JKJWPCJVO3/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to