On Thu, Dec 19, 2019, at 17:43, Guido van Rossum wrote: > A quick look at the docs > <https://docs.python.org/3/library/shutil.html#shutil.move> shows what > the OP is likely after. > > The function has this signature: > > `shutil.``move`(*src*, *dst*, *copy_function=copy2*)ΒΆ > <https://docs.python.org/3/library/shutil.html#shutil.move> > > The copy_function argument is a function of two parameters (src and > dst) which is called *when os.rename() cannot be used*. (E>g. for > cross-filesystem moves.) In that case the individual files are copied > using copy_function(src, dst). The default copy_function is > shutil.copy2 > <https://docs.python.org/3/library/shutil.html#shutil.copy2>, which > defaults to follow_symlinks=True, i.e. it doesn't recognize symlinks > and instead copies the contents.
except the line highlighted in the OP link was where it passes symlinks=True to copytree, whose usage is not parameterized at all. copy_function isn't therefore, to my understanding, going to be called on symlinks in that case, only regular files. This is why some of us are confused as to what the OP wants - copytree is only called if rename fails, so making it behave differently on symlinks will mean that symlinks in the original tree behave one way when moving within a filesystem, and a different way when moving to a different filesystem. _______________________________________________ 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/B2YT6K4QLSPD2KTVPFHBR53YBI46KZTJ/ Code of Conduct: http://python.org/psf/codeofconduct/