[Python-Dev] Re: __pycode__ extension

Fernando Perez fperez528 at yahoo.com
Wed Nov 17 20:56:56 CET 2004


Phillip J. Eby wrote:

> If the idea is just to allow saving code from interactive mode, why not
> just modify the interactive mode to do this?

IPython already has most of this:

In [3]: os.path.walk??
Type:           function
Base Class:     <type 'function'>
String Form:    <function walk at 0x550529cc>
Namespace:      Interactive
File:           /usr/src/build/394694-i386/install/usr/lib/python2.3/posixpath.py
Definition:     os.path.walk(top, func, arg)
Source:
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)

Since it's already available (anyone can copy the code if they want, it's BSD),
I am very weary of the bloat this would introduce if it were a default
feature.  So I'd like to see a good argument about the footprint increase of
this proposal.

Best,

f



More information about the Python-Dev mailing list