| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
Remove *ignore* and *on_error* arguments from `pathlib.Path.copy[_into]()`, because these arguments are under-designed. Specifically: - *ignore* is appropriated from `shutil.copytree()`, but it's not clear how it should apply when the user copies a non-directory. We've changed the callback signature from the `shutil` version, but I'm not confident the new signature is as good as it can be. - *on_error* is a generalisation of `shutil.copytree()`'s error handling, which is to accumulate exceptions and raise a single `shutil.Error` at the end. It's not obvious which solution is better. Additionally, this arguments may be challenging to implement in future user subclasses of `PathBase`, which might utilise a native recursive copying method.
|
I do think we need some replacement for the removed arguments, but unlike delete, I think it's more about enabling additional use cases and less about making sure that basic usage is OK. Specifically, I think ignore is important for filtered copies (for example, copy a project directory but don't copy generated files like *.pyc or *.obj). I'm less sure about on_error - mostly it's the same arguments as for delete, but in this case I don't know of any commonly-encountered cases that would need to be supported in day to day use. So +1 from me on doing this as a temporary limitation, to get a minimal working implementation released. |
Sorry, something went wrong.
|
Thanks very much for the review! I agree with everything you wrote heh. I'll look to add support for filtering and customizing error handling soon. We might get a user request for them before too long! |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Remove ignore and on_error arguments from pathlib.Path.copy[_into](), because these arguments are under-designed. Specifically:
Additionally, these arguments may be challenging to implement in future user subclasses of PathBase, which might utilise a native recursive copying method.
No news because copy() and copy_into() are unreleased.
📚 Documentation preview 📚: https://cpython-previews--123337.org.readthedocs.build/