qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Justin Ross (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (PROTON-1835) [python] Use of Python dict for AMQP maps does not allow derived or related keys of the same value
Date Wed, 02 May 2018 22:19:00 GMT

     [ https://issues.apache.org/jira/browse/PROTON-1835?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Justin Ross updated PROTON-1835:
--------------------------------
    Summary: [python] Use of Python dict for AMQP maps does not allow derived or related keys
of the same value  (was: [Python binding] Use of Python dict for AMQP maps does not allow
derived or related keys of the same value)

> [python] Use of Python dict for AMQP maps does not allow derived or related keys of the
same value
> --------------------------------------------------------------------------------------------------
>
>                 Key: PROTON-1835
>                 URL: https://issues.apache.org/jira/browse/PROTON-1835
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: python-binding
>            Reporter: Kim van der Riet
>            Priority: Major
>
> The AMQP map (expressed as a list) {{[binary(123), "hello", decimal128(123), "world"]}} cannot
be implemented in Python using the {{dict}} type. This happens because {{proton.decimal}}
is derived from {{bytes}}, and the dictionary treats the keys as the same value and causes
the first value to be overwritten by the second:
> {noformat}
> >>> import proton
> >>> {b'123': 'hello', proton.decimal128(b'123'): 'world'}
> {'123': 'world'}
> {noformat}
> Using the {{[]}} operator to add the values one at a time to an empty {{dict}} results
in the same outcome. Even using related classes (ie both derived from a common parent) don't
work:
> {noformat}
> >>> import proton
> >>> class mybin(bytes):
> ...     def __repr__(self):
> ...         return 'mybin(%s)' % bytes.__repr__(self)
> ... 
> >>> {mybin(b'123'): 'hello', proton.decimal128(b'123'): 'world'}
> {mybin('123'): 'world'}
> {noformat}
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


Mime
View raw message