A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://mail.python.org/pipermail/python-dev/2003-August/037710.html below:

[Python-Dev] PyMapping_Check Bug?

[Python-Dev] PyMapping_Check Bug? [Python-Dev] PyMapping_Check Bug?Bernhard Herzog bh at intevation.de
Mon Aug 18 13:28:21 EDT 2003
Guido van Rossum <guido at python.org> writes:

> I don't see this.  operator.isMappingType() maps directly to
> PyMapping_Check(); and I tried this:
>
>     >>> import operator
>     >>> operator.isMappingType(str)
>     False
>     >>> class C(object): pass
>     ...
>     >>> operator.isMappingType(C)
>     False
>     >>> operator.isMappingType(C())
>     False
>     >>> operator.isMappingType({})
>     True
>     >>>
>
> Looks okay to me. :-)

Are these OK, though:

>>> operator.isMappingType(())
True
>>> operator.isMappingType([])
True
>>> operator.isMappingType("")
True


In Python 2.2:

>>> operator.isMappingType(())
0
>>> operator.isMappingType([])
0
>>> operator.isMappingType("")
0


I just found out that this change is the cause for a Bug in my shapelib
bindings which at one point try to determine whether a method argument
is a dictionary like object by testing whether PyMapping_Check returns
true and that assume it's a sequence otherwise.

As a work-around it seems I can use isSequenceType/PySequence_Check to
effectively turn the test around and determine whether the object is a
sequence and assume it's a mapping otherwise.

   Bernhard

-- 
Intevation GmbH                                 http://intevation.de/
Sketch                                 http://sketch.sourceforge.net/
Thuban                                  http://thuban.intevation.org/

More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4