diff --git a/zigpy_znp/types/basic.py b/zigpy_znp/types/basic.py index 7580a196..c9e2b82b 100644 --- a/zigpy_znp/types/basic.py +++ b/zigpy_znp/types/basic.py @@ -1,5 +1,6 @@ from __future__ import annotations +import sys import enum import typing @@ -65,10 +66,13 @@ def __init_subclass__(cls, signed=None, size=None, hex_repr=None) -> None: cls.__str__ = super().__str__ cls.__repr__ = super().__repr__ - # XXX: The enum module uses the first class with __new__ in its __dict__ as the - # member type. We have to ensure this is true for every subclass. - if "__new__" not in cls.__dict__: - cls.__new__ = cls.__new__ + if sys.version_info < (3, 10): + # XXX: The enum module uses the first class with __new__ in its __dict__ + # as the member type. We have to ensure this is true for + # every subclass. + # Fixed with https://github.com/python/cpython/pull/26658 + if "__new__" not in cls.__dict__: + cls.__new__ = cls.__new__ def serialize(self) -> bytes: try: