Metadata-Version: 1.1
Name: zgitignore
Version: 1.0.0
Summary: Check if a file is ignored by a .zgitignore file, compatible with .gitignore syntax
Home-page: https://github.com/zb3/zgitignore
Author: zb3
Author-email: sgv@o2.pl
License: MIT
Description: 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: gitignore exclude pattern
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development
