projects
/
python_utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add powerset to list_utils; improve chord parser.
[python_utils.git]
/
deferred_operand.py
diff --git
a/deferred_operand.py
b/deferred_operand.py
index 22bcb83297fa19aa24ab3d860d81a39c22c63dac..df762376c1b16374440c2a5ea7cda8d568bd5e58 100644
(file)
--- a/
deferred_operand.py
+++ b/
deferred_operand.py
@@
-1,5
+1,13
@@
#!/usr/bin/env python3
#!/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.
+
+"""
+
from abc import ABC, abstractmethod
from typing import Any, Generic, TypeVar
from abc import ABC, abstractmethod
from typing import Any, Generic, TypeVar
@@
-15,7
+23,7
@@
class DeferredOperand(ABC, Generic[T]):
"""
@abstractmethod
"""
@abstractmethod
- def _resolve(self) -> T:
+ def _resolve(self
, timeout=None
) -> T:
pass
@staticmethod
pass
@staticmethod
@@
-91,9
+99,7
@@
class DeferredOperand(ABC, Generic[T]):
return DeferredOperand.resolve(self) is DeferredOperand.resolve(other)
def is_not(self, other):
return DeferredOperand.resolve(self) is DeferredOperand.resolve(other)
def is_not(self, other):
- return DeferredOperand.resolve(self) is not DeferredOperand.resolve(
- other
- )
+ return DeferredOperand.resolve(self) is not DeferredOperand.resolve(other)
def __abs__(self):
return abs(DeferredOperand.resolve(self))
def __abs__(self):
return abs(DeferredOperand.resolve(self))
@@
-151,8
+157,6
@@
class DeferredOperand(ABC, Generic[T]):
def __getattr__(self, method_name):
def method(*args, **kwargs):
def __getattr__(self, method_name):
def method(*args, **kwargs):
- return getattr(DeferredOperand.resolve(self), method_name)(
- *args, **kwargs
- )
+ return getattr(DeferredOperand.resolve(self), method_name)(*args, **kwargs)
return method
return method