Easier and more self documenting patterns for loading/saving Persistent
[python_utils.git] / deferred_operand.py
index 70e9d57392dc0a0b44ba7464cf3be9ee1aa797eb..9edbb9e8072b451ffc13f447235e3da5505bcff6 100644 (file)
@@ -1,8 +1,12 @@
 #!/usr/bin/env python3
 
+# © Copyright 2021-2022, Scott Gasch
+
 """This is a helper class that tries to define every __dunder__ method
 so as to defer that evaluation of an object as long as possible.  It
-is used by smart_future.py as a base class."""
+is used by smart_future.py as a base class.
+
+"""
 
 from abc import ABC, abstractmethod
 from typing import Any, Generic, TypeVar
@@ -15,11 +19,12 @@ T = TypeVar('T')
 
 class DeferredOperand(ABC, Generic[T]):
     """A wrapper around an operand whose value is deferred until it is
-    needed.  See subclass SmartFuture for an example usage.
+    needed (i.e. accessed).  See the subclass :class:`SmartFuture` for
+    an example usage and/or a more useful patten.
     """
 
     @abstractmethod
-    def _resolve(self) -> T:
+    def _resolve(self, timeout=None) -> T:
         pass
 
     @staticmethod