On Fri, 21 Jul 2023 at 11:08, Dom Grigonis <[email protected]> wrote:
> Also, can't find a way to ONLY force evaluation without any additional
> operations in this specific library. A simple callable which evaluates if
> unevaluated & returns would do. Then:
>
> def IF(condition, when_true, when_false):
> if condition:
> return ensure_eval(when_true)
> else:
> return ensure_eval(when_false)
>
> Controls evaluation if deferred objects are provided, but can also be used
> with `normal` values.
>
Let's tackle just this one part for a moment. What does "ensure_eval"
do? Evaluate a proxy object but not evaluate anything else? That seems
simple, but might very well be straight-up wrong. Consider:
def test_proxy(x):
x_ = Proxy(x)
y = ensure_eval(x_)
y_ = ensure_eval(y)
assert x is y
assert x is y_
This should always succeed, right? Well, what if x is itself a Proxy
object? How does it know not to reevaluate it?
ChrisA
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/GTCRUPQOFP63VA2T2N7BVBO6JKR3D7I6/
Code of Conduct: http://python.org/psf/codeofconduct/