summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrett Cannon <bcannon@gmail.com>2008-05-10 21:11:46 (GMT)
committerBrett Cannon <bcannon@gmail.com>2008-05-10 21:11:46 (GMT)
commitf4fd99344a9c18c1aaee2f1840907e4a38576edd (patch)
tree1226807b9e4bf901a4d19819cef15b9bfadb21fa
parent7ecf3dcaeec4c0561fa2a952b08c259f3a542587 (diff)
downloadcpython-f4fd99344a9c18c1aaee2f1840907e4a38576edd.zip
cpython-f4fd99344a9c18c1aaee2f1840907e4a38576edd.tar.gz
cpython-f4fd99344a9c18c1aaee2f1840907e4a38576edd.tar.bz2
Remove the dircache module.
-rw-r--r--Doc/library/dircache.rst56
-rw-r--r--Doc/library/filesys.rst1
-rw-r--r--Lib/dircache.py38
-rwxr-xr-xLib/test/regrtest.py3
-rw-r--r--Lib/test/test_dircache.py73
-rw-r--r--Misc/NEWS2
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()
diff --git a/Misc/NEWS b/Misc/NEWS
index b5023e5..9c6feeb 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -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__,