pathmatch 0.2.2

Last updated:

0 purchases

pathmatch 0.2.2 Image
pathmatch 0.2.2 Images
Add to Cart

Description:

pathmatch 0.2.2

Python implementation of git’s wildmatch and POSIX.1-2008 fnmatch.
The aim of this package is to provide a file matching module complying with the POSIX standard and
allow compatibility with git.

Example
from pathmatch import wildmatch

# Pattern matching auto-generated test files (extension .pyc, .pyo or .pyd inside tests/)
pattern = u'tests/**/*.py[cod]'

# Match single files:
wildmatch.match(pattern, u'tests/auto.pyc') # True
wildmatch.match(pattern, u'auto.pyc') # False

# Filter a collection:
files = [
u'tests/deep/auto.pyd',
u'tests/module.py',
u'package/auto.pyc',
u'tests/auto.pyo'
]
list(wildmatch.filter(pattern, files)) # [u'tests/deep/auto.pyd', u'tests/auto.pyo']

# Compile a pattern
compiled = wildmatch.WildmatchPattern(pattern)

compiled.match(u'tests/') # False


Features

wildmatch support
Currently, the following wildmatch features are supported:

Wildstar ** operator and associated semantics (/ requires a literal match)
Literal matching
Question mark ? (any character) and asterisk * (any string) operators
Bracket expressions [abc] (character alternatives)

Bracket expression features:

Negation (supports both ^ and ! meta-characters)
Range expressions a-z
Collation Symbol [.ch.]
Equivalence classes syntax [=e=], but fallback to collation symbol semantics
Supports the path_name flag to exclude / (which requires a literal match)

See test_wildmatch.py for more details.
Limitations:

case_fold (case insensitive) option is not supported
period (require literal match for leading period) option is not supported
Negated bracket expression with multi-character collating elements are not supported
Character classes [:alpha:] for bracket expressions are not supported

Contributions are welcomed


fnmatch support
The dedicated fnmatch module is not yet configured (this should just be a subset of wildmatch).



Contributing
Tests
You can execute the tests with the following command:
python -m unittest discover -s . -p test*.py


References:

fnmatch, see also pattern matching
wildmatch C implementation for git
wildmatch C implementation (alternative)
wildmatch Javascript implementation



License
MIT License, Copyright (c) 2016 Charles Samborski

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.