New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"pathlib.Path.link_to()" and "pathlib.Path.symlink_to()" have reversed usage #83472
Comments
Python version: Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32 The usage of symlink_to() is link.symlink_to(target) Here is an example: >>> import pathlib
>>> target = pathlib.Path('target.txt')
>>> p1 = pathlib.Path('symlink.txt')
>>> p2 = pathlib.Path('hardlink.txt')
>>> p1.symlink_to(target)
>>> p2.link_to(target) # expected usage
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\Program Files\Python38\lib\pathlib.py", line 1346, in link_to
self._accessor.link_to(self, target)
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'hardlink.txt' -> 'target.txt'
>>> target.link_to(p2) # current usage
>>> Since os.symlink() and os.link() have the same argument order,
it would be nicer if the pathlib has the same argument order too. |
Ahah. Nice catch! Well, it's a pity this got overlooked when we added Path.link_to(). But I'm afraid it's late to change it now, since this has been released, and changing the argument order would break existing code in potentially dangerous ways. Note the original issue where this was added was bpo-26978. |
Closing as won't fix. If you feel strongly about this, I would suggest to bring the discussion on python-dev: https://mail.python.org/mailman3/lists/python-dev.python.org/ |
Per discussion on the mailing list, I'd like to request that this bug be re-opened. https://mail.python.org/archives/list/python-dev@python.org/thread/7QPLYW36ZK6QTW4SV4FI6C343KYWCPAT/ |
Am hesitant on re-opening this. I think it sounds more meaningful to open a new issue for the new Best, On Thu, Mar 12, 2020 at 8:40 PM Barney Gale <report@bugs.python.org> wrote:
-- *"You think you know when you learn, are more sure when you can write, even |
one option to could be to create a hardlink_to() method which is link.hardlink_to(target) and in a few release, deprecate link_to ? :) |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: