Skip to content

Commit e2bb3cb

Browse files
committed
Make Globber arguments keyword-only
1 parent a116d94 commit e2bb3cb

File tree

3 files changed

+20
-10
lines changed

3 files changed

+20
-10
lines changed

Lib/glob.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ class _GlobberBase:
169169
"""Abstract class providing shell-style pattern matching and globbing.
170170
"""
171171

172-
def __init__(self, sep=os.path.sep, case_sensitive=os.name != 'nt',
172+
def __init__(self, *, sep=os.path.sep, case_sensitive=os.name != 'nt',
173173
case_pedantic=False, recursive=False, include_hidden=False):
174174
self.sep = sep
175175
self.case_sensitive = case_sensitive

Lib/pathlib/__init__.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -558,8 +558,10 @@ def full_match(self, pattern, *, case_sensitive=None):
558558
# paths shouldn't match wildcards, so we change it to the empty string.
559559
path = str(self) if self.parts else ''
560560
pattern = str(pattern) if pattern.parts else ''
561-
globber = _StringGlobber(self.parser.sep, case_sensitive,
562-
recursive=True, include_hidden=True)
561+
globber = _StringGlobber(sep=self.parser.sep,
562+
case_sensitive=case_sensitive,
563+
recursive=True,
564+
include_hidden=True)
563565
return globber.compile(pattern)(path) is not None
564566

565567
def match(self, path_pattern, *, case_sensitive=None):
@@ -581,7 +583,8 @@ def match(self, path_pattern, *, case_sensitive=None):
581583
return False
582584
if len(path_parts) > len(pattern_parts) and path_pattern.anchor:
583585
return False
584-
globber = _StringGlobber(self.parser.sep, case_sensitive)
586+
globber = _StringGlobber(sep=self.parser.sep,
587+
case_sensitive=case_sensitive)
585588
for path_part, pattern_part in zip(path_parts, pattern_parts):
586589
match = globber.compile(pattern_part)
587590
if match(path_part) is None:
@@ -850,8 +853,11 @@ def glob(self, pattern, *, case_sensitive=None, recurse_symlinks=False):
850853
case_pedantic = True
851854
parts = self._parse_pattern(pattern)
852855
recursive = True if recurse_symlinks else _no_recurse_symlinks
853-
globber = _StringGlobber(self.parser.sep, case_sensitive, case_pedantic,
854-
recursive, include_hidden=True)
856+
globber = _StringGlobber(sep=self.parser.sep,
857+
case_sensitive=case_sensitive,
858+
case_pedantic=case_pedantic,
859+
recursive=recursive,
860+
include_hidden=True)
855861
select = globber.selector(parts[::-1])
856862
root = str(self)
857863
paths = select(self.parser.join(root, ''))

Lib/pathlib/types.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,10 @@ def full_match(self, pattern):
240240
pattern is matched against the entire path.
241241
"""
242242
case_sensitive = self.parser.normcase('Aa') == 'Aa'
243-
globber = _PathGlobber(self.parser.sep, case_sensitive,
244-
recursive=True, include_hidden=True)
243+
globber = _PathGlobber(sep=self.parser.sep,
244+
case_sensitive=case_sensitive,
245+
recursive=True,
246+
include_hidden=True)
245247
match = globber.compile(pattern, altsep=self.parser.altsep)
246248
return match(vfspath(self)) is not None
247249

@@ -310,8 +312,10 @@ def glob(self, pattern, *, recurse_symlinks=True):
310312
elif not recurse_symlinks:
311313
raise NotImplementedError("recurse_symlinks=False is unsupported")
312314
case_sensitive = self.parser.normcase('Aa') == 'Aa'
313-
globber = _PathGlobber(self.parser.sep, case_sensitive,
314-
recursive=True, include_hidden=True)
315+
globber = _PathGlobber(sep=self.parser.sep,
316+
case_sensitive=case_sensitive,
317+
recursive=True,
318+
include_hidden=True)
315319
select = globber.selector(parts)
316320
return select(self.joinpath(''))
317321

0 commit comments

Comments
 (0)