[Python-Dev] cpython: issue9584: Add {} list expansion to glob. Original patch by Mathieu Bridon

Georg Brandl g.brandl at gmx.net
Thu Nov 8 21:43:19 CET 2012


On 11/06/2012 02:56 PM, tim.golden wrote:
> http://hg.python.org/cpython/rev/dafca4714298
> changeset:   80273:dafca4714298
> user:        Tim Golden <mail at timgolden.me.uk>
> date:        Tue Nov 06 13:50:42 2012 +0000
> summary:
>   issue9584: Add {} list expansion to glob. Original patch by Mathieu Bridon
> 
> files:
>   Doc/library/glob.rst  |  11 ++--
>   Lib/glob.py           |  65 ++++++++++++++++++++++--------
>   Lib/test/test_glob.py |  64 +++++++++++++++++++++++++++++-
>   Misc/NEWS             |   3 +
>   4 files changed, 118 insertions(+), 25 deletions(-)
> 
> 
> diff --git a/Doc/library/glob.rst b/Doc/library/glob.rst
> --- a/Doc/library/glob.rst
> +++ b/Doc/library/glob.rst
> @@ -13,10 +13,10 @@
>  
>  The :mod:`glob` module finds all the pathnames matching a specified pattern
>  according to the rules used by the Unix shell.  No tilde expansion is done, but
> -``*``, ``?``, and character ranges expressed with ``[]`` will be correctly
> -matched.  This is done by using the :func:`os.listdir` and
> -:func:`fnmatch.fnmatch` functions in concert, and not by actually invoking a
> -subshell.  (For tilde and shell variable expansion, use
> +``*``, ``?``, character ranges expressed with ``[]`` and list of options
> +expressed with ``{}`` will be correctly matched.  This is done by using the
> +:func:`os.listdir` and :func:`fnmatch.fnmatch` functions in concert, and not by
> +actually invoking a subshell.  (For tilde and shell variable expansion, use
>  :func:`os.path.expanduser` and :func:`os.path.expandvars`.)

Needs a versionchanged.

In any case, brace expansion is not part of globbing (see the bash or zsh
manuals) because it does not generate valid file names, and it is a non-POSIX
expansion of some shells.  Are you sure it should be put into the glob module?
(Not speaking of the backward incompatibility it creates.)

Georg



More information about the Python-Dev mailing list