Skip to main content

Check if a file is ignored by a .zgitignore file, compatible with .gitignore syntax

Project description

zgitignore is a small library to check if a file has been excluded by a .zgitignore file (those are compatible with .gitignore files).

Installation

As simple as it can be via pip:

$ pip install zgitignore

Or direct installation from source:

$ git clone git://github.com/zb3/zgitignore.git
$ cd zgitignore
$ python setup.py install

Usage

import zgitignore

#ZgitIgnore class stores the patterns, optionally takes ignore_case parameter
#by default, it is case sensitive to match .gitignore behaviour
f = zgitignore.ZgitIgnore(['build/', 'dist/', '*egg-info'])

#Patterns ending with / will match folders only:
print('build file ignored?: ', f.is_ignored('build')) #False

#When matching directories, set second parameter to True:
print('build folder ignored?: ', f.is_ignored('build', True)) #True

#It is case sensitive by default:
print('BUILD folder ignored?: ', f.is_ignored('BUILD', True)) #False

#Want it to be case-insensitive? No problem
f = zgitignore.ZgitIgnore(['*pycache*', '*pyc'], True) #second parameter is ignore_case

print('PYCACHE file ignored?', f.is_ignored('PYCACHE')) #True

#You can also add patterns later
ignorefile = zgitignore.ZgitIgnore(ignore_case=True)

try:
    with open('.gitignore', 'r') as f:
        ignorefile.add_patterns(f.read().splitlines())
except:
    pass

#You can start path with ./ or not.
#Paths are normalized to match Unix style paths
print('./a/b/c/d/e ignored?', ignorefile.is_ignored('./a/b/c/d/e'))

Format

zgitignore supports format similar to .gitignore file format. Differences are:

  • ** works everywhere

    ``aaa**ooo``

    Will match aaapotato2000/beeeee/llllll/sdsdooo

  • It can embed custom regex via {}. You can use \} to pass } to regex and \\ to pass \ to regex

    aaa{12(34|56|78)oo(aa|bb|dd)ii}888

    Will match aaa1256oobbii888

    aaa{#[0-9a-f]{3,6\}}888

    Will match aaa#00ffff888

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zgitignore-0.7.tar.gz (5.5 kB view details)

Uploaded Source

File details

Details for the file zgitignore-0.7.tar.gz.

File metadata

  • Download URL: zgitignore-0.7.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for zgitignore-0.7.tar.gz
Algorithm Hash digest
SHA256 58fa7cf05661214401767f86bfe09a6502e9e5eac68923c6ff1feee6bf5c7810
MD5 afd0374a3a760c60f738054643cd2870
BLAKE2b-256 8bf9813b3990c7eae6f7978d784fe9cba76f055605d45447e36b249b4751625b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page