def reuse_if_mtime_is_today() -> Callable[[datetime.datetime], bool]:
"""
A helper that returns a lambda appropriate for use in the
- persistent_autoload_singleton decorator's may_reuse_persisted
+ persistent_autoloaded_singleton decorator's may_reuse_persisted
parameter that allows persisted state to be reused as long as it
was persisted on the same day as the load.
) -> Callable[[datetime.datetime], bool]:
"""
A helper that returns a lambda appropriate for use in the
- persistent_autoload_singleton decorator's may_reuse_persisted
+ persistent_autoloaded_singleton decorator's may_reuse_persisted
parameter that allows persisted state to be reused as long as it
was persisted within the past limit_seconds.
return lambda dt: (now - dt).total_seconds() <= limit_seconds
+def dont_reuse_persisted_state_force_refresh(
+) -> Callable[[datetime.datetime], bool]:
+ return lambda dt: False
+
+
class PersistAtShutdown(enum.Enum):
"""
An enum to describe the conditions under which state is persisted
ALWAYS = 2,
-class persistent_autoload_singleton(Persistent):
+class persistent_autoloaded_singleton(Persistent):
"""This class is meant to be used as a decorator around a class that:
1. Is a singleton; one global instance per python program.
Here's and example usage pattern:
- @persistent_autoload_singleton(
+ @persistent_autoloaded_singleton(
filename = "my_cache_file.bin",
may_reuse_persisted = reuse_if_mtime_less_than_limit_sec(60),
persist_at_shutdown = PersistAtShutdown.IF_NOT_INITIALIZED_FROM_DISK,