diff options
author | Brett Cannon <bcannon@gmail.com> | 2008-05-10 21:11:46 (GMT) |
---|---|---|
committer | Brett Cannon <bcannon@gmail.com> | 2008-05-10 21:11:46 (GMT) |
commit | f4fd99344a9c18c1aaee2f1840907e4a38576edd (patch) | |
tree | 1226807b9e4bf901a4d19819cef15b9bfadb21fa | |
parent | 7ecf3dcaeec4c0561fa2a952b08c259f3a542587 (diff) | |
download | cpython-f4fd99344a9c18c1aaee2f1840907e4a38576edd.zip cpython-f4fd99344a9c18c1aaee2f1840907e4a38576edd.tar.gz cpython-f4fd99344a9c18c1aaee2f1840907e4a38576edd.tar.bz2 |
Remove the dircache module.
-rw-r--r-- | Doc/library/dircache.rst | 56 | ||||
-rw-r--r-- | Doc/library/filesys.rst | 1 | ||||
-rw-r--r-- | Lib/dircache.py | 38 | ||||
-rwxr-xr-x | Lib/test/regrtest.py | 3 | ||||
-rw-r--r-- | Lib/test/test_dircache.py | 73 | ||||
-rw-r--r-- | Misc/NEWS | 2 |
6 files changed, 3 insertions, 170 deletions
diff --git a/Doc/library/dircache.rst b/Doc/library/dircache.rst deleted file mode 100644 index 28aa667..0000000 --- a/Doc/library/dircache.rst +++ /dev/null @@ -1,56 +0,0 @@ - -:mod:`dircache` --- Cached directory listings -============================================= - -.. module:: dircache - :synopsis: Return directory listing, with cache mechanism. -.. sectionauthor:: Moshe Zadka <moshez@zadka.site.co.il> - - -The :mod:`dircache` module defines a function for reading directory listing -using a cache, and cache invalidation using the *mtime* of the directory. -Additionally, it defines a function to annotate directories by appending a -slash. - -The :mod:`dircache` module defines the following functions: - - -.. function:: reset() - - Resets the directory cache. - - -.. function:: listdir(path) - - Return a directory listing of *path*, as gotten from :func:`os.listdir`. Note - that unless *path* changes, further call to :func:`listdir` will not re-read the - directory structure. - - Note that the list returned should be regarded as read-only. (Perhaps a future - version should change it to return a tuple?) - - -.. function:: opendir(path) - - Same as :func:`listdir`. Defined for backwards compatibility. - - -.. function:: annotate(head, list) - - Assume *list* is a list of paths relative to *head*, and append, in place, a - ``'/'`` to each path which points to a directory. - -:: - - >>> import dircache - >>> a = dircache.listdir('/') - >>> a = a[:] # Copy the return value so we can change 'a' - >>> a - ['bin', 'boot', 'cdrom', 'dev', 'etc', 'floppy', 'home', 'initrd', 'lib', 'lost+ - found', 'mnt', 'proc', 'root', 'sbin', 'tmp', 'usr', 'var', 'vmlinuz'] - >>> dircache.annotate('/', a) - >>> a - ['bin/', 'boot/', 'cdrom/', 'dev/', 'etc/', 'floppy/', 'home/', 'initrd/', 'lib/ - ', 'lost+found/', 'mnt/', 'proc/', 'root/', 'sbin/', 'tmp/', 'usr/', 'var/', 'vm - linuz'] - diff --git a/Doc/library/filesys.rst b/Doc/library/filesys.rst index e5b5e44..c3d9df0 100644 --- a/Doc/library/filesys.rst +++ b/Doc/library/filesys.rst @@ -23,7 +23,6 @@ in this chapter is: fnmatch.rst linecache.rst shutil.rst - dircache.rst macpath.rst diff --git a/Lib/dircache.py b/Lib/dircache.py deleted file mode 100644 index 78ec7fe..0000000 --- a/Lib/dircache.py +++ /dev/null @@ -1,38 +0,0 @@ -"""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, [] - mtime = os.stat(path).st_mtime - if mtime != cached_mtime: - list = os.listdir(path) - 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] + '/' diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index 675cea3..bbc81bc 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -725,7 +725,7 @@ def dash_R(the_module, test, indirect_test, huntrleaks): def dash_R_cleanup(fs, ps, pic, abcs): import gc, copy_reg - import _strptime, linecache, dircache + import _strptime, linecache import urlparse, urllib, urllib2, mimetypes, doctest import struct, filecmp, _abcoll from distutils.dir_util import _path_created @@ -762,7 +762,6 @@ def dash_R_cleanup(fs, ps, pic, abcs): urlparse.clear_cache() urllib.urlcleanup() urllib2.install_opener(None) - dircache.reset() linecache.clearcache() mimetypes._default_mime_types() filecmp._cache.clear() diff --git a/Lib/test/test_dircache.py b/Lib/test/test_dircache.py deleted file mode 100644 index 68f6fc2..0000000 --- a/Lib/test/test_dircache.py +++ /dev/null @@ -1,73 +0,0 @@ -""" - Test cases for the dircache module - Nick Mathewson -""" - -import unittest -from test.test_support import run_unittest, TESTFN -import dircache, os, time, sys, tempfile - - -class DircacheTests(unittest.TestCase): - def setUp(self): - self.tempdir = tempfile.mkdtemp() - - def tearDown(self): - for fname in os.listdir(self.tempdir): - self.delTemp(fname) - os.rmdir(self.tempdir) - - def writeTemp(self, fname): - f = open(os.path.join(self.tempdir, fname), 'w') - f.close() - - def mkdirTemp(self, fname): - os.mkdir(os.path.join(self.tempdir, fname)) - - def delTemp(self, fname): - fname = os.path.join(self.tempdir, fname) - if os.path.isdir(fname): - os.rmdir(fname) - else: - os.unlink(fname) - - def test_listdir(self): - ## SUCCESSFUL CASES - entries = dircache.listdir(self.tempdir) - self.assertEquals(entries, []) - - # Check that cache is actually caching, not just passing through. - self.assert_(dircache.listdir(self.tempdir) is entries) - - # Directories aren't "files" on Windows, and directory mtime has - # nothing to do with when files under a directory get created. - # That is, this test can't possibly work under Windows -- dircache - # is only good for capturing a one-shot snapshot there. - - if sys.platform[:3] not in ('win', 'os2'): - # Sadly, dircache has the same granularity as stat.mtime, and so - # can't notice any changes that occurred within 1 sec of the last - # time it examined a directory. - time.sleep(1) - self.writeTemp("test1") - entries = dircache.listdir(self.tempdir) - self.assertEquals(entries, ['test1']) - self.assert_(dircache.listdir(self.tempdir) is entries) - - ## UNSUCCESSFUL CASES - self.assertRaises(OSError, dircache.listdir, self.tempdir+"_nonexistent") - - def test_annotate(self): - self.writeTemp("test2") - self.mkdirTemp("A") - lst = ['A', 'test2', 'test_nonexistent'] - dircache.annotate(self.tempdir, lst) - self.assertEquals(lst, ['A/', 'test2', 'test_nonexistent']) - - -def test_main(): - run_unittest(DircacheTests) - - -if __name__ == "__main__": - test_main() @@ -21,6 +21,8 @@ Extension Modules Library ------- +- The dircache module has been removed. + - The Canvas module has been removed. - The Decimal module gained the magic methods __round__, __ceil__, |