Treestamps
A library to set and retrieve timestamps to speed up operations run recursively
on directory trees.
Documentation is pretty poor. Read the code for now.
Usage
Used in picopt and
nudebomb. You can see how it's used in
those projects.
from pathlib import Path
from treestamps import Grovestamps, GrovestampsConfig
config = GrovestampsConfig(
"MyProgramName",
paths=("/foo", "/bar"),
program_config={ "option_a": True, "option_b": False}
)
gs = Grovestamps(config)
timestamp = gs[Path("/foo")].get()
assert None == timestamp.get("file_relative_to_foo.txt")
mtime = timestamp.set("file_relative_to_foo.txt")
gs.dump()
Dumping removes /foo/.MyProgramName_treestamps.wal.yaml
and writes to
/foo/.MyProgramName_treestamps.yaml
and /bar/.MyProgramName_treestamps.yaml
gs = Grovestamps(config)
timestamp_foo = gs[Path("/foo")].get()
mtime_b = timestamp_foo.get("file_relative_to_foo.txt")
mtime_a = timestamp_foo.get("another_file_relative_to_foo.txt")
assert mtime_a == mtime_b
timestamp_bar = gs[Path("/bar")].get()
mtime_c = timestamp_foo.get("file_relative_to_bar.txt")
assert mtime_c == mtime_a