6.5 statcache -- An optimization of os.stat()
Keywords: lib

# 6.5 `statcache` -- An optimization of `os.stat()`

Deprecated since release 2.2. Use ``os`.stat()` directly instead of using the cache; the cache introduces a very high level of fragility in applications using it and complicates application code with the addition of cache management support.

The `statcache` module provides a simple optimization to `os.stat()`: remembering the values of previous invocations.

The `statcache` module defines the following functions:

`stat`(path)
  This is the main module entry-point. Identical for `os.stat()`, except for remembering the result for future invocations of the function.

The rest of the functions are used to clear the cache, or parts of it.

`reset`()
  Clear the cache: forget all results of previous `stat()` calls.

`forget`(path)
  Forget the result of `stat(path)`, if any.

`forget_prefix`(prefix)
  Forget all results of `stat(path)` for path starting with prefix.

`forget_dir`(prefix)
  Forget all results of `stat(path)` for path a file in the directory prefix, including `stat(prefix)`.

`forget_except_prefix`(prefix)
  Similar to `forget_prefix()`, but for all path values not starting with prefix.

Example:

      >>> import os, statcache
      >>> statcache.stat('.')
      (16893, 2049, 772, 18, 1000, 1000, 2048, 929609777, 929609777, 929609777)
      >>> os.stat('.')
      (16893, 2049, 772, 18, 1000, 1000, 2048, 929609777, 929609777, 929609777)