One option would be to decorate those functions and provide an implementation to __bool__ or __nonzero__ which raises an exception.
Something like this In [1]: def a(): pass In [2]: def r(): raise RuntimeError('Do not forget to call this') In [3]: a.__bool__ = r In [4]: if a: pass 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. -- David Navarro On 11 October 2016 at 17:34, Ethan Furman <et...@stoneleaf.us> wrote: > On 10/11/2016 07:00 AM, Steven D'Aprano wrote: > >> On Tue, Oct 11, 2016 at 02:41:34PM +0200, Sven R. Kunze wrote: >> > > on django-developers, an intriguing idea appeared: >>> https://groups.google.com/d/msg/django-developers/4bntzg1Hww >>> Y/HHHjbDnLBQAJ >>> >>> """ >>> It seems to me that the default `method.__bool__` is undesirable in >>> Jinja2 templates. I do not know Jinja2 well enough, but maybe they could >>> benefit from a patch where `if`-statements give a warning/error when the >>> expression is a callable (with the default `FunctionType.__bool__`? >>> This would solve the issue not just for the methods you mention, but >>> more in general. >>> >> >> That should be easy enough to do as a custom descriptor. >> >> But I would not like to see the default function or method __bool__ >> raise a warning. >> > > [...] > > So I think this is something that Django/Jinja2 should implement for its >> own methods that need it, it should not be a general feature of all >> Python functions/methods. >> > > 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. > > -- > ~Ethan~ > > _______________________________________________ > Python-ideas mailing list > Python-ideas@python.org > https://mail.python.org/mailman/listinfo/python-ideas > Code of Conduct: http://python.org/psf/codeofconduct/ > -- David Navarro Estruch
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/