Barney Gale
cf67ebfb31
GH-72904 : Add glob.translate()
function (#106703)
...
Add `glob.translate()` function that converts a pathname with shell wildcards to a regular expression. The regular expression is used by pathlib to implement `match()` and `glob()`.
This function differs from `fnmatch.translate()` in that wildcards do not match path separators by default, and that a `*` pattern segment matches precisely one path segment. When *recursive* is set to true, `**` pattern segments match any number of path segments, and `**` cannot appear outside its own segment.
In pathlib, this change speeds up directory walking (because `_make_child_relpath()` does less work), makes path objects smaller (they don't need a `_lines` slot), and removes the need for some gnarly code.
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2023-11-13 17:15:56 +00:00
Serhiy Storchaka
0902c3d8ed
gh-89973 : Fix re.error in the fnmatch module. ( GH-93072 )
...
Character ranges with upper bound less that lower bound (e.g. [c-a])
are now interpreted as empty ranges, for compatibility with other glob
pattern implementations. Previously it was re.error.
2022-06-05 11:46:29 +03:00
Tim Peters
5c3201e146
bpo-47080: Use atomic groups to simplify fnmatch ( GH-32029 )
...
Use re's new atomic groups to greatly simplify the construction of worst-case linear-time patterns.
2022-03-21 12:49:43 -05:00
andrei kulakov
b39eea06d1
bpo-42799: fnmatch module: bump up size of lru_cache for patterns ( GH-27084 )
2021-07-15 12:53:26 +02:00
Andre Delfino
e8d2264210
bpo-36769: Document that fnmatch.filter supports any kind of iterable (#13039)
2020-12-18 20:10:20 +01:00
Tim Peters
b1b4c790e7
bpo-40480: restore ability to join fnmatch.translate() results ( GH-20049 )
...
In translate(), generate unique group names across calls.
The restores the undocumented ability to get a valid regexp
by joining multiple translate() results via `|`.
2020-05-11 21:19:20 -05:00
Tim Peters
b9c46a2c2d
bpo-40480 "fnmatch" exponential execution time ( GH-19908 )
...
bpo-40480: create different regexps in the presence of multiple `*`
patterns to prevent fnmatch() from taking exponential time.
2020-05-05 21:28:24 -05:00
Serhiy Storchaka
23cdbfa744
bpo-32775: Fix regular expression warnings in fnmatch. (#5583)
...
fnmatch.translate() no longer produces patterns which contain set
operations.
Sets starting with '[' or containing '--', '&&', '~~' or '||' will
be interpreted differently in regular expressions in future versions.
Currently they emit warnings. fnmatch.translate() now avoids producing
patterns containing such sets by accident.
2018-02-09 13:30:19 +02:00
Serhiy Storchaka
bd48d27944
Issue #22493: Inline flags now should be used only at the start of the
...
regular expression. Deprecation warning is emitted if uses them in the
middle of the regular expression.
2016-09-11 12:50:02 +03:00
R David Murray
44b548dda8
#27364: fix "incorrect" uses of escape character in the stdlib.
...
And most of the tools.
Patch by Emanual Barry, reviewed by me, Serhiy Storchaka, and
Martin Panter.
2016-09-08 13:59:53 -04:00
Raymond Hettinger
d0dbb20f5f
Set cache sizes to a power-of-two
2013-02-17 01:33:37 -08:00
Antoine Pitrou
682ca1e6e2
Fix BytesWarnings in fnmatch
2011-11-08 18:39:15 +01:00
Raymond Hettinger
ded203f7c9
Bytes are already distinct from text, so typed=True isn't necessary.
2011-10-20 09:42:05 -07:00
Raymond Hettinger
db84803562
Simplify calls in fnmatch.
2011-10-20 09:22:10 -07:00
Antoine Pitrou
6fdb74f0ae
Re-apply r83871.
2010-08-13 16:26:40 +00:00
Antoine Pitrou
f14c263280
Also temporarily revert r83871, to fix compilation on buildbots
2010-08-09 12:47:33 +00:00
Raymond Hettinger
5b0c1e07ca
Issue 7846: fnmatch cache can grow without bound
...
Updated to solution to use the functools.lru_cache().
Restores the API so that purge() is not needed
(because the cache never gets big).
2010-08-09 02:07:15 +00:00
Brett Cannon
cc14320159
Make fnmatch be more PEP 8 compliant.
...
Partially closes issue 9356. Thanks to Brian Brazil for the patch.
2010-07-23 16:22:25 +00:00
R. David Murray
0425a8ea72
Fix 'refleak' introduced by fnmatch cache purge tests.
...
This introduces a 'purge' function for the fnmatch module analogous
to the 'purge' function in the re module.
2010-07-10 13:52:13 +00:00
R. David Murray
ea340a317a
7846: limit fnmatch pattern cache to _MAXCACHE=100 entries.
...
Patch by Andrew Clegg.
2010-07-09 12:23:21 +00:00
Gregory P. Smith
01099707db
Merged revisions 74475 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r74475 | gregory.p.smith | 2009-08-16 11:52:58 -0700 (Sun, 16 Aug 2009) | 2 lines
Issue 6665: Fix fnmatch to properly match filenames with newlines in them.
........
2009-08-16 18:58:46 +00:00
Guido van Rossum
3f2291f802
Change fnmatch.py to use separate caches for str and bytes keys.
...
This is necessary to pass the tests with -bb.
2008-10-03 16:38:30 +00:00
Guido van Rossum
f0af3e30db
Issue #3187: Better support for "undecodable" filenames. Code by Victor
...
Stinner, with small tweaks by GvR.
2008-10-02 18:55:37 +00:00
Raymond Hettinger
4a4296ec29
SF patch #765238: fix fnmatch.__all__
...
(Contributed by George Yoshida.)
2003-07-13 16:06:26 +00:00
Raymond Hettinger
54f0222547
SF 563203. Replaced 'has_key()' with 'in'.
2002-06-01 14:18:47 +00:00
Martin v. Löwis
b5d4d2a7d5
Patch #409973: Speedup glob.glob, add fnmatch.filter.
2001-06-06 06:24:38 +00:00
Fred Drake
46d9fda008
Donovan Baarda <abo@users.sourceforge.net>:
...
Patch to make "\" in a character group work properly.
This closes SF bug #409651.
2001-03-21 18:05:48 +00:00
Skip Montanaro
eccd02a40d
more __all__ updates
2001-01-20 23:34:12 +00:00
Tim Peters
88869f9787
Whitespace normalization.
2001-01-14 23:36:06 +00:00
Jeremy Hylton
a05e293a21
typos fixed by Rob Hooft
2000-06-28 14:48:01 +00:00
Guido van Rossum
9694fcab53
Convert all remaining *simple* cases of regex usage to re usage.
1997-10-22 21:00:49 +00:00
Guido van Rossum
7e4b2def34
changes for the Mac
1995-01-27 02:41:45 +00:00
Guido van Rossum
3ec6c1d401
Get rid of debug print statement.
1992-01-14 18:27:26 +00:00
Guido van Rossum
05e5219f53
Rewritten using regex.
1992-01-12 23:29:29 +00:00
Guido van Rossum
bdfcfccbe5
New == syntax
1992-01-01 19:35:13 +00:00
Guido van Rossum
fc61383fad
Support [...] ranges. Also [!...] for negated ranges, SYSV shell style.
1991-04-07 13:40:02 +00:00
Guido van Rossum
762c39e9d2
Initial revision
1991-01-01 18:11:14 +00:00