head	1.7;
access;
symbols
	pkgsrc-2026Q1:1.7.0.2
	pkgsrc-2026Q1-base:1.7
	pkgsrc-2025Q4:1.6.0.8
	pkgsrc-2025Q4-base:1.6
	pkgsrc-2025Q3:1.6.0.6
	pkgsrc-2025Q3-base:1.6
	pkgsrc-2025Q2:1.6.0.4
	pkgsrc-2025Q2-base:1.6
	pkgsrc-2025Q1:1.6.0.2
	pkgsrc-2025Q1-base:1.6
	pkgsrc-2024Q4:1.5.0.10
	pkgsrc-2024Q4-base:1.5
	pkgsrc-2024Q3:1.5.0.8
	pkgsrc-2024Q3-base:1.5
	pkgsrc-2024Q2:1.5.0.6
	pkgsrc-2024Q2-base:1.5
	pkgsrc-2024Q1:1.5.0.4
	pkgsrc-2024Q1-base:1.5
	pkgsrc-2023Q4:1.5.0.2
	pkgsrc-2023Q4-base:1.5
	pkgsrc-2023Q3:1.4.0.8
	pkgsrc-2023Q3-base:1.4
	pkgsrc-2023Q2:1.4.0.6
	pkgsrc-2023Q2-base:1.4
	pkgsrc-2023Q1:1.4.0.4
	pkgsrc-2023Q1-base:1.4
	pkgsrc-2022Q4:1.4.0.2
	pkgsrc-2022Q4-base:1.4
	pkgsrc-2022Q3:1.3.0.2
	pkgsrc-2022Q3-base:1.3
	pkgsrc-2022Q2:1.2.0.8
	pkgsrc-2022Q2-base:1.2
	pkgsrc-2022Q1:1.2.0.6
	pkgsrc-2022Q1-base:1.2
	pkgsrc-2021Q4:1.2.0.4
	pkgsrc-2021Q4-base:1.2
	pkgsrc-2021Q3:1.2.0.2
	pkgsrc-2021Q3-base:1.2
	pkgsrc-2021Q2:1.1.0.32
	pkgsrc-2021Q2-base:1.1
	pkgsrc-2021Q1:1.1.0.30
	pkgsrc-2021Q1-base:1.1
	pkgsrc-2020Q4:1.1.0.28
	pkgsrc-2020Q4-base:1.1
	pkgsrc-2020Q3:1.1.0.26
	pkgsrc-2020Q3-base:1.1
	pkgsrc-2020Q2:1.1.0.22
	pkgsrc-2020Q2-base:1.1
	pkgsrc-2020Q1:1.1.0.2
	pkgsrc-2020Q1-base:1.1
	pkgsrc-2019Q4:1.1.0.24
	pkgsrc-2019Q4-base:1.1
	pkgsrc-2019Q3:1.1.0.20
	pkgsrc-2019Q3-base:1.1
	pkgsrc-2019Q2:1.1.0.18
	pkgsrc-2019Q2-base:1.1
	pkgsrc-2019Q1:1.1.0.16
	pkgsrc-2019Q1-base:1.1
	pkgsrc-2018Q4:1.1.0.14
	pkgsrc-2018Q4-base:1.1
	pkgsrc-2018Q3:1.1.0.12
	pkgsrc-2018Q3-base:1.1
	pkgsrc-2018Q2:1.1.0.10
	pkgsrc-2018Q2-base:1.1
	pkgsrc-2018Q1:1.1.0.8
	pkgsrc-2018Q1-base:1.1
	pkgsrc-2017Q4:1.1.0.6
	pkgsrc-2017Q4-base:1.1
	pkgsrc-2017Q3:1.1.0.4
	pkgsrc-2017Q3-base:1.1;
locks; strict;
comment	@# @;


1.7
date	2026.01.09.14.03.43;	author adam;	state Exp;
branches;
next	1.6;
commitid	YHrA6k92X3VxWIpG;

1.6
date	2025.02.23.18.27.27;	author wiz;	state Exp;
branches;
next	1.5;
commitid	Rlm78MvEYLHSGCKF;

1.5
date	2023.12.11.09.59.52;	author wiz;	state Exp;
branches;
next	1.4;
commitid	viUIjkc4L0tF12QE;

1.4
date	2022.12.12.13.44.59;	author adam;	state Exp;
branches;
next	1.3;
commitid	GF59qAQ5lum8Yg5E;

1.3
date	2022.09.14.10.31.36;	author adam;	state Exp;
branches;
next	1.2;
commitid	TJu3l88TFoXYKOTD;

1.2
date	2021.07.19.19.50.10;	author adam;	state Exp;
branches;
next	1.1;
commitid	Zec1KsXhlfrQpD1D;

1.1
date	2017.07.06.11.11.19;	author adam;	state Exp;
branches;
next	;
commitid	sg31TBgbIWIvV9Yz;


desc
@@


1.7
log
@py-pathspec: updated to 1.0.2

1.0.2 (2026-01-07)

Bug fixes:

- Type hint `collections.abc.Callable` does not properly replace `typing.Callable` until Python 3.9.2.


1.0.1 (2026-01-06)

Bug fixes:

- `Issue 100`_: ValueError(f"{patterns=!r} cannot be empty.") when using black.


1.0.0 (2026-01-05)

Major changes:

- `Issue 91`_: Dropped support of EoL Python 3.8.
- Added concept of backends to allow for faster regular expression matching. The backend can be controlled using the `backend` argument to `PathSpec()`, `PathSpec.from_lines()`, `GitIgnoreSpec()`, and `GitIgnoreSpec.from_lines()`.
- Renamed "gitwildmatch" pattern back to "gitignore". The "gitignore" pattern behaves slightly differently when used with `PathSpec` (*gitignore* as documented) than with `GitIgnoreSpec` (replicates *Git*'s edge cases).

API changes:

- Breaking: protected method `pathspec.pathspec.PathSpec._match_file()` (with a leading underscore) has been removed and replaced by backends. This does not affect normal usage of `PathSpec` or `GitIgnoreSpec`. Only custom subclasses will be affected. If this breaks your usage, let me know by `opening an issue <https://github.com/cpburnz/python-pathspec/issues>`_.
- Deprecated: "gitwildmatch" is now an alias for "gitignore".
- Deprecated: `pathspec.patterns.GitWildMatchPattern` is now an alias for `pathspec.patterns.gitignore.spec.GitIgnoreSpecPattern`.
- Deprecated: `pathspec.patterns.gitwildmatch` module has been replaced by the `pathspec.patterns.gitignore` package.
- Deprecated: `pathspec.patterns.gitwildmatch.GitWildMatchPattern` is now an alias for `pathspec.patterns.gitignore.spec.GitIgnoreSpecPattern`.
- Deprecated: `pathspec.patterns.gitwildmatch.GitWildMatchPatternError` is now an alias for `pathspec.patterns.gitignore.GitIgnorePatternError`.
- Removed: `pathspec.patterns.gitwildmatch.GitIgnorePattern` has been deprecated since v0.4 (2016-07-15).
- Signature of method `pathspec.pattern.RegexPattern.match_file()` has been changed from `def match_file(self, file: str) -> RegexMatchResult | None` to `def match_file(self, file: AnyStr) -> RegexMatchResult | None` to reflect usage.
- Signature of class method `pathspec.pattern.RegexPattern.pattern_to_regex()` has been changed from `def pattern_to_regex(cls, pattern: str) -> tuple[str, bool]` to `def pattern_to_regex(cls, pattern: AnyStr) -> tuple[AnyStr | None, bool | None]` to reflect usage and documentation.

New features:

- Added optional "hyperscan" backend using `hyperscan`_ library. It will automatically be used when installed. This dependency can be installed with ``pip install 'pathspec[hyperscan]'``.
- Added optional "re2" backend using the `google-re2`_ library. It will automatically be used when installed. This dependency can be installed with ``pip install 'pathspec[re2]'``.
- Added optional dependency on `typing-extensions`_ library to improve some type hints.

Bug fixes:

- `Issue 93`_: Do not remove leading spaces.
- `Issue 95`_: Matching for files inside folder does not seem to behave like .gitignore's.
- `Issue 98`_: UnboundLocalError in RegexPattern when initialized with `pattern=None`.
- Type hint on return value of `pathspec.pattern.RegexPattern.match_file()` to match documentation.

Improvements:

- Mark Python 3.13 and 3.14 as supported.
- No-op patterns are now filtered out when matching files, slightly improving performance.
- Fix performance regression in `iter_tree_files()` from v0.10.
@
text
@@@comment $NetBSD: PLIST,v 1.6 2025/02/23 18:27:27 wiz Exp $
${PYSITELIB}/${WHEEL_INFODIR}/METADATA
${PYSITELIB}/${WHEEL_INFODIR}/RECORD
${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENSE
${PYSITELIB}/pathspec/__init__.py
${PYSITELIB}/pathspec/__init__.pyc
${PYSITELIB}/pathspec/__init__.pyo
${PYSITELIB}/pathspec/_backends/__init__.py
${PYSITELIB}/pathspec/_backends/__init__.pyc
${PYSITELIB}/pathspec/_backends/__init__.pyo
${PYSITELIB}/pathspec/_backends/_utils.py
${PYSITELIB}/pathspec/_backends/_utils.pyc
${PYSITELIB}/pathspec/_backends/_utils.pyo
${PYSITELIB}/pathspec/_backends/agg.py
${PYSITELIB}/pathspec/_backends/agg.pyc
${PYSITELIB}/pathspec/_backends/agg.pyo
${PYSITELIB}/pathspec/_backends/hyperscan/__init__.py
${PYSITELIB}/pathspec/_backends/hyperscan/__init__.pyc
${PYSITELIB}/pathspec/_backends/hyperscan/__init__.pyo
${PYSITELIB}/pathspec/_backends/hyperscan/_base.py
${PYSITELIB}/pathspec/_backends/hyperscan/_base.pyc
${PYSITELIB}/pathspec/_backends/hyperscan/_base.pyo
${PYSITELIB}/pathspec/_backends/hyperscan/base.py
${PYSITELIB}/pathspec/_backends/hyperscan/base.pyc
${PYSITELIB}/pathspec/_backends/hyperscan/base.pyo
${PYSITELIB}/pathspec/_backends/hyperscan/gitignore.py
${PYSITELIB}/pathspec/_backends/hyperscan/gitignore.pyc
${PYSITELIB}/pathspec/_backends/hyperscan/gitignore.pyo
${PYSITELIB}/pathspec/_backends/hyperscan/pathspec.py
${PYSITELIB}/pathspec/_backends/hyperscan/pathspec.pyc
${PYSITELIB}/pathspec/_backends/hyperscan/pathspec.pyo
${PYSITELIB}/pathspec/_backends/re2/__init__.py
${PYSITELIB}/pathspec/_backends/re2/__init__.pyc
${PYSITELIB}/pathspec/_backends/re2/__init__.pyo
${PYSITELIB}/pathspec/_backends/re2/_base.py
${PYSITELIB}/pathspec/_backends/re2/_base.pyc
${PYSITELIB}/pathspec/_backends/re2/_base.pyo
${PYSITELIB}/pathspec/_backends/re2/base.py
${PYSITELIB}/pathspec/_backends/re2/base.pyc
${PYSITELIB}/pathspec/_backends/re2/base.pyo
${PYSITELIB}/pathspec/_backends/re2/gitignore.py
${PYSITELIB}/pathspec/_backends/re2/gitignore.pyc
${PYSITELIB}/pathspec/_backends/re2/gitignore.pyo
${PYSITELIB}/pathspec/_backends/re2/pathspec.py
${PYSITELIB}/pathspec/_backends/re2/pathspec.pyc
${PYSITELIB}/pathspec/_backends/re2/pathspec.pyo
${PYSITELIB}/pathspec/_backends/simple/__init__.py
${PYSITELIB}/pathspec/_backends/simple/__init__.pyc
${PYSITELIB}/pathspec/_backends/simple/__init__.pyo
${PYSITELIB}/pathspec/_backends/simple/gitignore.py
${PYSITELIB}/pathspec/_backends/simple/gitignore.pyc
${PYSITELIB}/pathspec/_backends/simple/gitignore.pyo
${PYSITELIB}/pathspec/_backends/simple/pathspec.py
${PYSITELIB}/pathspec/_backends/simple/pathspec.pyc
${PYSITELIB}/pathspec/_backends/simple/pathspec.pyo
${PYSITELIB}/pathspec/_meta.py
${PYSITELIB}/pathspec/_meta.pyc
${PYSITELIB}/pathspec/_meta.pyo
${PYSITELIB}/pathspec/_typing.py
${PYSITELIB}/pathspec/_typing.pyc
${PYSITELIB}/pathspec/_typing.pyo
${PYSITELIB}/pathspec/_version.py
${PYSITELIB}/pathspec/_version.pyc
${PYSITELIB}/pathspec/_version.pyo
${PYSITELIB}/pathspec/backend.py
${PYSITELIB}/pathspec/backend.pyc
${PYSITELIB}/pathspec/backend.pyo
${PYSITELIB}/pathspec/gitignore.py
${PYSITELIB}/pathspec/gitignore.pyc
${PYSITELIB}/pathspec/gitignore.pyo
${PYSITELIB}/pathspec/pathspec.py
${PYSITELIB}/pathspec/pathspec.pyc
${PYSITELIB}/pathspec/pathspec.pyo
${PYSITELIB}/pathspec/pattern.py
${PYSITELIB}/pathspec/pattern.pyc
${PYSITELIB}/pathspec/pattern.pyo
${PYSITELIB}/pathspec/patterns/__init__.py
${PYSITELIB}/pathspec/patterns/__init__.pyc
${PYSITELIB}/pathspec/patterns/__init__.pyo
${PYSITELIB}/pathspec/patterns/gitignore/__init__.py
${PYSITELIB}/pathspec/patterns/gitignore/__init__.pyc
${PYSITELIB}/pathspec/patterns/gitignore/__init__.pyo
${PYSITELIB}/pathspec/patterns/gitignore/base.py
${PYSITELIB}/pathspec/patterns/gitignore/base.pyc
${PYSITELIB}/pathspec/patterns/gitignore/base.pyo
${PYSITELIB}/pathspec/patterns/gitignore/basic.py
${PYSITELIB}/pathspec/patterns/gitignore/basic.pyc
${PYSITELIB}/pathspec/patterns/gitignore/basic.pyo
${PYSITELIB}/pathspec/patterns/gitignore/spec.py
${PYSITELIB}/pathspec/patterns/gitignore/spec.pyc
${PYSITELIB}/pathspec/patterns/gitignore/spec.pyo
${PYSITELIB}/pathspec/patterns/gitwildmatch.py
${PYSITELIB}/pathspec/patterns/gitwildmatch.pyc
${PYSITELIB}/pathspec/patterns/gitwildmatch.pyo
${PYSITELIB}/pathspec/py.typed
${PYSITELIB}/pathspec/util.py
${PYSITELIB}/pathspec/util.pyc
${PYSITELIB}/pathspec/util.pyo
@


1.6
log
@py-pathspec: adapt for flit_core 3.11

Bump PKGREVISION.
@
text
@d1 1
a1 1
@@comment $NetBSD$
d9 48
d60 9
d81 12
@


1.5
log
@py-pathspec: update to 0.12.0.

0.12.0 (2023-12-09)
-------------------

Major changes:

- Dropped support of EOL Python 3.7. See `Pull #82`_.


API changes:

- Signature of protected method `pathspec.pathspec.PathSpec._match_file()` has been changed from `def _match_file(patterns: Iterable[Pattern], file: str) -> bool` to `def _match_file(patterns: Iterable[Tuple[int, Pattern]], file: str) -> Tuple[Optional[bool], Optional[int]]`.

New features:

- Added `pathspec.pathspec.PathSpec.check_*()` methods. These methods behave similarly to `.match_*()` but return additional information in the `pathspec.util.CheckResult` objects (e.g., `CheckResult.index` indicates the index of the last pattern that matched the file).
- Added `pathspec.pattern.RegexPattern.pattern` attribute which stores the original, uncompiled pattern.

Bug fixes:

- `Issue #81`_: GitIgnoreSpec behaviors differ from git.
- `Pull #83`_: Fix ReadTheDocs builds.

Improvements:

- Mark Python 3.12 as supported. See `Pull #82`_.
- Improve test debugging.
- Improve type hint on *on_error* parameter on `pathspec.pathspec.PathSpec.match_tree_entries()`.
- Improve type hint on *on_error* parameter on `pathspec.util.iter_tree_entries()`.


.. _`Issue #81`: https://github.com/cpburnz/python-pathspec/issues/81
.. _`Pull #82`: https://github.com/cpburnz/python-pathspec/pull/82
.. _`Pull #83`: https://github.com/cpburnz/python-pathspec/pull/83
@
text
@a1 1
${PYSITELIB}/${WHEEL_INFODIR}/LICENSE
d5 1
@


1.4
log
@py-pathspec: updated to 0.10.3

0.10.3 (2022-12-09)
-------------------

New features:
- Added utility function `pathspec.util.append_dir_sep()` to aid in distinguishing between directories and files on the file-system.

Bug fixes:
- Package not marked as py.typed.
- Exports are considered private.
- 'Self' string literal type is Unknown in pyright.

Improvements:
- Checking directories via match_file() does not work on Path objects.
@
text
@d1 5
a5 5
@@comment $NetBSD: PLIST,v 1.3 2022/09/14 10:31:36 adam Exp $
${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
${PYSITELIB}/${EGG_INFODIR}/top_level.txt
@


1.3
log
@py-pathspec: updated to 0.10.1

0.10.1 (2022-09-02)
-------------------

Bug fixes:

- Fix documentation on `pathspec.pattern.RegexPattern.match_file()`.
- Remove redundant wheel dep from pyproject.toml.
- Dist failure for Fedora, CentOS, EPEL.
- Since version 0.10.0 pure wildcard does not work in some cases.

Improvements:

- Restore support for legacy installations using `setup.py`.


0.10.0 (2022-08-30)
-------------------

Major changes:

- Dropped support of EOL Python 2.7, 3.5, 3.6.
- The *gitwildmatch* pattern `dir/*` is now handled the same as `dir/`. This means `dir/*` will now match all descendants rather than only direct children.
- Added `pathspec.GitIgnoreSpec` class (see new features).
- Changed build system to `pyproject.toml`_ and build backend to `setuptools.build_meta`_ which may have unforeseen consequences.
- Renamed GitHub project from `python-path-specification`_ to `python-pathspec`_.

API changes:

- Deprecated: `pathspec.util.match_files()` is an old function no longer used.
- Deprecated: `pathspec.match_files()` is an old function no longer used.
- Deprecated: `pathspec.util.normalize_files()` is no longer used.
- Deprecated: `pathspec.util.iter_tree()` is an alias for `pathspec.util.iter_tree_files()`.
- Deprecated: `pathspec.iter_tree()` is an alias for `pathspec.util.iter_tree_files()`.
- Deprecated: `pathspec.pattern.Pattern.match()` is no longer used. Use or implement
  `pathspec.pattern.Pattern.match_file()`.

New features:

- Added class `pathspec.gitignore.GitIgnoreSpec` (with alias `pathspec.GitIgnoreSpec`) to implement *gitignore* behavior not possible with standard `PathSpec` class. The particular *gitignore* behavior implemented is prioritizing patterns matching the file directly over matching an ancestor directory.

Bug fixes:

- Files inside an ignored sub-directory are not matched.
- Incorrectly (?) matches files inside directories that do match.
- Refactor deprecated unittest aliases for Python 3.11 compatibility.
- Symlink pathspec_meta.py breaks Windows.
- test_util.py uses os.symlink which can fail on Windows.
- Backslashes at start of pattern not handled correctly.
- pyproject.toml: include subpackages in setuptools config
- `!` doesn't exclude files in directories if the pattern doesn't have a trailing slash.

Improvements:

- Support Python 3.10, 3.11.
- Modernize code to Python 3.7.
- match_files() is not a pure generator function, and it impacts tree_*() gravely.
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.2 2021/07/19 19:50:10 adam Exp $
d27 1
@


1.2
log
@py-pathspec: updated to 0.9.0

0.9.0

Raise GitWildMatchPatternError for invalid git patterns.
Fix for duplicate leading double-asterisk, and edge cases.
Fix matching absolute paths.
API change: util.normalize_files() now returns a Dict[str, List[pathlike]] instead of a Dict[str, pathlike].
Added type hinting.
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.1 2017/07/06 11:11:19 adam Exp $
d12 3
a14 3
${PYSITELIB}/pathspec/compat.py
${PYSITELIB}/pathspec/compat.pyc
${PYSITELIB}/pathspec/compat.pyo
a26 12
${PYSITELIB}/pathspec/tests/__init__.py
${PYSITELIB}/pathspec/tests/__init__.pyc
${PYSITELIB}/pathspec/tests/__init__.pyo
${PYSITELIB}/pathspec/tests/test_gitwildmatch.py
${PYSITELIB}/pathspec/tests/test_gitwildmatch.pyc
${PYSITELIB}/pathspec/tests/test_gitwildmatch.pyo
${PYSITELIB}/pathspec/tests/test_pathspec.py
${PYSITELIB}/pathspec/tests/test_pathspec.pyc
${PYSITELIB}/pathspec/tests/test_pathspec.pyo
${PYSITELIB}/pathspec/tests/test_util.py
${PYSITELIB}/pathspec/tests/test_util.pyc
${PYSITELIB}/pathspec/tests/test_util.pyo
@


1.1
log
@pathspec is a utility library for pattern matching of file paths. So far this
only includes Git's wildmatch pattern matching which itself is derived from
Rsync's wildmatch. Git uses wildmatch for its gitignore files.
@
text
@d1 1
a1 1
@@comment $NetBSD$
d9 3
@

