commit 4f35d15c2e9cea2e82d6e7d9a19687b3cdef21c9274535ff2a077959367aad41 Author: Markéta Machová Date: Fri Jan 16 13:11:35 2026 +0000 update to 1.0.3 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pathspec?expand=0&rev=35 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/pathspec-0.12.1.tar.gz b/pathspec-0.12.1.tar.gz new file mode 100644 index 0000000..fd9108d --- /dev/null +++ b/pathspec-0.12.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 +size 51043 diff --git a/pathspec-1.0.3.tar.gz b/pathspec-1.0.3.tar.gz new file mode 100644 index 0000000..11f25ac --- /dev/null +++ b/pathspec-1.0.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bac5cf97ae2c2876e2d25ebb15078eb04d76e4b98921ee31c6f85ade8b59444d +size 130841 diff --git a/python-pathspec.changes b/python-pathspec.changes new file mode 100644 index 0000000..59ca078 --- /dev/null +++ b/python-pathspec.changes @@ -0,0 +1,322 @@ +------------------------------------------------------------------- +Fri Jan 16 06:46:33 UTC 2026 - Johannes Kastl + +- update to 1.0.3: + * Bug fixes: + - Issue #101: pyright strict errors with pathspec >= 1.0.0. + - Issue #102: No module named 'tomllib'. + * - update to 1.0.2: + * Bug fixes: + - Type hint collections.abc.Callable does not properly replace + typing.Callable until Python 3.9.2. + * - update to 1.0.1: + * Bug fixes: + - Issue #100: ValueError(f"{patterns=!r} cannot be empty.") + when using black. + * - update to 1.0.0: + * 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. + - 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. + +------------------------------------------------------------------- +Tue Jun 3 09:05:14 UTC 2025 - Markéta Machová + +- Convert to pip-based build + +------------------------------------------------------------------- +Tue Dec 12 13:14:15 UTC 2023 - Dirk Müller + +- update to 0.12.1: + * `Issue #84`_: PathSpec.match_file() returns None since + 0.12.0. + * Major changes: + * Dropped support of EOL Python 3.7. See `Pull #82`_. + * API changes: + * Signature of protected method + `pathspec.pathspec.PathSpec._match_file()` (with a leading + underscore) 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]]`. + * 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. + * Mark Python 3.12 as supported. + * 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()`. + +------------------------------------------------------------------- +Thu Sep 7 11:27:28 UTC 2023 - Dirk Müller + +- update to 0.11.2: + * `Issue #80`_: match_files with negated path spec. + `pathspec.PathSpec.match_*()` now have a `negate` parameter + to make using *.gitignore* logic easier and more efficient. + * Add edge case: patterns that end with an escaped + space + * Negate with caret symbol as with the exclamation mark. + +------------------------------------------------------------------- +Fri Apr 21 12:29:07 UTC 2023 - Dirk Müller + +- add sle15_python_module_pythons (jsc#PED-68) + +------------------------------------------------------------------- +Thu Apr 13 22:42:56 UTC 2023 - Matej Cepl + +- Make calling of %{sle15modernpython} optional. + +------------------------------------------------------------------- +Sun Mar 26 19:50:29 UTC 2023 - Dirk Müller + +- update to 0.11.1: + * `Issue #74`_: Include directory should override exclude file. + * `Pull #75`_: Fix partially unknown PathLike type. + * Convert `os.PathLike` to a string properly using `os.fspath`. + * 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. + * `Issue #72`_/`Pull #73`_: Please consider switching the + build-system to flit_core to ease setuptools bootstrap. + +------------------------------------------------------------------- +Tue Dec 13 15:46:35 UTC 2022 - Yogalakshmi Arunachalam + +- Update to version 0.10.3 + * New features: + Added utility function pathspec.util.append_dir_sep() to aid in distinguishing between directories and files on the file-system. See Issue #65. + * Bug fixes: + Issue #66/Pull #67: Package not marked as py.typed. + Issue #68: Exports are considered private. + Issue #70/Pull #71: 'Self' string literal type is Unknown in pyright. + * Improvements: + Issue #65: Checking directories via match_file() does not work on Path objects. + +------------------------------------------------------------------- +Sat Dec 3 19:55:41 UTC 2022 - Yogalakshmi Arunachalam + +- Update to version 0.10.2: + 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(). + * Issue #64: IndexError with my .gitignore file when trying to build a Python package. + Improvements: + * Issue #58: CI: add GitHub Actions test workflow. + +------------------------------------------------------------------- +Mon Sep 12 20:36:41 UTC 2022 - Benoît Monin + +- update to 0.10.1: + * Bug fixes: + + Fix documentation on pathspec.pattern.RegexPattern.match_file(). + + Issue #60: Remove redundant wheel dep from pyproject.toml. + + Issue #61: Dist failure for Fedora, CentOS, EPEL. + + Issue #62: Since version 0.10.0 pure wildcard does not work + in some cases. + * Improvements: + + Restore support for legacy installations using setup.py. See + Issue #61. +- additional changes from 0.10.0: + * Major changes: + + Dropped support of EOL Python 2.7, 3.5, 3.6. See Issue #47 + + The gitwildmatch pattern dir/* is now handled the same as + dir/ + + 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. See Issue #35. + * 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 + * Bug fixes: + + Issue #19: Files inside an ignored sub-directory are not + matched. + + Issue #41: Incorrectly (?) matches files inside directories + that do match. + + Issue #51: Refactor deprecated unittest aliases for Python + 3.11 compatibility. + + Issue #53: Symlink pathspec_meta.py breaks Windows. + + Issue #54: test_util.py uses os.symlink which can fail on + Windows. + + Issue #55: Backslashes at start of pattern not handled + correctly. + + Issue #56: pyproject.toml: include subpackages in setuptools + config + + Issue #57: ! 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. + + Issue #52: match_files() is not a pure generator function, + and it impacts tree_*() gravely. +- add BuildRequires for python >= 3.7 + +------------------------------------------------------------------- +Wed Jan 5 10:29:55 UTC 2022 - Dirk Müller + +- update to 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. + +------------------------------------------------------------------- +Tue Jun 1 07:24:28 UTC 2021 - pgajdos@suse.com + +- %check: use %pyunittest rpm macro + +------------------------------------------------------------------- +Sat Dec 19 10:49:21 UTC 2020 - Dirk Müller + +- update to 0.8.1: + * `Issue #43`_: Add support for addition operator + +------------------------------------------------------------------- +Wed Oct 7 03:51:16 UTC 2020 - John Vandenberg + +- Update to v0.8.0 + * Expose what patterns matched paths. Added `util.detailed_match_files()` + * `match_tree()` doesn't return symlinks + - Add `PathSpec.match_tree_entries` and `util.iter_tree_entries()` to + support directories and symlinks + - API change: `match_tree()` has been renamed to `match_tree_files()` + The old name `match_tree()` is still available as an alias + - API change: `match_tree_files()` now returns symlinks + +------------------------------------------------------------------- +Wed Mar 11 15:51:56 UTC 2020 - Marketa Calabkova + +- update to 0.7.0 + * Add support for Python 3.8, and drop Python 3.4. + * Publish bdist wheel. + +------------------------------------------------------------------- +Thu Oct 10 08:25:51 UTC 2019 - Tomáš Chvátal + +- Update to 0.6.0: + * Issue #24: Drop support for Python 2.6, 3.2, and 3.3. + * Issue #25: Update README.rst. + * Issue #26: Method to escape gitwildmatch. + +------------------------------------------------------------------- +Thu Feb 14 07:08:42 UTC 2019 - John Vandenberg + +- Update to v0.5.9 + * Fixed file system error handling. +- from v0.5.8 + * Improved type checking. + * Created scripts to test Python 2.6 because Tox removed support for it. + * Improved byte string handling in Python 3. + * Handle dangling symlinks. +- from v0.5.7 + * Fix collections deprecation warning. + +------------------------------------------------------------------- +Tue Dec 4 12:51:19 UTC 2018 - Matej Cepl + +- Remove superfluous devel dependency for noarch package + +------------------------------------------------------------------- +Thu May 10 00:06:44 UTC 2018 - toddrme2178@gmail.com + +- Update to 0.5.6 + * Improved unit tests. + * Improved type checking. + * `Issue #20`_: Support current directory prefix. +- Use license tag + +------------------------------------------------------------------- +Wed Jan 17 02:36:25 UTC 2018 - toddrme2178@gmail.com + +- Initial version diff --git a/python-pathspec.spec b/python-pathspec.spec new file mode 100644 index 0000000..77a7360 --- /dev/null +++ b/python-pathspec.spec @@ -0,0 +1,62 @@ +# +# spec file for package python-pathspec +# +# Copyright (c) 2026 SUSE LLC and contributors +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%{?sle15_python_module_pythons} +Name: python-pathspec +Version: 1.0.3 +Release: 0 +Summary: Utility library for gitignore style pattern matching of file paths +License: MPL-2.0 +URL: https://github.com/cpburnz/python-path-specification +Source: https://files.pythonhosted.org/packages/source/p/pathspec/pathspec-%{version}.tar.gz +BuildRequires: %{python_module base >= 3.9} +BuildRequires: %{python_module flit-core} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module wheel} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +BuildArch: noarch +%python_subpackages + +%description +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. + +%prep +%setup -q -n pathspec-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%python_expand %fdupes %{buildroot}%{$python_sitelib} + +%check +%pyunittest discover -v + +%files %{python_files} +%doc CHANGES.rst README.rst +%license LICENSE +%{python_sitelib}/pathspec +%{python_sitelib}/pathspec-%{version}*-info + +%changelog