A spec-compliant gitignore parser for Python 3.5+
pip install gitignore_parser
Suppose /home/michael/project/.gitignore
contains the following:
__pycache__/
*.py[cod]
Then:
>>> from gitignore_parser import parse_gitignore
>>> matches = parse_gitignore('/home/michael/project/.gitignore')
>>> matches('/home/michael/project/main.py')
False
>>> matches('/home/michael/project/main.pyc')
True
>>> matches('/home/michael/project/dir/main.pyc')
True
>>> matches('/home/michael/project/__pycache__')
True
I couldn't find a good library for doing the above on PyPI. There are
several other libraries, but they don't seem to support all features,
be it the square brackets in *.py[cod]
or top-level paths /...
.
The implementation is based on https://github.com/snark/ignorance/ by Steve Cook.