Metadata-Version: 1.1
Name: pathmatch
Version: 0.1.5
Summary: Path matching utilities
Home-page: https://github.com/demurgos/py-pathmatch
Author: Charles Samborski
Author-email: demurgos.net@gmail.com
License: MIT License
Download-URL: https://github.com/demurgos/py-pathmatch/tarball/v0.1.5
Description: Pathmatch
        =========
        
        Python implementation of ``git``'s ``wildmatch`` and `POSIX.1-2008 <http://pubs.opengroup.org/onlinepubs/9699919799/>`_ ``fnmatch``.
        
        The aim of this package is to provide a file matching module complying with the POSIX standard and
        allow compatibility with ``git``.
        
        Example
        -------
        
        .. code:: python
        
            from pathmatch import wildmatch
        
            # Pattern matching auto-generated test files (extension .pyc, .pyo or .pyd inside tests/)
            pattern = u'tests/**/*.py[cod]'
        
            # Match single files:
            wildmatch.match(pattern, u'tests/auto.pyc')  # True
            wildmatch.match(pattern, u'auto.pyc')  # False
        
            # Filter a collection:
            files = [
                u'tests/deep/auto.pyd',
                u'tests/module.py',
                u'package/auto.pyc',
                u'tests/auto.pyo'
            ]
            list(wildmatch.filter(pattern, files))  # [u'tests/deep/auto.pyd', u'tests/auto.pyo']
        
            # Compile a pattern
            compiled = wildmatch.WildmatchPattern(pattern)
        
            compiled.match(u'tests/')  # False
        
        
        Features
        --------
        
        wildmatch support
        ~~~~~~~~~~~~~~~~~
        
        Currently, the following ``wildmatch`` features are supported:
        
        - Wildstar ``**`` operator and associated semantics (``/`` requires a literal match)
        - Literal matching
        - Question mark ``?`` (any character) and asterisk ``*`` (any string) operators
        - Bracket expressions ``[abc]`` (character alternatives)
          - Negation (supports both ``^`` and ``!`` meta-characters)
          - Range expressions ``a-z``
          - Collation Symbol ``[.ch.]``
          - Equivalence classes syntax ``[=e=]``, but fallback to collation symbol semantics
        
        Limitations:
        
        - ``case_fold`` (case insensitive) option is not supported
        - ``period`` (require literal match for leading period) option is not supported
        - Negated bracket expression with multi-character collating elements are not supported
        - Character classes ``[:alpha:]`` for bracket expressions are not supported
        - Exclusion of ``/`` from bracket expressions (including negated ones) is not performed.
        
        **Contributions are welcomed**
        
        See ``test_wildmatch.py`` for more details.
        
        fnmatch support
        ~~~~~~~~~~~~~~~
        
        The dedicated ``fnmatch`` module is not yet configured (this should just be a subset of wildmatch).
        
        References:
        -----------
        
        - `fnmatch <http://pubs.opengroup.org/onlinepubs/9699919799/functions/fnmatch.html>`_, see  also `pattern matching <http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_13>`_
        - `wildmatch C implementation for git <https://github.com/git/git/blob/master/wildmatch.c>`_
        - `wildmatch C implementation (alternative) <https://github.com/davvid/wildmatch/blob/master/wildmatch/wildmatch.c>`_
        - `wildmatch Javascript implementation <https://github.com/vmeurisse/wildmatch/blob/master/src/wildmatch.js>`_
        
        License
        -------
        
        MIT License, Copyright (c) 2016 Charles Samborski
        
Keywords: fnmatch,wildmatch,gitignore
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: Utilities
