If you must here is what I would do:
Use two volatile variables to store the mod date and the data like:
_v_mod _v_data
Then stat the file when it is accessed and see if its date differs from _v_mod (if it has already been accessed). If not, return _v_data. Otherwise read the file, return the data and store it into _v_data and the mod date in _v_mod.
hth, ---from ZDG-----
The second rule is that all object attributes that begin with _v_ are "volatile" and are not saved to the database. This means that as long as the persistent object is in Zope memory cache, volatile attributes can be used. When the object is deactivated (removed from memory) volatile attributes are thrown away. Volatile attributes are useful for data that is good to cache for a while but can often be thrown away and easily recreated. File connections, cached calculations, rendered templates, all of these kinds of things are useful applications of volatile attributes. --------------------------- so, we may lose _v_mod, _v_data. what if we store these vars to be nonvolatile. what will that do? is that bad design? does this fall in the "good to cache for a while but can often be thrown away and easily recreated" department? this is something that i don't really understand. when to use _v_, and when not to. thanks