gh-136437: Make several functions in os.path pos-only (#136949)
This commit is contained in:
@@ -47,7 +47,7 @@ try:
|
||||
LOCALE_NAME_INVARIANT as _LOCALE_NAME_INVARIANT,
|
||||
LCMAP_LOWERCASE as _LCMAP_LOWERCASE)
|
||||
|
||||
def normcase(s):
|
||||
def normcase(s, /):
|
||||
"""Normalize case of pathname.
|
||||
|
||||
Makes all characters lowercase and all slashes into backslashes.
|
||||
@@ -66,7 +66,7 @@ try:
|
||||
_LCMAP_LOWERCASE,
|
||||
s.replace('/', '\\'))
|
||||
except ImportError:
|
||||
def normcase(s):
|
||||
def normcase(s, /):
|
||||
"""Normalize case of pathname.
|
||||
|
||||
Makes all characters lowercase and all slashes into backslashes.
|
||||
@@ -77,7 +77,7 @@ except ImportError:
|
||||
return s.replace('/', '\\').lower()
|
||||
|
||||
|
||||
def isabs(s):
|
||||
def isabs(s, /):
|
||||
"""Test whether a path is absolute"""
|
||||
s = os.fspath(s)
|
||||
if isinstance(s, bytes):
|
||||
@@ -96,7 +96,7 @@ def isabs(s):
|
||||
|
||||
|
||||
# Join two (or more) paths.
|
||||
def join(path, *paths):
|
||||
def join(path, /, *paths):
|
||||
path = os.fspath(path)
|
||||
if isinstance(path, bytes):
|
||||
sep = b'\\'
|
||||
@@ -143,7 +143,7 @@ def join(path, *paths):
|
||||
# Split a path in a drive specification (a drive letter followed by a
|
||||
# colon) and the path specification.
|
||||
# It is always true that drivespec + pathspec == p
|
||||
def splitdrive(p):
|
||||
def splitdrive(p, /):
|
||||
"""Split a pathname into drive/UNC sharepoint and relative path specifiers.
|
||||
Returns a 2-tuple (drive_or_unc, path); either part may be empty.
|
||||
|
||||
@@ -169,7 +169,7 @@ def splitdrive(p):
|
||||
try:
|
||||
from nt import _path_splitroot_ex as splitroot
|
||||
except ImportError:
|
||||
def splitroot(p):
|
||||
def splitroot(p, /):
|
||||
"""Split a pathname into drive, root and tail.
|
||||
|
||||
The tail contains anything after the root."""
|
||||
@@ -219,7 +219,7 @@ except ImportError:
|
||||
# join(head, tail) == p holds.
|
||||
# The resulting head won't end in '/' unless it is the root.
|
||||
|
||||
def split(p):
|
||||
def split(p, /):
|
||||
"""Split a pathname.
|
||||
|
||||
Return tuple (head, tail) where tail is everything after the final slash.
|
||||
@@ -240,7 +240,7 @@ def split(p):
|
||||
# pathname component; the root is everything before that.
|
||||
# It is always true that root + ext == p.
|
||||
|
||||
def splitext(p):
|
||||
def splitext(p, /):
|
||||
p = os.fspath(p)
|
||||
if isinstance(p, bytes):
|
||||
return genericpath._splitext(p, b'\\', b'/', b'.')
|
||||
@@ -251,14 +251,14 @@ splitext.__doc__ = genericpath._splitext.__doc__
|
||||
|
||||
# Return the tail (basename) part of a path.
|
||||
|
||||
def basename(p):
|
||||
def basename(p, /):
|
||||
"""Returns the final component of a pathname"""
|
||||
return split(p)[1]
|
||||
|
||||
|
||||
# Return the head (dirname) part of a path.
|
||||
|
||||
def dirname(p):
|
||||
def dirname(p, /):
|
||||
"""Returns the directory component of a pathname"""
|
||||
return split(p)[0]
|
||||
|
||||
@@ -601,7 +601,7 @@ try:
|
||||
from nt import _findfirstfile, _getfinalpathname, readlink as _nt_readlink
|
||||
except ImportError:
|
||||
# realpath is a no-op on systems without _getfinalpathname support.
|
||||
def realpath(path, *, strict=False):
|
||||
def realpath(path, /, *, strict=False):
|
||||
return abspath(path)
|
||||
else:
|
||||
def _readlink_deep(path, ignored_error=OSError):
|
||||
@@ -702,7 +702,7 @@ else:
|
||||
tail = join(name, tail) if tail else name
|
||||
return tail
|
||||
|
||||
def realpath(path, *, strict=False):
|
||||
def realpath(path, /, *, strict=False):
|
||||
path = normpath(path)
|
||||
if isinstance(path, bytes):
|
||||
prefix = b'\\\\?\\'
|
||||
|
||||
Reference in New Issue
Block a user