diff options
-rw-r--r-- | Lib/ntpath.py | 14 | ||||
-rw-r--r-- | Lib/posixpath.py | 6 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Library/2019-03-28-21-17-08.bpo-30427.lxzvbw.rst | 2 |
3 files changed, 7 insertions, 15 deletions
diff --git a/Lib/ntpath.py b/Lib/ntpath.py index b5e1d12..f3cfabf 100644 --- a/Lib/ntpath.py +++ b/Lib/ntpath.py @@ -46,16 +46,10 @@ def normcase(s): Makes all characters lowercase and all slashes into backslashes.""" s = os.fspath(s) - try: - if isinstance(s, bytes): - return s.replace(b'/', b'\\').lower() - else: - return s.replace('/', '\\').lower() - except (TypeError, AttributeError): - if not isinstance(s, (bytes, str)): - raise TypeError("normcase() argument must be str or bytes, " - "not %r" % s.__class__.__name__) from None - raise + if isinstance(s, bytes): + return s.replace(b'/', b'\\').lower() + else: + return s.replace('/', '\\').lower() # Return whether a path is absolute. diff --git a/Lib/posixpath.py b/Lib/posixpath.py index 12ab2ea..21ce72f 100644 --- a/Lib/posixpath.py +++ b/Lib/posixpath.py @@ -51,11 +51,7 @@ def _get_sep(path): def normcase(s): """Normalize case of pathname. Has no effect under Posix""" - s = os.fspath(s) - if not isinstance(s, (bytes, str)): - raise TypeError("normcase() argument must be str or bytes, " - "not '{}'".format(s.__class__.__name__)) - return s + return os.fspath(s) # Return whether a path is absolute. diff --git a/Misc/NEWS.d/next/Library/2019-03-28-21-17-08.bpo-30427.lxzvbw.rst b/Misc/NEWS.d/next/Library/2019-03-28-21-17-08.bpo-30427.lxzvbw.rst new file mode 100644 index 0000000..80e7c4a --- /dev/null +++ b/Misc/NEWS.d/next/Library/2019-03-28-21-17-08.bpo-30427.lxzvbw.rst @@ -0,0 +1,2 @@ +``os.path.normcase()`` relies on ``os.fspath()`` to check the type of its argument. Redundant checks have been removed from its ``posixpath.normcase()`` and ``ntpath.normcase()`` implementations. +Patch by Wolfgang Maier. |