From d71ca41b37a2d57ac355de8194fdee846a612837 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Thu, 8 May 2008 23:44:58 +0000 Subject: [PATCH] Remove os.path.walk --- Doc/library/os.path.rst | 24 ------------------------ Lib/macpath.py | 29 +---------------------------- Lib/ntpath.py | 36 +----------------------------------- Lib/os2emxpath.py | 4 ++-- Lib/posixpath.py | 40 +--------------------------------------- Misc/NEWS | 2 ++ 6 files changed, 7 insertions(+), 128 deletions(-) diff --git a/Doc/library/os.path.rst b/Doc/library/os.path.rst index c3c56bed321..e932b655fb7 100644 --- a/Doc/library/os.path.rst +++ b/Doc/library/os.path.rst @@ -261,30 +261,6 @@ write files see :func:`open`, and for accessing the filesystem see the *unc* will always be the empty string. Availability: Windows. -.. function:: walk(path, visit, arg) - - Calls the function *visit* with arguments ``(arg, dirname, names)`` for each - directory in the directory tree rooted at *path* (including *path* itself, if it - is a directory). The argument *dirname* specifies the visited directory, the - argument *names* lists the files in the directory (gotten from - ``os.listdir(dirname)``). The *visit* function may modify *names* to influence - the set of directories visited below *dirname*, e.g. to avoid visiting certain - parts of the tree. (The object referred to by *names* must be modified in - place, using :keyword:`del` or slice assignment.) - - .. note:: - - Symbolic links to directories are not treated as subdirectories, and that - :func:`walk` therefore will not visit them. To visit linked directories you must - identify them with ``os.path.islink(file)`` and ``os.path.isdir(file)``, and - invoke :func:`walk` as necessary. - - .. note:: - - The newer :func:`os.walk` :term:`generator` supplies similar functionality - and can be easier to use. - - .. data:: supports_unicode_filenames True if arbitrary Unicode strings can be used as file names (within limitations diff --git a/Lib/macpath.py b/Lib/macpath.py index 5125f6b3ea7..7d6ae41ddfb 100644 --- a/Lib/macpath.py +++ b/Lib/macpath.py @@ -8,7 +8,7 @@ from genericpath import * __all__ = ["normcase","isabs","join","splitdrive","split","splitext", "basename","dirname","commonprefix","getsize","getmtime", "getatime","getctime", "islink","exists","lexists","isdir","isfile", - "walk","expanduser","expandvars","normpath","abspath", + "expanduser","expandvars","normpath","abspath", "curdir","pardir","sep","pathsep","defpath","altsep","extsep", "devnull","realpath","supports_unicode_filenames"] @@ -154,33 +154,6 @@ def normpath(s): s = s[:-1] return s - -def walk(top, func, arg): - """Directory tree walk with callback function. - - For each directory in the directory tree rooted at top (including top - itself, but excluding '.' and '..'), call func(arg, dirname, fnames). - dirname is the name of the directory, and fnames a list of the names of - the files and subdirectories in dirname (excluding '.' and '..'). func - may modify the fnames list in-place (e.g. via del or slice assignment), - and walk will only recurse into the subdirectories whose names remain in - fnames; this can be used to implement a filter, or to impose a specific - order of visiting. No semantics are defined for, or required of, arg, - beyond that arg is always passed to func. It can be used, e.g., to pass - a filename pattern, or a mutable object designed to accumulate - statistics. Passing None for arg is common.""" - - try: - names = os.listdir(top) - except os.error: - return - func(arg, top, names) - for name in names: - name = join(top, name) - if isdir(name) and not islink(name): - walk(name, func, arg) - - def abspath(path): """Return an absolute path.""" if not isabs(path): diff --git a/Lib/ntpath.py b/Lib/ntpath.py index 59f1402288b..9425fd586ef 100644 --- a/Lib/ntpath.py +++ b/Lib/ntpath.py @@ -14,7 +14,7 @@ from genericpath import * __all__ = ["normcase","isabs","join","splitdrive","split","splitext", "basename","dirname","commonprefix","getsize","getmtime", "getatime","getctime", "islink","exists","lexists","isdir","isfile", - "ismount","walk","expanduser","expandvars","normpath","abspath", + "ismount", "expanduser","expandvars","normpath","abspath", "splitunc","curdir","pardir","sep","pathsep","defpath","altsep", "extsep","devnull","realpath","supports_unicode_filenames","relpath"] @@ -226,40 +226,6 @@ def ismount(path): return len(p) == 1 and p[0] in '/\\' -# Directory tree walk. -# For each directory under top (including top itself, but excluding -# '.' and '..'), func(arg, dirname, filenames) is called, where -# dirname is the name of the directory and filenames is the list -# of files (and subdirectories etc.) in the directory. -# The func may modify the filenames list, to implement a filter, -# or to impose a different order of visiting. - -def walk(top, func, arg): - """Directory tree walk with callback function. - - For each directory in the directory tree rooted at top (including top - itself, but excluding '.' and '..'), call func(arg, dirname, fnames). - dirname is the name of the directory, and fnames a list of the names of - the files and subdirectories in dirname (excluding '.' and '..'). func - may modify the fnames list in-place (e.g. via del or slice assignment), - and walk will only recurse into the subdirectories whose names remain in - fnames; this can be used to implement a filter, or to impose a specific - order of visiting. No semantics are defined for, or required of, arg, - beyond that arg is always passed to func. It can be used, e.g., to pass - a filename pattern, or a mutable object designed to accumulate - statistics. Passing None for arg is common.""" - - try: - names = os.listdir(top) - except os.error: - return - func(arg, top, names) - for name in names: - name = join(top, name) - if isdir(name): - walk(name, func, arg) - - # Expand paths beginning with '~' or '~user'. # '~' means $HOME; '~user' means that user's home directory. # If the path doesn't begin with '~', or if the user or $HOME is unknown, diff --git a/Lib/os2emxpath.py b/Lib/os2emxpath.py index 4e85c4d48df..184c9b169a8 100644 --- a/Lib/os2emxpath.py +++ b/Lib/os2emxpath.py @@ -9,12 +9,12 @@ import os import stat from genericpath import * from ntpath import (expanduser, expandvars, isabs, islink, splitdrive, - splitext, split, walk) + splitext, split) __all__ = ["normcase","isabs","join","splitdrive","split","splitext", "basename","dirname","commonprefix","getsize","getmtime", "getatime","getctime", "islink","exists","lexists","isdir","isfile", - "ismount","walk","expanduser","expandvars","normpath","abspath", + "ismount","expanduser","expandvars","normpath","abspath", "splitunc","curdir","pardir","sep","pathsep","defpath","altsep", "extsep","devnull","realpath","supports_unicode_filenames"] diff --git a/Lib/posixpath.py b/Lib/posixpath.py index ee6d0f2407a..dc0aa108f0f 100644 --- a/Lib/posixpath.py +++ b/Lib/posixpath.py @@ -18,7 +18,7 @@ from genericpath import * __all__ = ["normcase","isabs","join","splitdrive","split","splitext", "basename","dirname","commonprefix","getsize","getmtime", "getatime","getctime","islink","exists","lexists","isdir","isfile", - "ismount","walk","expanduser","expandvars","normpath","abspath", + "ismount", "expanduser","expandvars","normpath","abspath", "samefile","sameopenfile","samestat", "curdir","pardir","sep","pathsep","defpath","altsep","extsep", "devnull","realpath","supports_unicode_filenames","relpath"] @@ -193,44 +193,6 @@ def ismount(path): return False -# Directory tree walk. -# For each directory under top (including top itself, but excluding -# '.' and '..'), func(arg, dirname, filenames) is called, where -# dirname is the name of the directory and filenames is the list -# of files (and subdirectories etc.) in the directory. -# The func may modify the filenames list, to implement a filter, -# or to impose a different order of visiting. - -def walk(top, func, arg): - """Directory tree walk with callback function. - - For each directory in the directory tree rooted at top (including top - itself, but excluding '.' and '..'), call func(arg, dirname, fnames). - dirname is the name of the directory, and fnames a list of the names of - the files and subdirectories in dirname (excluding '.' and '..'). func - may modify the fnames list in-place (e.g. via del or slice assignment), - and walk will only recurse into the subdirectories whose names remain in - fnames; this can be used to implement a filter, or to impose a specific - order of visiting. No semantics are defined for, or required of, arg, - beyond that arg is always passed to func. It can be used, e.g., to pass - a filename pattern, or a mutable object designed to accumulate - statistics. Passing None for arg is common.""" - - try: - names = os.listdir(top) - except os.error: - return - func(arg, top, names) - for name in names: - name = join(top, name) - try: - st = os.lstat(name) - except os.error: - continue - if stat.S_ISDIR(st.st_mode): - walk(name, func, arg) - - # Expand paths beginning with '~' or '~user'. # '~' means $HOME; '~user' means that user's home directory. # If the path doesn't begin with '~', or if the user or $HOME is unknown, diff --git a/Misc/NEWS b/Misc/NEWS index 24a63ec8ee9..aaa6382ee44 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -24,6 +24,8 @@ Library - The imputil module has been removed. +- os.path.walk has been removed in favor of os.walk + Build -----