FutureWarning: comparison to `None` will result in an elementwise object comparison in the future.

Hi all,
I'm commonly using function signatures like
def myfunc(a, b, c=None): if c is None: # do something ... ...
where c is an optional array argument. For some time now, I'm getting a
FutureWarning: comparison to `None` will result in an elementwise object comparison in the future
from the "c is None" comparison. I'm wondering what would be the best way to do this check in a future-proof way?
Best, -- Andreas.

On Apr 8, 2015 2:16 PM, "Andreas Hilboll" lists@hilboll.de wrote:
Hi all,
I'm commonly using function signatures like
def myfunc(a, b, c=None): if c is None: # do something ... ...
where c is an optional array argument. For some time now, I'm getting a
FutureWarning: comparison to `None` will result in an elementwise object comparison in the future
from the "c is None" comparison. I'm wondering what would be the best way to do this check in a future-proof way?
As far as I know, you should be getting the warning when you write c == None and the fix should be to write c is None instead. (And this is definitely an important fix -- it's basically a bug in numpy that the == form ever worked.) Are you certain that you're getting warnings from 'c is None'?
-n

On 08.04.2015 20:30, Nathaniel Smith wrote:
On Apr 8, 2015 2:16 PM, "Andreas Hilboll" <lists@hilboll.de mailto:lists@hilboll.de> wrote:
Hi all,
I'm commonly using function signatures like
def myfunc(a, b, c=None): if c is None: # do something ... ...
where c is an optional array argument. For some time now, I'm getting a
FutureWarning: comparison to `None` will result in an elementwise object comparison in the future
from the "c is None" comparison. I'm wondering what would be the best way to do this check in a future-proof way?
As far as I know, you should be getting the warning when you write c == None and the fix should be to write c is None instead. (And this is definitely an important fix -- it's basically a bug in numpy that the == form ever worked.) Are you certain that you're getting warnings from 'c is None'?
My mistake; I was actually doing
if p1 is None == h1 is None:
instead of
if (p1 is None) == (h1 is None):
Sorry for the noise.
-- Andreas.
participants (2)
-
Andreas Hilboll
-
Nathaniel Smith