You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by ro...@apache.org on 2021/03/10 07:56:36 UTC

[beam] branch master updated: Add __repr__ and disallow __bool__ for DeferredScalar

This is an automated email from the ASF dual-hosted git repository.

robertwb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new 4d9c279  Add __repr__ and disallow __bool__ for DeferredScalar
     new 1cd4787  Merge pull request #14181 from TheNeuralBit/deferred-scalard-dunders
4d9c279 is described below

commit 4d9c2792910120645d61897ec5ab5310be832fda
Author: Brian Hulette <bh...@google.com>
AuthorDate: Tue Mar 9 17:48:33 2021 -0800

    Add __repr__ and disallow __bool__ for DeferredScalar
---
 sdks/python/apache_beam/dataframe/frame_base.py | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/sdks/python/apache_beam/dataframe/frame_base.py b/sdks/python/apache_beam/dataframe/frame_base.py
index ad6e3c2..7674fb2 100644
--- a/sdks/python/apache_beam/dataframe/frame_base.py
+++ b/sdks/python/apache_beam/dataframe/frame_base.py
@@ -111,6 +111,16 @@ class _DeferredScalar(DeferredBase):
               func, [self._expr] + [arg._expr for arg in args],
               requires_partition_by=partitionings.Singleton()))
 
+  def __repr__(self):
+    return f"DeferredScalar[type={type(self._expr.proxy())}]"
+
+  def __bool__(self):
+    # TODO(BEAM-11951): Link to documentation
+    raise TypeError(
+        "Testing the truth value of a deferred scalar is not "
+        "allowed. It's not possible to branch on the result of "
+        "deferred operations.")
+
 
 DeferredBase._pandas_type_map[None] = _DeferredScalar