diff options
| author | Guido van Rossum <guido@python.org> | 1997-09-09 03:42:09 (GMT) |
|---|---|---|
| committer | Guido van Rossum <guido@python.org> | 1997-09-09 03:42:09 (GMT) |
| commit | 5c1f5bd5f64c2c60afa5221862fd220cd086c5c8 (patch) | |
| tree | 3bdb31396ddd2db733b6e216345900279a5b695f /Lib/dos_8x3/linecach.py | |
| parent | d7500fcbb4d0257f3bcd0c87d17ee61f3b1545e8 (diff) | |
| download | cpython-5c1f5bd5f64c2c60afa5221862fd220cd086c5c8.zip cpython-5c1f5bd5f64c2c60afa5221862fd220cd086c5c8.tar.gz cpython-5c1f5bd5f64c2c60afa5221862fd220cd086c5c8.tar.bz2 | |
Renamed dos_8x3 to dos-8x3.
Diffstat (limited to 'Lib/dos_8x3/linecach.py')
| -rwxr-xr-x | Lib/dos_8x3/linecach.py | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/Lib/dos_8x3/linecach.py b/Lib/dos_8x3/linecach.py deleted file mode 100755 index 7de373f..0000000 --- a/Lib/dos_8x3/linecach.py +++ /dev/null @@ -1,90 +0,0 @@ -# Cache lines from files. -# This is intended to read lines from modules imported -- hence if a filename -# is not found, it will look down the module search path for a file by -# that name. - -import sys -import os -from stat import * - -def getline(filename, lineno): - lines = getlines(filename) - if 1 <= lineno <= len(lines): - return lines[lineno-1] - else: - return '' - - -# The cache - -cache = {} # The cache - - -# Clear the cache entirely - -def clearcache(): - global cache - cache = {} - - -# Get the lines for a file from the cache. -# Update the cache if it doesn't contain an entry for this file already. - -def getlines(filename): - if cache.has_key(filename): - return cache[filename][2] - else: - return updatecache(filename) - - -# Discard cache entries that are out of date. -# (This is not checked upon each call!) - -def checkcache(): - for filename in cache.keys(): - size, mtime, lines, fullname = cache[filename] - try: - stat = os.stat(fullname) - except os.error: - del cache[filename] - continue - if size <> stat[ST_SIZE] or mtime <> stat[ST_MTIME]: - del cache[filename] - - -# Update a cache entry and return its list of lines. -# If something's wrong, print a message, discard the cache entry, -# and return an empty list. - -def updatecache(filename): - if cache.has_key(filename): - del cache[filename] - if not filename or filename[0] + filename[-1] == '<>': - return [] - fullname = filename - try: - stat = os.stat(fullname) - except os.error, msg: - # Try looking through the module search path - basename = os.path.split(filename)[1] - for dirname in sys.path: - fullname = os.path.join(dirname, basename) - try: - stat = os.stat(fullname) - break - except os.error: - pass - else: - # No luck -## print '*** Cannot stat', filename, ':', msg - return [] - try: - fp = open(fullname, 'r') - lines = fp.readlines() - fp.close() - except IOError, msg: -## print '*** Cannot open', fullname, ':', msg - return [] - size, mtime = stat[ST_SIZE], stat[ST_MTIME] - cache[filename] = size, mtime, lines, fullname - return lines |
