[Python-3000-checkins] r63003 - in python/branches/py3k: Doc/library/dircache.rst Doc/library/filesys.rst Lib/dircache.py Lib/test/regrtest.py Lib/test/test_dircache.py Misc/NEWS

brett.cannon python-3000-checkins at python.org
Sat May 10 23:11:47 CEST 2008


Author: brett.cannon
Date: Sat May 10 23:11:46 2008
New Revision: 63003

Log:
Remove the dircache module.


Removed:
   python/branches/py3k/Doc/library/dircache.rst
   python/branches/py3k/Lib/dircache.py
   python/branches/py3k/Lib/test/test_dircache.py
Modified:
   python/branches/py3k/Doc/library/filesys.rst
   python/branches/py3k/Lib/test/regrtest.py
   python/branches/py3k/Misc/NEWS

Deleted: python/branches/py3k/Doc/library/dircache.rst
==============================================================================
--- python/branches/py3k/Doc/library/dircache.rst	Sat May 10 23:11:46 2008
+++ (empty file)
@@ -1,56 +0,0 @@
-
-:mod:`dircache` --- Cached directory listings
-=============================================
-
-.. module:: dircache
-   :synopsis: Return directory listing, with cache mechanism.
-.. sectionauthor:: Moshe Zadka <moshez at 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']
-

Modified: python/branches/py3k/Doc/library/filesys.rst
==============================================================================
--- python/branches/py3k/Doc/library/filesys.rst	(original)
+++ python/branches/py3k/Doc/library/filesys.rst	Sat May 10 23:11:46 2008
@@ -23,7 +23,6 @@
    fnmatch.rst
    linecache.rst
    shutil.rst
-   dircache.rst
    macpath.rst
 
 

Deleted: python/branches/py3k/Lib/dircache.py
==============================================================================
--- python/branches/py3k/Lib/dircache.py	Sat May 10 23:11:46 2008
+++ (empty file)
@@ -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] + '/'

Modified: python/branches/py3k/Lib/test/regrtest.py
==============================================================================
--- python/branches/py3k/Lib/test/regrtest.py	(original)
+++ python/branches/py3k/Lib/test/regrtest.py	Sat May 10 23:11:46 2008
@@ -725,7 +725,7 @@
 
 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 @@
     urlparse.clear_cache()
     urllib.urlcleanup()
     urllib2.install_opener(None)
-    dircache.reset()
     linecache.clearcache()
     mimetypes._default_mime_types()
     filecmp._cache.clear()

Deleted: python/branches/py3k/Lib/test/test_dircache.py
==============================================================================
--- python/branches/py3k/Lib/test/test_dircache.py	Sat May 10 23:11:46 2008
+++ (empty file)
@@ -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()

Modified: python/branches/py3k/Misc/NEWS
==============================================================================
--- python/branches/py3k/Misc/NEWS	(original)
+++ python/branches/py3k/Misc/NEWS	Sat May 10 23:11:46 2008
@@ -21,6 +21,8 @@
 Library
 -------
 
+- The dircache module has been removed.
+
 - The Canvas module has been removed.
 
 - The Decimal module gained the magic methods __round__, __ceil__,


More information about the Python-3000-checkins mailing list