<div dir="ltr">One option would be to decorate those functions and provide an implementation to __bool__ or __nonzero__ which raises an exception.<div><br></div><div>Something like this</div><div><br></div><div><div>In [1]: def a(): pass</div><div>In [2]: def r(): raise RuntimeError('Do not forget to call this')</div><div>In [3]: a.__bool__ = r</div></div><div>In [4]: if a: pass</div><div><br></div><div>I don't have an environment to test if this is possible. This would allow marking with a decorator functions that might be misleading or that are a common source of issues for new users.</div><div><br></div><div>--</div><div>David Navarro</div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On 11 October 2016 at 17:34, Ethan Furman <span dir="ltr"><<a href="mailto:ethan@stoneleaf.us" target="_blank">ethan@stoneleaf.us</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 10/11/2016 07:00 AM, Steven D'Aprano wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Tue, Oct 11, 2016 at 02:41:34PM +0200, Sven R. Kunze wrote:<br>
</blockquote>
<br>
</span><span class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
on django-developers, an intriguing idea appeared:<br>
<a href="https://groups.google.com/d/msg/django-developers/4bntzg1HwwY/HHHjbDnLBQAJ" rel="noreferrer" target="_blank">https://groups.google.com/d/ms<wbr>g/django-developers/4bntzg1Hww<wbr>Y/HHHjbDnLBQAJ</a><br>
<br>
"""<br>
It seems to me that the default `method.__bool__` is undesirable in<br>
Jinja2 templates. I do not know Jinja2 well enough, but maybe they could<br>
benefit from a patch where `if`-statements give a warning/error when the<br>
expression is a callable (with the default `FunctionType.__bool__`?<br>
This would solve the issue not just for the methods you mention, but<br>
more in general.<br>
</blockquote>
<br>
That should be easy enough to do as a custom descriptor.<br>
<br>
But I would not like to see the default function or method __bool__<br>
raise a warning.<br>
</blockquote>
<br></span>
[...]<span class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
So I think this is something that Django/Jinja2 should implement for its<br>
own methods that need it, it should not be a general feature of all<br>
Python functions/methods.<br>
</blockquote>
<br></span>
Agreed. Python is a /general/-purpose programming language.  We should not make changes to help one subset of users when those changes will harm another subset (and being flooded with false positives is harmful) -- particularly when easy customization is already available.<br>
<br>
--<br>
~Ethan~<div class="HOEnZb"><div class="h5"><br>
______________________________<wbr>_________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org" target="_blank">Python-ideas@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-ideas" rel="noreferrer" target="_blank">https://mail.python.org/mailma<wbr>n/listinfo/python-ideas</a><br>
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" rel="noreferrer" target="_blank">http://python.org/psf/codeofco<wbr>nduct/</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">David Navarro Estruch</div>
</div></div>