Releases: facelessuser/wcmatch
Releases · facelessuser/wcmatch
8.5.2
8.5.1
8.5.1
- FIX: Fix issue with type check failure in
wcmatch.glob
.
8.5
8.5
- NEW: Formally support Python 3.11 (no change).
- NEW: Add support for Python 3.12 (
pathlib
changes). - NEW: Drop Python 3.7 support.
- FIX: Fix handling of current directory when magic and non-magic patterns are mixed in
glob
pattern list.
8.4.1
8.4.1
- FIX: Windows drive path separators should normalize like other path separators.
- FIX: Fix a Windows pattern parsing issue that caused absolute paths with ambiguous drives to not parse correctly.
8.4
8.4
- NEW: Drop support for Python 3.6.
- NEW: Switch to Hatch backend instead of Setuptools.
- NEW: Add new
exclude
option tofnmatch
,pathlib
, andglob
methods that allows exclusion patterns to be
specified directly without needing to enableNEGATE
and prepend patterns with!
.exclude
accepts a separate
pattern or pattern list.exclude
should not be used in conjunction withNEGATE
. One or the other should be used.
8.3
8.3
- NEW: Officially support Python 3.10.
- NEW: Provide type hints for API.
- FIX: Gracefully handle calls with an empty pattern list.
8.2
8.2
- NEW: Add support for
dir_fd
in glob patterns. - FIX: Small fix for Python 3.10 Beta 1 and
pathlib
.
8.1.2
8.1.2
- FIX:
fnmatch.translate
no longer requires users to normalize their Windows paths for comparison. Previously, portions of thetranslate
regex handled both/
and\\
, while other portions did not. This inconsistent handling forced users to normalize paths for reliable matching. Now all of the generated regex should handle both/
and\\
. - FIX: On Linux/Unix systems, a backslash should not be assumed literal if it is followed by a forward slash. Backslash is magic on all systems, and an escaped forward slash is still counted as a forward slash, not a backslash and forward slash.
- FIX: A trailing backslash that is not escaped via another backslash should not be assumed as a backslash. Since it is escaping nothing, it will be ignored. Literal backslashes on any system must be escaped.
8.1.1
8.1
8.1
- NEW: Add
is_magic
function to theglob
andfnamtch
library. - NEW:
fnmatch
now hasescape
available via its API. Thefnmatch
variant uses filename logic instead of path logic. - NEW: Deprecate
raw_escape
inglob
as it is very niche and the same can be accomplished simply by using#!py3 codecs.decode(string, 'unicode_escape')
and then usingescape
. - FIX: Use
os.fspath
to convert path-like objects to string/bytes, whatever the return from__fspath__
is what Wildcard Match will accept. Don't try to convert paths via__str__
or__bytes__
as not all path-like objects may implement both. - FIX: Better checking of types to ensure consistent failure if the path, pattern, or root directory of are not all of type
str
orbytes
. - FIX: Some internal fixes and refactoring.
- FIX: Refactor code to take advantage of
bracex
's ability to abort parsing on extremely large pattern expansions. Patterns like{1..10000000}
will now abort dramatically quicker. Requirebracex
2.1.1 which aborts much quicker. - FIX: Fix some corner cases where limit would not abort correctly.