./devel/py-pathspec, Utility library for gitignore style pattern matching of file paths

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 0.12.1, Package name: py311-pathspec-0.12.1, Maintainer: pkgsrc-users

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.


Required to run:
[devel/py-setuptools] [lang/python37]

Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 49.847 KB

Version history: (Expand)


CVS history: (Expand)


   2023-12-11 12:01:45 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-pathspec: updated to 0.12.1

0.12.1 (2023-12-10)

Bug fixes:
- PathSpec.match_file() returns None since 0.12.0.
   2023-12-11 10:59:52 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
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
   2023-07-30 09:56:50 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-pathspec: updated to 0.11.2

0.11.2 (2023-07-28)

New features:
- match_files with negated path spec. `pathspec.PathSpec.match_*()` now have a \ 
`negate` parameter to make using *.gitignore* logic easier and more efficient.

Bug fixes:
- Add edge case: patterns that end with an escaped space
- Negate with caret symbol as with the exclamation mark.
   2023-03-15 13:58:51 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-pathspec: updated to 0.11.1

0.11.1 (2023-03-14)

Bug fixes:
- Include directory should override exclude file.

Improvements:
- Fix partially unknown PathLike type.
- Convert `os.PathLike` to a string properly using `os.fspath`.
   2023-03-09 08:41:18 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-pathspec: updated to 0.11.0

0.11.0

Major changes:
- Changed build backend to `flit_core.buildapi`_ from `setuptools.build_meta`_. \ 
Building with `setuptools` through `setup.py` is still supported for \ 
distributions that need it.

Improvements:
- Please consider switching the build-system to flit_core to ease setuptools \ 
bootstrap.
   2022-12-12 14:44:59 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
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.
   2022-11-13 13:30:45 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-pathspec: updated to 0.10.2

0.10.2 (2022-11-12)
-------------------
Bug fixes:
- Fix failing tests on Windows.
- Type hint on *root* parameter on `pathspec.pathspec.PathSpec.match_tree_entries()`.
- Type hint on *root* parameter on `pathspec.pathspec.PathSpec.match_tree_files()`.
- Type hint on *root* parameter on `pathspec.util.iter_tree_entries()`.
- Type hint on *root* parameter on `pathspec.util.iter_tree_files()`.
- IndexError with my .gitignore file when trying to build a Python package.
   2022-09-14 12:31:36 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
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.