use CAPS for enum values
This commit is contained in:
@@ -224,22 +224,22 @@ def decode_date(num: bytes) -> int: # TODO: type
|
||||
|
||||
|
||||
ENCODE_MAP: Dict[Datatype, Callable[[Any], bytes]] = {
|
||||
Datatype.string: encode_string,
|
||||
Datatype.octets: encode_octets,
|
||||
Datatype.ipaddr: encode_ipv4_address,
|
||||
Datatype.ipv4prefix: encode_ipv4_prefix,
|
||||
Datatype.ipv6addr: encode_ipv6_address,
|
||||
Datatype.ipv6prefix: encode_ipv6_prefix,
|
||||
Datatype.comboip: encode_combo_ip,
|
||||
Datatype.STRING: encode_string,
|
||||
Datatype.OCTETS: encode_octets,
|
||||
Datatype.IPADDR: encode_ipv4_address,
|
||||
Datatype.IPV4PREFIX: encode_ipv4_prefix,
|
||||
Datatype.IPV6ADDR: encode_ipv6_address,
|
||||
Datatype.IPV6PREFIX: encode_ipv6_prefix,
|
||||
Datatype.COMBOIP: encode_combo_ip,
|
||||
# TODO: length check (8)
|
||||
Datatype.ifid: encode_octets,
|
||||
Datatype.abinary: encode_ascend_binary,
|
||||
Datatype.byte: lambda value: encode_integer(value, "!B"),
|
||||
Datatype.short: lambda value: encode_integer(value, "!H"),
|
||||
Datatype.signed: lambda value: encode_integer(value, "!i"),
|
||||
Datatype.integer: encode_integer,
|
||||
Datatype.integer64: lambda value: encode_integer(value, "!Q"),
|
||||
Datatype.date: encode_date,
|
||||
Datatype.IFID: encode_octets,
|
||||
Datatype.ABINARY: encode_ascend_binary,
|
||||
Datatype.BYTE: lambda value: encode_integer(value, "!B"),
|
||||
Datatype.SHORT: lambda value: encode_integer(value, "!H"),
|
||||
Datatype.SIGNED: lambda value: encode_integer(value, "!i"),
|
||||
Datatype.INTEGER: encode_integer,
|
||||
Datatype.INTEGER64: lambda value: encode_integer(value, "!Q"),
|
||||
Datatype.DATE: encode_date,
|
||||
}
|
||||
|
||||
|
||||
@@ -252,22 +252,22 @@ def encode_attr(datatype: Datatype, value: bytes) -> bytes:
|
||||
|
||||
|
||||
DECODE_MAP: Dict[Datatype, Callable[[bytes], Any]] = {
|
||||
Datatype.string: decode_string,
|
||||
Datatype.octets: decode_octets,
|
||||
Datatype.ipaddr: decode_ipv4_address,
|
||||
Datatype.ipv4prefix: decode_ipv4_prefix,
|
||||
Datatype.ipv6addr: decode_ipv6_address,
|
||||
Datatype.ipv6prefix: decode_ipv6_prefix,
|
||||
Datatype.comboip: decode_combo_ip,
|
||||
Datatype.STRING: decode_string,
|
||||
Datatype.OCTETS: decode_octets,
|
||||
Datatype.IPADDR: decode_ipv4_address,
|
||||
Datatype.IPV4PREFIX: decode_ipv4_prefix,
|
||||
Datatype.IPV6ADDR: decode_ipv6_address,
|
||||
Datatype.IPV6PREFIX: decode_ipv6_prefix,
|
||||
Datatype.COMBOIP: decode_combo_ip,
|
||||
# TODO: length check (8)
|
||||
Datatype.ifid: decode_octets,
|
||||
Datatype.abinary: decode_ascend_binary,
|
||||
Datatype.byte: decode_integer,
|
||||
Datatype.short: decode_integer,
|
||||
Datatype.signed: lambda num: decode_integer(num, True),
|
||||
Datatype.integer: decode_integer,
|
||||
Datatype.integer64: decode_integer,
|
||||
Datatype.date: decode_date,
|
||||
Datatype.IFID: decode_octets,
|
||||
Datatype.ABINARY: decode_ascend_binary,
|
||||
Datatype.BYTE: decode_integer,
|
||||
Datatype.SHORT: decode_integer,
|
||||
Datatype.SIGNED: lambda num: decode_integer(num, True),
|
||||
Datatype.INTEGER: decode_integer,
|
||||
Datatype.INTEGER64: decode_integer,
|
||||
Datatype.DATE: decode_date,
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -40,28 +40,28 @@ class Code(IntEnum):
|
||||
class Datatype(Enum):
|
||||
"""Possible Datatypes for ATTRIBUTES"""
|
||||
|
||||
string = auto()
|
||||
octets = auto()
|
||||
date = auto()
|
||||
abinary = auto()
|
||||
byte = auto()
|
||||
short = auto()
|
||||
integer = auto()
|
||||
signed = auto()
|
||||
integer64 = auto()
|
||||
ipaddr = auto()
|
||||
ipv4prefix = auto()
|
||||
ipv6addr = auto()
|
||||
ipv6prefix = auto()
|
||||
comboip = auto()
|
||||
ifid = auto()
|
||||
ether = auto()
|
||||
concat = auto()
|
||||
tlv = auto()
|
||||
extended = auto()
|
||||
longextended = auto()
|
||||
evs = auto()
|
||||
vsa = auto()
|
||||
STRING = auto()
|
||||
OCTETS = auto()
|
||||
DATE = auto()
|
||||
ABINARY = auto()
|
||||
BYTE = auto()
|
||||
SHORT = auto()
|
||||
INTEGER = auto()
|
||||
SIGNED = auto()
|
||||
INTEGER64 = auto()
|
||||
IPADDR = auto()
|
||||
IPV4PREFIX = auto()
|
||||
IPV6ADDR = auto()
|
||||
IPV6PREFIX = auto()
|
||||
COMBOIP = auto()
|
||||
IFID = auto()
|
||||
ETHER = auto()
|
||||
CONCAT = auto()
|
||||
TLV = auto()
|
||||
EXTENDED = auto()
|
||||
LONGEXTENDED = auto()
|
||||
EVS = auto()
|
||||
VSA = auto()
|
||||
|
||||
|
||||
class Encrypt(IntEnum):
|
||||
|
||||
@@ -74,7 +74,7 @@ def decode_attributes(rad_dict: Dictionary, raw_packet: bytes) -> List[Attribute
|
||||
tag = 0
|
||||
if attr_def is None:
|
||||
name = "Unknown-Attribute"
|
||||
datatype = Datatype.octets
|
||||
datatype = Datatype.OCTETS
|
||||
else:
|
||||
name = attr_def.name
|
||||
datatype = attr_def.datatype
|
||||
@@ -119,14 +119,14 @@ def pre_decode_attributes( # pylint: disable=too-many-branches
|
||||
value = packet_body[2:length]
|
||||
try:
|
||||
attr_def = rad_dict.attrindex[key]
|
||||
if attr_def.datatype == Datatype.vsa:
|
||||
if attr_def.datatype == Datatype.VSA:
|
||||
tmp_attributes = decode_vsa(rad_dict, key, value, offset)
|
||||
else:
|
||||
if attr_def.datatype == Datatype.extended:
|
||||
if attr_def.datatype == Datatype.EXTENDED:
|
||||
key, value, modifier = decode_extended(key, value)
|
||||
elif attr_def.datatype == Datatype.longextended:
|
||||
elif attr_def.datatype == Datatype.LONGEXTENDED:
|
||||
key, value, modifier = decode_longextended(key, value)
|
||||
elif attr_def.datatype == Datatype.concat:
|
||||
elif attr_def.datatype == Datatype.CONCAT:
|
||||
key, value, modifier = decode_concat(key, value, offset)
|
||||
else:
|
||||
modifier = 2
|
||||
@@ -140,11 +140,9 @@ def pre_decode_attributes( # pylint: disable=too-many-branches
|
||||
for key, value, offset in tmp_attributes:
|
||||
try:
|
||||
adef = rad_dict.attrindex[key]
|
||||
if adef.datatype == Datatype.tlv:
|
||||
if adef.datatype == Datatype.TLV:
|
||||
# TODO: deal with tagged tlvs
|
||||
attributes.extend(decode_tlv(rad_dict, list(key), value, offset))
|
||||
elif adef.datatype == Datatype.evs:
|
||||
attributes.append(decode_evs(key, value, offset))
|
||||
else:
|
||||
raise ValueError
|
||||
except (ValueError, KeyError):
|
||||
@@ -259,7 +257,7 @@ def decode_tlv(
|
||||
while value:
|
||||
(key, length) = struct.unpack("!BB", value[0:2])
|
||||
attr_def = rad_dict.attrindex[tuple(key_stack)]
|
||||
if attr_def.datatype == Datatype.tlv:
|
||||
if attr_def.datatype == Datatype.TLV:
|
||||
key_stack.append(key)
|
||||
value = value[:length]
|
||||
ret.extend(decode_tlv(rad_dict, key_stack, value[2:], offset + 2))
|
||||
|
||||
Reference in New Issue
Block a user