Make DeferredOperand work more transparently.
authorScott Gasch <[email protected]>
Tue, 18 Oct 2022 05:27:24 +0000 (22:27 -0700)
committerScott Gasch <[email protected]>
Tue, 18 Oct 2022 05:27:24 +0000 (22:27 -0700)
src/pyutils/parallelize/deferred_operand.py
tests/run_tests.py

index c234c0574e7a6ba29e810210229cb08db9966c27..8d5c30c5ac8cd7adb651bb37935d60e3afdfb398 100644 (file)
@@ -182,7 +182,4 @@ class DeferredOperand(ABC, Generic[T]):
         return float(DeferredOperand.resolve(self))
 
     def __getattr__(self, method_name):
-        def method(*args, **kwargs):
-            return getattr(DeferredOperand.resolve(self), method_name)(*args, **kwargs)
-
-        return method
+        return getattr(DeferredOperand.resolve(self), method_name)
index 06d4a9c839f71013674f907391c2b64eea610d67..5806c340f57cc4f6a1873d19546b90b201eceaf1 100755 (executable)
@@ -18,7 +18,6 @@ from overrides import overrides
 
 from pyutils import ansi, bootstrap, config, dict_utils, exec_utils, text_utils
 from pyutils.files import file_utils
-from pyutils.parallelize import deferred_operand
 from pyutils.parallelize import parallelize as par
 from pyutils.parallelize import smart_future, thread_utils
 
@@ -289,8 +288,7 @@ class TemplatedTestRunner(TestRunner, ABC):
             )
             self.test_results.tests_executed[test_to_run.name] = time.time()
 
-        for future in smart_future.wait_any(running, log_exceptions=False):
-            result = deferred_operand.DeferredOperand.resolve(future)
+        for result in smart_future.wait_any(running, log_exceptions=False):
             logger.debug('Test %s finished.', result.name)
 
             # We sometimes run the same test more than once.  Do not allow