From 26efbd7c3d5975bf04a20e0553ea948ed26409de Mon Sep 17 00:00:00 2001 From: Shyam D Date: Tue, 25 May 2021 09:23:50 -0700 Subject: [PATCH] make MPID hashable --- emmet-core/emmet/core/mpid.py | 3 +++ tests/emmet-core/test_mpid.py | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/emmet-core/emmet/core/mpid.py b/emmet-core/emmet/core/mpid.py index bdf0aa988b..fd51ed8002 100644 --- a/emmet-core/emmet/core/mpid.py +++ b/emmet-core/emmet/core/mpid.py @@ -54,6 +54,9 @@ def __lt__(self, other: Union["MPID", int, str]): return self.parts < other_parts + def __hash__(self): + return hash(self.parts) + @classmethod def __get_validators__(cls): yield cls.validate diff --git a/tests/emmet-core/test_mpid.py b/tests/emmet-core/test_mpid.py index a7b6c7ddc5..b43ccd1402 100644 --- a/tests/emmet-core/test_mpid.py +++ b/tests/emmet-core/test_mpid.py @@ -11,6 +11,11 @@ def test_mpid(): assert min([MPID("mp-44545"), MPID("mp-33"), MPID("mp-2134234")]) == MPID("mp-33") + assert ( + len(set([MPID("mp-33"), MPID("mp-44545"), MPID("mp-33"), MPID("mp-2134234")])) + == 3 + ) + def test_to_str(): assert str(MPID("mp-149")) == "mp-149"