[Python-Dev] A smarter shutil.copytree ?

Steven Bethard steven.bethard at gmail.com
Tue Apr 22 19:04:45 CEST 2008

On Tue, Apr 22, 2008 at 1:56 AM, Tarek Ziadé <ziade.tarek at gmail.com> wrote:
> On Mon, Apr 21, 2008 at 2:25 AM, Steven Bethard <steven.bethard at gmail.com> wrote:
> > On Sun, Apr 20, 2008 at 4:15 PM, Tarek Ziadé <ziade.tarek at gmail.com> wrote:
>  >  > I have submitted a patch for review here: http://bugs.python.org/issue2663
>  >  >
>  >  >  glob-style patterns or a callable (for complex cases) can be provided
>  >  >  to filter out files or directories.
>  >
>  >  I'm not a big fan of the sequence-or-callable argument. Why not just
>  >  make it a callable argument, and supply a utility function so that you
>  >  can write something like::
>  >
>  >     exclude_func = shutil.excluding_patterns('*.tmp', 'test_dir2')
>  >     shutil.copytree(src_dir, dst_dir, exclude=exclude_func)
>  I made another draft based on a single callable argument to try out:
>  http://bugs.python.org/file10073/shutil.copytree.filtering.patch
>  The callable takes the src directory + its content as a list, and
>  returns filter eligible for exclusion

FWIW, that looks better to me.

>  That makes me wonder, like Alexander said on the bug tracker:
>  In the glob-style patterns callable, do we want to deal with absolute paths ?

I think that it would be okay to document that
shutil.ignore_patterns() only accepts patterns matching individual
filenames (not complex paths). If someone needs to do something with
absolute paths, then they can write their own 'ignore' function,

I'm not *in*-sane. Indeed, I am so far *out* of sane that you appear a
tiny blip on the distant coast of sanity.
 --- Bucky Katt, Get Fuzzy

More information about the Python-Dev mailing list