Skip to content

class apitools.base.protorpclite.messages.Message is unhashable in Python 3 #261

@ttanay

Description

@ttanay

The class apitools.base.protorpclite.messages.Message is an unhashable type in Python 3 and as a result, raises a TypeError when used as a key in a dict.

The reason for this is that in Python 3.x "a class that overrides __eq__() and does not define __hash__() will have its __hash__() implicitly set to None" (https://docs.python.org/3.6/reference/datamodel.html#object.__hash__). This makes it unhashable.

In Python 2, since __eq__() was defined, it simply inherited the __hash__() from object. In Python 3 it doesn't.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions