You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
assignee=Noneclosed_at=<Date2016-10-06.11:09:54.441>created_at=<Date2016-06-05.16:58:05.418>labels= ['type-bug', 'library']
title='os.fspath() should not use repr() on error'updated_at=<Date2016-10-06.11:09:54.439>user='https://github.com/JelleZijlstra'
This is behaviour introduced by bpo-25548, it would make sense to me to discuss this problem there if you think it's necessary. repr in error messages has been a standard approach in Python for a very long time, however.
No, that issue just adds the address to the repr() of types. It is not normal to use repr for type objects in error messages:
>>> int(None)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
>>> open(None, 0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: open() argument 2 must be str, not int
>>> os.fspath(None)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: expected str, bytes or os.PathLike object, not <class 'NoneType' at 0x1086bb638>
>>> import os
>>> os.fspath(None)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: expected str, bytes or os.PathLike object, not NoneType
Activity
JelleZijlstra commentedon Jun 5, 2016
The current implementation of os.fspath() outputs something like this if you call os.fspath(0):
expected str, bytes or os.PathLike object, not <class 'int' at 0x10a3f3e50>
This patch changes the output to:
expected str, bytes or os.PathLike object, not int
SilentGhost commentedon Jun 6, 2016
This is behaviour introduced by bpo-25548, it would make sense to me to discuss this problem there if you think it's necessary. repr in error messages has been a standard approach in Python for a very long time, however.
JelleZijlstra commentedon Jun 6, 2016
No, that issue just adds the address to the repr() of types. It is not normal to use repr for type objects in error messages:
berkerpeksag commentedon Oct 6, 2016
This has already been fixed in ea7b6a7827a4:
>>> import os >>> os.fspath(None) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: expected str, bytes or os.PathLike object, not NoneType