Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Python 3.12.3 regression with enums #616

Merged
merged 8 commits into from
Apr 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion bellows/cli/dump.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ def cb(frame_name, response):
hdr = pure_pcapy.Pkthdr(ts_sec, ts_usec, len(data), len(data))

try:
pcap.dump(hdr, data)
pcap.dump(hdr, bytes(data))
except BrokenPipeError:
done_event.set()

Expand Down
2 changes: 1 addition & 1 deletion bellows/cli/network.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ def cb(fut, frame_name, response):
if isinstance(extended_pan_id, str):
extended_pan_id = util.parse_epan(extended_pan_id)
if extended_pan_id is None:
extended_pan_id = t.fixed_list(8, t.uint8_t)([t.uint8_t(0)] * 8)
extended_pan_id = t.FixedList[t.uint8_t, 8]([t.uint8_t(0)] * 8)

v = await util.network_init(s)

Expand Down
2 changes: 1 addition & 1 deletion bellows/cli/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ async def network_init(s):
def parse_epan(epan):
"""Parse a user specified extended PAN ID"""
epan_list = [t.uint8_t(x, 16) for x in epan.split(":")]
return t.fixed_list(8, t.uint8_t)(epan_list)
return t.FixedList[t.uint8_t, 8](epan_list)


async def basic_tc_permits(s):
Expand Down
22 changes: 11 additions & 11 deletions bellows/ezsp/v10/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
t.uint8_t,
t.uint8_t,
t.uint8_t,
t.List(t.uint16_t),
t.List(t.uint16_t),
t.List[t.uint16_t],
t.List[t.uint16_t],
),
(t.EzspStatus,),
),
Expand All @@ -35,8 +35,8 @@
"invalidCommand": (0x0058, (), (t.EzspStatus,)),
"callback": (0x0006, (), ()),
"noCallbacks": (0x0007, (), ()),
"setToken": (0x0009, (t.uint8_t, t.fixed_list(8, t.uint8_t)), (t.EmberStatus,)),
"getToken": (0x000A, (t.uint8_t,), (t.EmberStatus, t.fixed_list(8, t.uint8_t))),
"setToken": (0x0009, (t.uint8_t, t.FixedList[t.uint8_t, 8]), (t.EmberStatus,)),
"getToken": (0x000A, (t.uint8_t,), (t.EmberStatus, t.FixedList[t.uint8_t, 8])),
"getMfgToken": (0x000B, (t.EzspMfgTokenId,), (t.LVBytes,)),
"setMfgToken": (0x000C, (t.EzspMfgTokenId, t.LVBytes), (t.EmberStatus,)),
"stackTokenChangedHandler": (0x000D, (), (t.uint16_t,)),
Expand All @@ -52,12 +52,12 @@
"readAndClearCounters": (
0x0065,
(),
(t.fixed_list(len(t.EmberCounterType), t.uint16_t),),
(t.FixedList[t.uint16_t, len(t.EmberCounterType)],),
),
"readCounters": (
0x00F1,
(),
(t.fixed_list(len(t.EmberCounterType), t.uint16_t),),
(t.FixedList[t.uint16_t, len(t.EmberCounterType)],),
),
"counterRolloverHandler": (0x00F2, (), (t.EmberCounterType,)),
"delayTest": (0x009D, (t.uint16_t,), ()),
Expand Down Expand Up @@ -181,7 +181,7 @@
"getCurrentDutyCycle": (
0x004C,
(t.uint8_t,),
(t.EmberStatus, t.fixed_list(134, t.uint8_t)),
(t.EmberStatus, t.FixedList[t.uint8_t, 134]),
),
"dutyCycleHandler": (
0x004D,
Expand Down Expand Up @@ -306,7 +306,7 @@
"incomingRouteRecordHandler": (
0x0059,
(),
(t.EmberNodeId, t.EUI64, t.uint8_t, t.int8s, t.LVList(t.EmberNodeId)),
(t.EmberNodeId, t.EUI64, t.uint8_t, t.int8s, t.LVList[t.EmberNodeId]),
),
"incomingNetworkStatusHandler": (
0x00C4,
Expand All @@ -315,7 +315,7 @@
),
"setSourceRoute": (
0x00AE,
(t.EmberNodeId, t.LVList(t.EmberNodeId)),
(t.EmberNodeId, t.LVList[t.EmberNodeId]),
(t.EmberStatus,),
),
"setSourceRouteDiscoveryMode": (0x005A, (t.uint8_t,), (t.uint32_t,)),
Expand Down Expand Up @@ -550,8 +550,8 @@
"bootloadTransmitCompleteHandler": (0x0093, (), (t.EmberStatus, t.LVBytes)),
"aesEncrypt": (
0x0094,
(t.fixed_list(16, t.uint8_t), t.fixed_list(16, t.uint8_t)),
(t.fixed_list(16, t.uint8_t),),
(t.FixedList[t.uint8_t, 16], t.FixedList[t.uint8_t, 16]),
(t.FixedList[t.uint8_t, 16],),
),
# 14. ZLL Frames
"zllNetworkOps": (
Expand Down
4 changes: 2 additions & 2 deletions bellows/ezsp/v10/types/named.py
Original file line number Diff line number Diff line change
Expand Up @@ -702,15 +702,15 @@ class SecureEzspSecurityLevel(basic.uint8_t):
"""Security level of the Secure EZSP Protocol."""


class SecureEzspRandomNumber(basic.fixed_list(16, basic.uint8_t)):
class SecureEzspRandomNumber(basic.FixedList[basic.uint8_t, 16]):
"""Randomly generated 64-bit number.

Both NCP and Host contribute this number to create the Session ID,
which is used in the nonce.
"""


class SecureEzspSessionId(basic.fixed_list(8, basic.uint8_t)):
class SecureEzspSessionId(basic.FixedList[basic.uint8_t, 8]):
"""Generated 64-bit Session ID, using random numbers from Host and NCP.

It is generated at each reboot (during negotiation phase). Having both sides
Expand Down
6 changes: 3 additions & 3 deletions bellows/ezsp/v10/types/struct.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ class EmberGpProxyTableEntry(EzspStruct):
# The security frame counter of the GPD.
gpdSecurityFrameCounter: named.EmberGpSecurityFrameCounter
# The list of sinks (hardcoded to 2 which is the spec minimum).
sinkList: basic.fixed_list(2, EmberGpSinkListEntry)
sinkList: basic.FixedList[EmberGpSinkListEntry, 2]
# The groupcast radius.
groupcastRadius: basic.uint8_t
# The search counter
Expand All @@ -160,7 +160,7 @@ class EmberGpSinkTableEntry(EzspStruct):
# The device id for the GPD.
deviceId: basic.uint8_t
# The list of sinks (hardcoded to 2 which is the spec minimum).
sinkList: basic.fixed_list(2, EmberGpSinkListEntry)
sinkList: basic.FixedList[EmberGpSinkListEntry, 2]
# The assigned alias for the GPD.
assignedAlias: named.EmberNodeId
# The groupcast radius.
Expand All @@ -185,7 +185,7 @@ class EmberDutyCycleLimits(EzspStruct):
# The vendor identifier field shall contain the vendor identifier of the node.
vendorId: basic.uint16_t
# The vendor string field shall contain the vendor string of the node.
vendorString: basic.fixed_list(7, basic.uint8_t)
vendorString: basic.FixedList[basic.uint8_t, 7]


class EmberPerDeviceDutyCycle(EzspStruct):
Expand Down
1 change: 0 additions & 1 deletion bellows/ezsp/v13/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
tuple(
{
"status": t.sl_Status,
"bogus": t.uint16_t,
"network_key_info": t.sl_zb_sec_man_network_key_info_t,
}.values()
),
Expand Down
22 changes: 11 additions & 11 deletions bellows/ezsp/v4/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
t.uint8_t,
t.uint8_t,
t.uint8_t,
t.List(t.uint16_t),
t.List(t.uint16_t),
t.List[t.uint16_t],
t.List[t.uint16_t],
),
(t.EzspStatus,),
),
Expand Down Expand Up @@ -47,8 +47,8 @@
"invalidCommand": (0x58, (), (t.EzspStatus,)),
"callback": (0x06, (), ()),
"noCallbacks": (0x07, (), ()),
"setToken": (0x09, (t.uint8_t, t.fixed_list(8, t.uint8_t)), (t.EmberStatus,)),
"getToken": (0x0A, (t.uint8_t,), (t.EmberStatus, t.fixed_list(8, t.uint8_t))),
"setToken": (0x09, (t.uint8_t, t.FixedList[t.uint8_t, 8]), (t.EmberStatus,)),
"getToken": (0x0A, (t.uint8_t,), (t.EmberStatus, t.FixedList[t.uint8_t, 8])),
"getMfgToken": (0x0B, (t.EzspMfgTokenId,), (t.LVBytes,)),
"setMfgToken": (0x0C, (t.EzspMfgTokenId, t.LVBytes), (t.EmberStatus,)),
"stackTokenChangedHandler": (0x0D, (), (t.uint16_t,)),
Expand All @@ -64,12 +64,12 @@
"readAndClearCounters": (
0x65,
(),
(t.fixed_list(len(t.EmberCounterType), t.uint16_t),),
(t.FixedList[t.uint16_t, len(t.EmberCounterType)],),
),
"readCounters": (
0xF1,
(),
(t.fixed_list(len(t.EmberCounterType), t.uint16_t),),
(t.FixedList[t.uint16_t, len(t.EmberCounterType)],),
),
"counterRolloverHandler": (0xF2, (), (t.EmberCounterType,)),
"delayTest": (0x9D, (t.uint16_t,), ()),
Expand Down Expand Up @@ -220,11 +220,11 @@
"incomingRouteRecordHandler": (
0x59,
(),
(t.EmberNodeId, t.EUI64, t.uint8_t, t.int8s, t.LVList(t.EmberNodeId)),
(t.EmberNodeId, t.EUI64, t.uint8_t, t.int8s, t.LVList[t.EmberNodeId]),
),
"setSourceRoute": (
0x5A,
(t.EmberNodeId, t.LVList(t.EmberNodeId)),
(t.EmberNodeId, t.LVList[t.EmberNodeId]),
(t.EmberStatus,),
),
"incomingManyToOneRouteRequestHandler": (
Expand Down Expand Up @@ -412,8 +412,8 @@
"bootloadTransmitCompleteHandler": (0x93, (), (t.EmberStatus, t.LVBytes)),
"aesEncrypt": (
0x94,
(t.fixed_list(16, t.uint8_t), t.fixed_list(16, t.uint8_t)),
(t.fixed_list(16, t.uint8_t),),
(t.FixedList[t.uint8_t, 16], t.FixedList[t.uint8_t, 16]),
(t.FixedList[t.uint8_t, 16],),
),
"overrideCurrentChannel": (0x95, (t.uint8_t,), (t.EmberStatus,)),
# 14. ZLL Frames
Expand Down Expand Up @@ -501,7 +501,7 @@
t.uint8_t,
t.uint16_t,
t.uint8_t,
t.LVList(t.uint8_t),
t.LVList[t.uint8_t],
),
(t.EmberStatus,),
),
Expand Down
10 changes: 5 additions & 5 deletions bellows/ezsp/v4/types/struct.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class EmberRf4ceVendorInfo(EzspStruct):
# the node.
vendorId: basic.uint16_t
# The vendor string field shall contain the vendor string of the node.
vendorString: basic.fixed_list(7, basic.uint8_t)
vendorString: basic.FixedList[basic.uint8_t, 7]


class EmberRf4ceApplicationInfo(EzspStruct):
Expand All @@ -62,13 +62,13 @@ class EmberRf4ceApplicationInfo(EzspStruct):
capabilities: named.EmberRf4ceApplicationCapabilities
# The user string field shall contain the user specified identification
# string.
userString: basic.fixed_list(15, basic.uint8_t)
userString: basic.FixedList[basic.uint8_t, 15]
# The device type list field shall contain the list of device types
# supported by the node.
deviceTypeList: basic.fixed_list(3, basic.uint8_t)
deviceTypeList: basic.FixedList[basic.uint8_t, 3]
# The profile ID list field shall contain the list of profile
# identifiers disclosed as supported by the node.
profileIdList: basic.fixed_list(7, basic.uint8_t)
profileIdList: basic.FixedList[basic.uint8_t, 7]


class EmberRf4cePairingTableEntry(EzspStruct):
Expand All @@ -88,7 +88,7 @@ class EmberRf4cePairingTableEntry(EzspStruct):
# The vendor ID of the destination device.
destVendorId: basic.uint16_t
# The list of profiles supported by the destination device.
destProfileIdList: basic.fixed_list(7, basic.uint8_t)
destProfileIdList: basic.FixedList[basic.uint8_t, 7]
# The length of the list of supported profiles.
destProfileIdListLength: basic.uint8_t
# Info byte.
Expand Down
22 changes: 11 additions & 11 deletions bellows/ezsp/v5/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
t.uint8_t,
t.uint8_t,
t.uint8_t,
t.List(t.uint16_t),
t.List(t.uint16_t),
t.List[t.uint16_t],
t.List[t.uint16_t],
),
(t.EzspStatus,),
),
Expand Down Expand Up @@ -48,8 +48,8 @@
"invalidCommand": (0x58, (), (t.EzspStatus,)),
"callback": (0x06, (), ()),
"noCallbacks": (0x07, (), ()),
"setToken": (0x09, (t.uint8_t, t.fixed_list(8, t.uint8_t)), (t.EmberStatus,)),
"getToken": (0x0A, (t.uint8_t,), (t.EmberStatus, t.fixed_list(8, t.uint8_t))),
"setToken": (0x09, (t.uint8_t, t.FixedList[t.uint8_t, 8]), (t.EmberStatus,)),
"getToken": (0x0A, (t.uint8_t,), (t.EmberStatus, t.FixedList[t.uint8_t, 8])),
"getMfgToken": (0x0B, (t.EzspMfgTokenId,), (t.LVBytes,)),
"setMfgToken": (0x0C, (t.EzspMfgTokenId, t.LVBytes), (t.EmberStatus,)),
"stackTokenChangedHandler": (0x0D, (), (t.uint16_t,)),
Expand All @@ -65,12 +65,12 @@
"readAndClearCounters": (
0x65,
(),
(t.fixed_list(len(t.EmberCounterType), t.uint16_t),),
(t.FixedList[t.uint16_t, len(t.EmberCounterType)],),
),
"readCounters": (
0xF1,
(),
(t.fixed_list(len(t.EmberCounterType), t.uint16_t),),
(t.FixedList[t.uint16_t, len(t.EmberCounterType)],),
),
"counterRolloverHandler": (0xF2, (), (t.EmberCounterType,)),
"delayTest": (0x9D, (t.uint16_t,), ()),
Expand Down Expand Up @@ -221,12 +221,12 @@
"incomingRouteRecordHandler": (
0x59,
(),
(t.EmberNodeId, t.EUI64, t.uint8_t, t.int8s, t.LVList(t.EmberNodeId)),
(t.EmberNodeId, t.EUI64, t.uint8_t, t.int8s, t.LVList[t.EmberNodeId]),
),
"changeSourceRouteHandler": (0xC4, (), (t.EmberNodeId, t.EmberNodeId, t.Bool)),
"setSourceRoute": (
0x5A,
(t.EmberNodeId, t.LVList(t.EmberNodeId)),
(t.EmberNodeId, t.LVList[t.EmberNodeId]),
(t.EmberStatus,),
),
"incomingManyToOneRouteRequestHandler": (
Expand Down Expand Up @@ -419,8 +419,8 @@
"bootloadTransmitCompleteHandler": (0x93, (), (t.EmberStatus, t.LVBytes)),
"aesEncrypt": (
0x94,
(t.fixed_list(16, t.uint8_t), t.fixed_list(16, t.uint8_t)),
(t.fixed_list(16, t.uint8_t),),
(t.FixedList[t.uint8_t, 16], t.FixedList[t.uint8_t, 16]),
(t.FixedList[t.uint8_t, 16],),
),
"overrideCurrentChannel": (0x95, (t.uint8_t,), (t.EmberStatus,)),
# 14. ZLL Frames
Expand Down Expand Up @@ -508,7 +508,7 @@
t.uint8_t,
t.uint16_t,
t.uint8_t,
t.LVList(t.uint8_t),
t.LVList[t.uint8_t],
),
(t.EmberStatus,),
),
Expand Down
4 changes: 2 additions & 2 deletions bellows/ezsp/v5/types/named.py
Original file line number Diff line number Diff line change
Expand Up @@ -624,15 +624,15 @@ class SecureEzspSecurityLevel(basic.uint8_t):
"""Security level of the Secure EZSP Protocol."""


class SecureEzspRandomNumber(basic.fixed_list(16, basic.uint8_t)):
class SecureEzspRandomNumber(basic.FixedList[basic.uint8_t, 16]):
"""Randomly generated 64-bit number.

Both NCP and Host contribute this number to create the Session ID,
which is used in the nonce.
"""


class SecureEzspSessionId(basic.fixed_list(8, basic.uint8_t)):
class SecureEzspSessionId(basic.FixedList[basic.uint8_t, 8]):
"""Generated 64-bit Session ID, using random numbers from Host and NCP.

It is generated at each reboot (during negotiation phase). Having both sides
Expand Down
10 changes: 5 additions & 5 deletions bellows/ezsp/v5/types/struct.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class EmberRf4ceVendorInfo(EzspStruct):
# the node.
vendorId: basic.uint16_t
# The vendor string field shall contain the vendor string of the node.
vendorString: basic.fixed_list(7, basic.uint8_t)
vendorString: basic.FixedList[basic.uint8_t, 7]


class EmberRf4ceApplicationInfo(EzspStruct):
Expand All @@ -62,13 +62,13 @@ class EmberRf4ceApplicationInfo(EzspStruct):
capabilities: named.EmberRf4ceApplicationCapabilities
# The user string field shall contain the user specified identification
# string.
userString: basic.fixed_list(15, basic.uint8_t)
userString: basic.FixedList[basic.uint8_t, 15]
# The device type list field shall contain the list of device types
# supported by the node.
deviceTypeList: basic.fixed_list(3, basic.uint8_t)
deviceTypeList: basic.FixedList[basic.uint8_t, 3]
# The profile ID list field shall contain the list of profile
# identifiers disclosed as supported by the node.
profileIdList: basic.fixed_list(7, basic.uint8_t)
profileIdList: basic.FixedList[basic.uint8_t, 7]


class EmberRf4cePairingTableEntry(EzspStruct):
Expand All @@ -88,7 +88,7 @@ class EmberRf4cePairingTableEntry(EzspStruct):
# The vendor ID of the destination device.
destVendorId: basic.uint16_t
# The list of profiles supported by the destination device.
destProfileIdList: basic.fixed_list(7, basic.uint8_t)
destProfileIdList: basic.FixedList[basic.uint8_t, 7]
# The length of the list of supported profiles.
destProfileIdListLength: basic.uint8_t
# Info byte.
Expand Down
Loading
Loading