This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author benjamin.peterson
Recipients JBernardo, benjamin.peterson, georg.brandl, pitrou
Date 2011-12-28.17:01:13
SpamBayes Score 3.5527747e-11
Marked as misclassified No
Message-id <CAPZV6o9vEL2Be0Kj=RmKkE===usbp0_UVCQXdLNokJKxZhnrcQ@mail.gmail.com>
In-reply-to <1325091509.16.0.812673048109.issue13667@psf.upfronthosting.co.za>
Content
2011/12/28 João Bernardo <report@bugs.python.org>:
>
> João Bernardo <jbvsmo@gmail.com> added the comment:
>
> I see that every other comparison operator (<, >, <=, >=, ==, !=) except for `is` work the way I expect and is able to return anything.
>
> e.g.
>
>>>> numpy.arange(5) < 3
> array([ True,  True,  True, False, False], dtype=bool)
>
> I didn't checked the code (and probably I'm talking nonsense), but seems like the `in` operator has an extra call to `PyObject_IsTrue` that maybe could be dropped?

I'm not sure what you're referring to, but I doubt that would do the job.

>
> Of course it can break code relying on `x in y` being True/False but it would only happen on customized classes.
>
> Another option that won't break code is to add a different method to handle these cases. Something like "__contains_non_bool__", but that'd be a big api change.

And completely hideous.
History
Date User Action Args
2011-12-28 17:01:13benjamin.petersonsetrecipients: + benjamin.peterson, georg.brandl, pitrou, JBernardo
2011-12-28 17:01:13benjamin.petersonlinkissue13667 messages
2011-12-28 17:01:13benjamin.petersoncreate