# 5 `statcache` -- `os.stat()` の最適化

リリース 2.2 で撤廃されました。 キャッシュを使わずに ``os`.stat()` を直接 使ってください; キャッシュはそれを使うアプリケーションに非常に高い レベルの脆弱性をもたらし、キャッシュ管理のサポートを追加する ことでアプリケーションのソースコードを難解にしてしまいます。

`statcache` モジュールは `os.stat()` を最後に呼び出 した際の値を記憶することによる最適化機能を提供します。

`statcache` モジュールでは以下の関数を定義しています:

`stat`( | path)

  このモジュールの主要なエントリポイントです。

  `os.stat()` と同じですが、将来同じ呼び出しが行われた ときの為に結果を記憶しておきます。

その他の関数はキャッシュやその一部を消去するために用いられます。

`reset`( | )

  キャッシュを消去します: これまでの全ての `stat()` 呼び出し による結果を忘却します。

`forget`( | path)

  `stat(path)` のキャッシュが存在すれば、それを忘却します。

`forget_prefix`( | prefix)

  prefix で始まる path に対する `stat(path)` の結果をすべて忘却します。

`forget_dir`( | prefix)

  prefix で始まる path に対する `stat(path)` の結果を、`stat(prefix)` も含めてすべて忘却します。

`forget_except_prefix`( | prefix)

  `forget_prefix()` に似ていますが、prefix で 始まらない 全ての path について忘却します。

以下に例を示します:

    >>> 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)