|
3 | 3 | import enum |
4 | 4 | import typing |
5 | 5 |
|
| 6 | +import zigpy.types as zigpy_t |
| 7 | + |
6 | 8 | from zigpy_znp.types.cstruct import CStruct |
7 | 9 |
|
8 | 10 |
|
@@ -264,30 +266,6 @@ def deserialize(cls, data: bytes, *, align=False) -> tuple[CompleteList, bytes]: |
264 | 266 | return r, data |
265 | 267 |
|
266 | 268 |
|
267 | | -def enum_flag_factory(int_type: FixedIntType) -> enum.Flag: |
268 | | - """ |
269 | | - Mixins are broken by Python 3.8.6 so we must dynamically create the enum with the |
270 | | - appropriate methods but with only one non-Enum parent class. |
271 | | - """ |
272 | | - |
273 | | - class _NewEnum(int_type, enum.Flag): # type:ignore[misc,valid-type] |
274 | | - # Rebind classmethods to our own class |
275 | | - _missing_ = classmethod(enum.IntFlag._missing_.__func__) |
276 | | - _create_pseudo_member_ = classmethod( |
277 | | - enum.IntFlag._create_pseudo_member_.__func__ |
278 | | - ) |
279 | | - |
280 | | - __or__ = enum.IntFlag.__or__ |
281 | | - __and__ = enum.IntFlag.__and__ |
282 | | - __xor__ = enum.IntFlag.__xor__ |
283 | | - __ror__ = enum.IntFlag.__ror__ |
284 | | - __rand__ = enum.IntFlag.__rand__ |
285 | | - __rxor__ = enum.IntFlag.__rxor__ |
286 | | - __invert__ = enum.IntFlag.__invert__ |
287 | | - |
288 | | - return _NewEnum # type:ignore[return-value] |
289 | | - |
290 | | - |
291 | 269 | class enum_uint8(uint8_t, enum.Enum): |
292 | 270 | pass |
293 | 271 |
|
@@ -320,33 +298,33 @@ class enum_uint64(uint64_t, enum.Enum): |
320 | 298 | pass |
321 | 299 |
|
322 | 300 |
|
323 | | -class enum_flag_uint8(enum_flag_factory(uint8_t)): # type:ignore[misc] |
| 301 | +class enum_flag_uint8(zigpy_t.bitmap_factory(uint8_t)): # type:ignore[misc] |
324 | 302 | pass |
325 | 303 |
|
326 | 304 |
|
327 | | -class enum_flag_uint16(enum_flag_factory(uint16_t)): # type:ignore[misc] |
| 305 | +class enum_flag_uint16(zigpy_t.bitmap_factory(uint16_t)): # type:ignore[misc] |
328 | 306 | pass |
329 | 307 |
|
330 | 308 |
|
331 | | -class enum_flag_uint24(enum_flag_factory(uint24_t)): # type:ignore[misc] |
| 309 | +class enum_flag_uint24(zigpy_t.bitmap_factory(uint24_t)): # type:ignore[misc] |
332 | 310 | pass |
333 | 311 |
|
334 | 312 |
|
335 | | -class enum_flag_uint32(enum_flag_factory(uint32_t)): # type:ignore[misc] |
| 313 | +class enum_flag_uint32(zigpy_t.bitmap_factory(uint32_t)): # type:ignore[misc] |
336 | 314 | pass |
337 | 315 |
|
338 | 316 |
|
339 | | -class enum_flag_uint40(enum_flag_factory(uint40_t)): # type:ignore[misc] |
| 317 | +class enum_flag_uint40(zigpy_t.bitmap_factory(uint40_t)): # type:ignore[misc] |
340 | 318 | pass |
341 | 319 |
|
342 | 320 |
|
343 | | -class enum_flag_uint48(enum_flag_factory(uint48_t)): # type:ignore[misc] |
| 321 | +class enum_flag_uint48(zigpy_t.bitmap_factory(uint48_t)): # type:ignore[misc] |
344 | 322 | pass |
345 | 323 |
|
346 | 324 |
|
347 | | -class enum_flag_uint56(enum_flag_factory(uint56_t)): # type:ignore[misc] |
| 325 | +class enum_flag_uint56(zigpy_t.bitmap_factory(uint56_t)): # type:ignore[misc] |
348 | 326 | pass |
349 | 327 |
|
350 | 328 |
|
351 | | -class enum_flag_uint64(enum_flag_factory(uint64_t)): # type:ignore[misc] |
| 329 | +class enum_flag_uint64(zigpy_t.bitmap_factory(uint64_t)): # type:ignore[misc] |
352 | 330 | pass |
0 commit comments