[Python-ideas] Curly braces expansion in shell-like matcher modules
Mathieu Bridon
bochecha at fedoraproject.org
Tue Aug 17 14:13:26 CEST 2010
Hi,
A few days ago I submitted a feature request for the fnmatch module to
allow curly braces shell-like expansions:
http://bugs.python.org/issue9584
The patch I submitted was found to be incorrect, and I'm working on it
(I already have a patch that seems to be working and I need to test it
extensively).
However, some concerns were raised about the fnmatch module not being
the correct place to do that, if the goal is to mimic shell behavior.
Expansion would have to be done before, generating the list of
patterns that would then be given to fnmatch.
It was suggested that I took this issue on Python-ideas, so here we go.
What do people think? Should it be done in fnmatch, expanding the
curly braces to the regex? Should it be done before that?
If the latter, what would be an appropriate module to expand the
braces? glob? Another module?
FWIW (i.e not much), my opinion is leaning towards implementing it in glob.py:
- add '{' to the magic_check regex
- in glob1 (which is called when the pattern 'has_magic'), expand the
braces and then call fnmatch.filter() on each resulting pattern
That would respect more what is done in shells like Bash, and it makes
it also more straight-forward to implement.
Cheers,
--
Mathieu
More information about the Python-ideas
mailing list