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 Joshua.Landau
Recipients Joshua.Landau
Date 2014-09-21.01:04:34
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1411261475.31.0.855934223682.issue22451@psf.upfronthosting.co.za>
In-reply-to
Content
All code referred to is from bltinmodule.c, Python 2.7.8:
https://github.com/python/cpython/blob/2.7/Python/bltinmodule.c

filter implements and optimization for PyBool_Type, making it equivalent to PyNone:

    # Line 303
    if (func == (PyObject *)&PyBool_Type || func == Py_None)

The specializations for tuples, byte strings and unicode don't have this:

    # Lines 2776, 2827, 2956, 2976
    if (func == Py_None)

This is a damper against recommending `filter(bool, ...)`.

---

Python 3 of course does not have these specializations, so has no bug.
History
Date User Action Args
2014-09-21 01:04:35Joshua.Landausetrecipients: + Joshua.Landau
2014-09-21 01:04:35Joshua.Landausetmessageid: <1411261475.31.0.855934223682.issue22451@psf.upfronthosting.co.za>
2014-09-21 01:04:35Joshua.Landaulinkissue22451 messages
2014-09-21 01:04:34Joshua.Landaucreate