Staging
v0.5.1
v0.5.1
https://github.com/python/cpython
Revision dff7770b7f19b3cfdcbcbc4dc205f53ef6170c2d authored by Jack Jansen on 05 September 2001, 22:07:52 UTC, committed by Jack Jansen on 05 September 2001, 22:07:52 UTC
fullblown drag and drop application. To my surprise it is starting to work already: Python actually executes a script dropped on it. To be done: - Make sure this still works in MacPython - Don't lose argv[0] in the process - Applet support
1 parent b30e106
Tip revision: dff7770b7f19b3cfdcbcbc4dc205f53ef6170c2d authored by Jack Jansen on 05 September 2001, 22:07:52 UTC
Changes to make these work under OSX as the main program for a
Changes to make these work under OSX as the main program for a
Tip revision: dff7770
dircache.py
"""Read and cache directory listings.
The listdir() routine returns a sorted list of the files in a directory,
using a cache to avoid reading the directory more often than necessary.
The annotate() routine appends slashes to directories."""
import os
__all__ = ["listdir", "opendir", "annotate", "reset"]
cache = {}
def reset():
"""Reset the cache completely."""
global cache
cache = {}
def listdir(path):
"""List directory contents, using cache."""
try:
cached_mtime, list = cache[path]
del cache[path]
except KeyError:
cached_mtime, list = -1, []
try:
mtime = os.stat(path)[8]
except os.error:
return []
if mtime != cached_mtime:
try:
list = os.listdir(path)
except os.error:
return []
list.sort()
cache[path] = mtime, list
return list
opendir = listdir # XXX backward compatibility
def annotate(head, list):
"""Add '/' suffixes to directories."""
for i in range(len(list)):
if os.path.isdir(os.path.join(head, list[i])):
list[i] = list[i] + '/'
Computing file changes ...