If we put technical considerations aside, maybe we
should just ask to ourselves what behavior do we expect
when doing equality tests between ordered dictionaries. As
a reminder:
>>> xy = OrderedDict([('x', None), ('y', None)])
>>> yx = OrderedDict([('y', None), ('x', None)])
>>> xy == yx
False
>>> xy.items() == yx.items()
True
>>> xy.keys() == yx.keys()
True
>>> xy.values() == yx.values()
False
So, it appears that:
1. equality tests between odict_values use objects
identity and not equality,
2. equality tests between odict_keys do not respect order.
If it is not technically possible to change the current
implementation, maybe all we can do is just add a warning
about current behavior in the documentation?