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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions