10000 bpo-5945: mapping.rst: PyMapping_Check(list) returns 1 by jbarlow83 · Pull Request #144 · python/cpython · GitHub
[go: up one dir, main page]

Skip to content

bpo-5945: mapping.rst: PyMapping_Check(list) returns 1 #144

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 3 commits into from
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
mapping.rst: PyMapping_Check(list) returns 1
As discussed below, in Python 3, PyMapping_Check(list) returns 1. This behavior is justified by a developer as consistent with Python 3's internals. It is however surprising to C-API users (speaking from experience) and because it deviates from collections.abc.Mapping.

https://mail.python.org/pipermail/python-dev/2009-May/089445.html

Squashed a few revisions
  • Loading branch information
jbarlow83 authored and James R. Barlow committed Feb 27, 2017
commit 0c7abc14f52623616c24f9cc37f79b2aa206a9b8
4 changes: 3 additions & 1 deletion Doc/c-api/mapping.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ Mapping Protocol
.. c:function:: int PyMapping_Check(PyObject *o)

Return ``1`` if the object provides mapping protocol, and ``0`` otherwise. This
function always succeeds.
function always succeeds. The C-API mapping protocol is not equivalent to
:class:`collections.abc.Mapping`. In particular, ``PyMapping_Check(list)``
returns ``1``.


.. c:function:: Py_ssize_t PyMapping_Size(PyObject *o)
Expand Down
0