Skip to content

Latest commit

 

History

History
97 lines (66 loc) · 2.86 KB

README.md

File metadata and controls

97 lines (66 loc) · 2.86 KB

gitignorefile

Black Linux OS X Windows PyPI

A spec-compliant .gitignore parser for Python.

Installation

pip3 install gitignorefile

Usage

gitignorefile.parse()

Parses single .gitignore file. Suppose /home/michael/project/.gitignore contains the following:

__pycache__/
*.py[cod]

Then:

import gitignorefile

matches = gitignorefile.parse("/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

gitignorefile.ignore()

shutil.copytree() ignore function which checks if file is ignored by any .gitignore in the directory tree.

Example:

import shutil
import gitignorefile

shutil.copytree("/source", "/destination", ignore=gitignorefile.ignore())

gitignorefile.ignored()

Checks if file is ignored by any .gitignore in the directory tree.

import gitignorefile

gitignorefile.ignored("/home/michael/project/main.py") # False

gitignorefile.Cache

Caches .gitignore rules discovered in the directory tree.

import gitignorefile

matches = gitignorefile.Cache()
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

Custom ignore file sources

You could override files, that will be used to fetch ignore rules. Default value is [".gitignore", ".git/info/exclude"].

import gitignorefile

matches = gitignorefile.Cache(ignore_names=[".mylovelytoolignore"])
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

Credits