X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=persistent.py;h=c902313eb4a28cb4635779f584f8775a2b646d35;hb=e8fbbb7306430478dec55d2c963eed116d8330cc;hp=16f51c04160e8b05f7de83894b13d06cf11bc8e4;hpb=7ff2af6fe7bffea90dc4a31c93140c189917c659;p=python_utils.git diff --git a/persistent.py b/persistent.py index 16f51c0..c902313 100644 --- a/persistent.py +++ b/persistent.py @@ -1,5 +1,9 @@ #!/usr/bin/env python3 +"""A Persistent is just a class with a load and save method. This +module defines the Persistent base and a decorator that can be used to +create a persistent singleton that autoloads and autosaves.""" + import atexit import datetime import enum @@ -136,34 +140,29 @@ class persistent_autoloaded_singleton(object): # memory. if self.instance is not None: logger.debug( - f'Returning already instantiated singleton instance of {cls.__name__}.' + 'Returning already instantiated singleton instance of %s.', cls.__name__ ) return self.instance # Otherwise, try to load it from persisted state. was_loaded = False - logger.debug(f'Attempting to load {cls.__name__} from persisted state.') + logger.debug('Attempting to load %s from persisted state.', cls.__name__) self.instance = cls.load() if not self.instance: msg = 'Loading from cache failed.' logger.warning(msg) - logger.debug(f'Attempting to instantiate {cls.__name__} directly.') + logger.debug('Attempting to instantiate %s directly.', cls.__name__) self.instance = cls(*args, **kwargs) else: - logger.debug( - f'Class {cls.__name__} was loaded from persisted state successfully.' - ) + logger.debug('Class %s was loaded from persisted state successfully.', cls.__name__) was_loaded = True assert self.instance is not None if self.persist_at_shutdown is PersistAtShutdown.ALWAYS or ( - not was_loaded - and self.persist_at_shutdown is PersistAtShutdown.IF_NOT_LOADED + not was_loaded and self.persist_at_shutdown is PersistAtShutdown.IF_NOT_LOADED ): - logger.debug( - 'Scheduling a deferred called to save at process shutdown time.' - ) + logger.debug('Scheduling a deferred called to save at process shutdown time.') atexit.register(self.instance.save) return self.instance