On Thu, Jan 21, 2021 at 4:43 PM Barney Gale <barney.gale@gmail.com> wrote:
Hi Brett,
Per your PR review feedback [0] I left a comment on the bug [1] asking when the link_to() method should be scheduled for removal. It didn't elicit a great deal of feedback, so I'm raising this again here!
Per PEP 387 (https://www.python.org/dev/peps/pep-0387/), the deprecation needs to last for at least 2 versions (so if this landed in 3.10 then removal couldn't happen any sooner than 3.12).
The proposed deprecation warning in the docs currently reads:
This method is deprecated in favor of :meth:`Path.hardlink_to`, as its argument order does not match that of :meth:`Path.symlink_to`.
I would replace "its argument order" with "the argument order of :meth:`link_to` to disambiguate what "its" is referring to (my brain kept associating it with the last noun, which was Path.hardlink_to).
My view is that the removal does not need to happen soon. Any existing code will be written by people who have already figured out the argument reversal, so the current situation doesn't seem dangerous. That said, a speedy deprecation and replacement will remove a guaranteed headache for people creating hardlinks in pathlib.
The removal can't be any _sooner_ than 3.12, but it can be postponed if desired/necessary.
Apologies if replying to an old thread is bad form - I'm not well versed in mailing list etiquette.
Not a problem! Sometimes it's just called for, and you kept the old emails quoted in your reply which helps. -Brett
Best,
Barney
[0] https://github.com/python/cpython/pull/18909#discussion_r392416154 [1] https://bugs.python.org/issue39950#msg365275
On Wed, 11 Mar 2020 at 17:31, Brett Cannon <brett@python.org> wrote:
On Wed, 11 Mar 2020 11:17:22 +0000 Barney Gale barney.gale@gmail.com wrote:
Hi, Pathlib's symlink_to() and link_to() methods have different argument orders, so: a.symlink_to(b) # Creates a symlink from A to B a.link_to(b) # Creates a hard link from B to A
I don't think link_to() was intended to be implemented this way, as
Antoine Pitrou wrote: the
docs say "Create a hard link pointing to a path named target.". It's also inconsistent with everything else in pathlib, most obviously symlink_to(). Bug report here: https://bugs.python.org/issue39291 This /really/ irks me. Apparently it's too late to fix link_to(), so I'd like to suggest we add a new hardlink_to() method that matches the symlink_to() argument order. link_to() then becomes deprecated/undocumented. I think that's a good idea.
+1 from me as well; new method and deprecate the old one.
Regards Antoine.
Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-leave@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/EID35RFJ... Code of Conduct: http://python.org/psf/codeofconduct/