Skip to content

Commit

Permalink
Don't reassign cls.__new__ for Python 3.10+ (#219)
Browse files Browse the repository at this point in the history
* Don't reassign cls.__new__ for Python 3.10+

* Fix lint
  • Loading branch information
cdce8p authored Jul 20, 2023
1 parent 686cb6c commit e2fa419
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions zigpy_znp/types/basic.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from __future__ import annotations

import sys
import enum
import typing

Expand Down Expand Up @@ -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:
Expand Down

0 comments on commit e2fa419

Please sign in to comment.