Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

zgitignore

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

zgitignore

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

  • 1.0.0
  • PyPI
  • Socket score

Maintainers
1

zgitignore

zgitignore is a small library to check if a file has been excluded by a .zgitignore file (those are compatible with .gitignore / .dockerignore 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

.. code:: python

import zgitignore

# ZgitIgnore class stores the patterns, optionally takes two parameters: ignore_case and docker
# by default, it is case sensitive to match .gitignore behaviour
# for .dockerignore compatibility, use docker=True
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, docker=True) # this is compatible with .dockerignore files

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

# You can start paths 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'))

# But by default, parent directories aren't checked recursively
# To check them, use check_parents=True
f = zgitignore.ZgitIgnore(['build/'])

print('build/test ignored?', f.is_ignored('build/test')) # False
print('build/test ignored when check_parents=True?', f.is_ignored('build/test', check_parents=True)) # True

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

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc