Skip to content

Repository files navigation

wildcard

This library is a fork of fnmatch (https://docs.python.org/2/library/fnmatch.html) to implement **

PypiDownloads

All documentation is identical to fnmatch except * , * is now ** and * only affects the particular directory

https://docs.python.org/2/library/fnmatch.html

Install

pip install pywildcard

Link pypi: https://pypi.python.org/pypi/pywildcard

Examples

importpywildcarddirs= ['hello/world.py', 'hello/world.pyc', 'hello/world/other/folder/example.py']
pywildcard.filter(dirs, 'hello/*')
# ['hello/world.py', 'hello/world.pyc']pywildcard.filter(dirs, 'hello/*.py')
# ['hello/world.py']pywildcard.filter(dirs, 'hello/**')
# ['hello/world.py', 'hello/world.pyc', 'hello/world/other/folder/example.py']pywildcard.filter(dirs, 'hello/**.py')
# ['hello/world.py', 'hello/world/other/folder/example.py']

Diffs fnmatch & pywildcard

fnmatch

importreimportfnmatchurls= ['example/l1/l2/test3-1.py',
'example/l1/test2-1.py',
'example/l1/test2-2.py',
'example/l1/l2/l3/test4-1.py']
regex=fnmatch.translate('example/*')
# 'example\\/.*\\Z(?ms)'re.findall(regex, "\n".join(urls))
# return ['example/l1/l2/test3-1.py\nexample/l1/test2-1.py\nexample/l1/test2-2.py\nexample/l1/l2/l3/test4-1.py']

pywildcard

importreimportpywildcardurls= ['example/l1/l2/test3-1.py',
'example/l1/test2-1.py',
'example/l1/test2-2.py',
'example/l1/l2/l3/test4-1.py']
regex=pywildcard.translate('example/**')
# 'example/.*?$(?ms)'re.findall(regex, "\n".join(urls))
# return ['example/l1/l2/test3-1.py',# 'example/l1/test2-1.py',# 'example/l1/test2-2.py',# 'example/l1/l2/l3/test4-1.py']

Running the unit tests

# Check out the git repository.
git clone git@github.com:agalera/python-wildcard.git
# Enter the directory.cd python-wildcard
# Install pytest if you have not done already.
pip install pytest
# Run the tests
pytest

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages