1.8 KiB
kpmatch - Path patterns
Pattern Syntax
Path patterns should always use forward slashes / between segments.
The actual separator used when matching paths depends on the system.
A path segment containing two asterisks /**/ matches zero, one or more
segments.
A single asterisk * matches zero, one or more characters except a path
separator.
A question mark ? matches exactly one character unless it's a path
separator.
Square brackets [ ] can match one of the characters between the brackets.
If the first character is an exclamation point [! ], it will match one
character that does NOT appear between the brackets.
Curly braces { , } can match one of the sub-expressions separated by commas.
API
Function kpmatch.kpmatch(path: str | PathLike[str], pattern: str) -> bool
Method kpmatch.Pattern.match(path: str | PathLike[str]) -> bool
Tests if a path matches a pattern.
- Parameters
-
path — A relative or absolute file path.
pattern — A path pattern (see above for the syntax of patterns). - Returns
- True if the path matches the pattern.
function kpmatch.specificity(pattern: str) -> float
property kpmatch.Pattern.specificity: bool
Computes the specificity of a pattern. The higher the number, the more specific it is. :param pattern: The path pattern to evaluate. :return: A positive integer.
def compile(pattern: str) -> Pattern
Compiles a pattern into a Pattern object that can be reused multiple times. :param pattern: The path pattern to compile.
def is_valid_pattern(pattern: str) -> bool
Verifies the syntax of a pattern. :param pattern: The path pattern to check. :return: True if the pattern is well-formed.