[style] change python yapf column_limit to 119 (#5339)

This commit is contained in:
Simon Lin
2020-08-06 21:40:24 -07:00
committed by GitHub
parent e810357adb
commit d7343c877b
150 changed files with 2910 additions and 5676 deletions
+35 -79
View File
@@ -78,10 +78,7 @@ def calculate_checksum(data):
"""
# Create halfwords from data bytes. Example: data[0] = 0x01, data[1] =
# 0xb2 => 0x01b2
halfwords = [
((byte0 << 8) | byte1)
for byte0, byte1 in zip_longest(data[::2], data[1::2], fillvalue=0x00)
]
halfwords = [((byte0 << 8) | byte1) for byte0, byte1 in zip_longest(data[::2], data[1::2], fillvalue=0x00)]
checksum = 0
for halfword in halfwords:
@@ -202,11 +199,9 @@ class IPv6PseudoHeader(ConvertibleToBytes):
"""
def __init__(self, source_address, destination_address, payload_length,
next_header):
def __init__(self, source_address, destination_address, payload_length, next_header):
self._source_address = self._convert_to_ipaddress(source_address)
self._destination_address = self._convert_to_ipaddress(
destination_address)
self._destination_address = self._convert_to_ipaddress(destination_address)
self.payload_length = payload_length
self.next_header = next_header
@@ -261,8 +256,7 @@ class IPv6Header(ConvertibleToBytes, BuildableFromBytes):
):
self.version = self._version
self._source_address = self._convert_to_ipaddress(source_address)
self._destination_address = self._convert_to_ipaddress(
destination_address)
self._destination_address = self._convert_to_ipaddress(destination_address)
self.traffic_class = traffic_class
self.flow_label = flow_label
self.hop_limit = hop_limit
@@ -290,8 +284,7 @@ class IPv6Header(ConvertibleToBytes, BuildableFromBytes):
def to_bytes(self):
data = bytearray([
((self.version & 0x0F) << 4) | ((self.traffic_class >> 4) & 0x0F),
((self.traffic_class & 0x0F) << 4) |
((self.flow_label >> 16) & 0x0F),
((self.traffic_class & 0x0F) << 4) | ((self.flow_label >> 16) & 0x0F),
((self.flow_label >> 8) & 0xff),
((self.flow_label & 0xff)),
])
@@ -388,16 +381,12 @@ class IPv6Packet(ConvertibleToBytes):
"""
def __init__(self,
ipv6_header,
upper_layer_protocol,
extension_headers=None):
def __init__(self, ipv6_header, upper_layer_protocol, extension_headers=None):
self.ipv6_header = ipv6_header
self.upper_layer_protocol = upper_layer_protocol
self.extension_headers = (extension_headers
if extension_headers is not None else [])
self.extension_headers = (extension_headers if extension_headers is not None else [])
self._update_next_header_values_in_headers()
@@ -409,16 +398,13 @@ class IPv6Packet(ConvertibleToBytes):
if self.upper_layer_protocol.checksum != checksum:
raise RuntimeError("Could not create IPv6 packet. "
"Invalid checksum: {}!={}".format(
self.upper_layer_protocol.checksum,
checksum))
"Invalid checksum: {}!={}".format(self.upper_layer_protocol.checksum, checksum))
self.upper_layer_protocol.checksum = checksum
def _update_payload_length_value_in_ipv6_header(self):
self.ipv6_header.payload_length = len(self.upper_layer_protocol) + sum([
len(extension_header) for extension_header in self.extension_headers
])
self.ipv6_header.payload_length = len(self.upper_layer_protocol) + sum(
[len(extension_header) for extension_header in self.extension_headers])
def _update_next_header_values_in_headers(self):
last_header = self.ipv6_header
@@ -445,8 +431,7 @@ class IPv6Packet(ConvertibleToBytes):
self.upper_layer_protocol.type,
)
return calculate_checksum(pseudo_header.to_bytes() +
upper_layer_protocol_bytes)
return calculate_checksum(pseudo_header.to_bytes() + upper_layer_protocol_bytes)
def to_bytes(self):
self._update_payload_length_value_in_ipv6_header()
@@ -463,8 +448,7 @@ class IPv6Packet(ConvertibleToBytes):
return ipv6_packet
def __repr__(self):
return "IPv6Packet(header={}, upper_layer_protocol={})".format(
self.ipv6_header, self.upper_layer_protocol)
return "IPv6Packet(header={}, upper_layer_protocol={})".format(self.ipv6_header, self.upper_layer_protocol)
class UDPHeader(ConvertibleToBytes, BuildableFromBytes):
@@ -568,8 +552,7 @@ class ICMPv6Header(ConvertibleToBytes, BuildableFromBytes):
self.checksum = checksum
def to_bytes(self):
return bytearray([self.type, self.code]) + struct.pack(
">H", self.checksum)
return bytearray([self.type, self.code]) + struct.pack(">H", self.checksum)
@classmethod
def from_bytes(cls, data):
@@ -643,11 +626,7 @@ class FragmentHeader(ExtensionHeader):
def offset(self):
return self._fragm_offset
def __init__(self,
next_header=None,
fragm_offset=0,
more_flag=False,
identification=0):
def __init__(self, next_header=None, fragm_offset=0, more_flag=False, identification=0):
super(FragmentHeader, self).__init__(next_header, 0)
self._fragm_offset = fragm_offset
self._more_flag = more_flag
@@ -658,10 +637,7 @@ class FragmentHeader(ExtensionHeader):
def to_bytes(self):
data = bytearray([self.next_header, 0x00])
data += bytearray([
self._fragm_offset >> 5,
((self._fragm_offset << 3) | self._more_flag) & 0xff
])
data += bytearray([self._fragm_offset >> 5, ((self._fragm_offset << 3) | self._more_flag) & 0xff])
data += struct.pack(">I", self._identification)
return data
@@ -783,8 +759,7 @@ class HopByHopOptionHeader(ConvertibleToBytes, BuildableFromBytes):
return self._header_length
def __repr__(self):
return "HopByHopOptionHeader(type={}, length={})".format(
self.type, self.length)
return "HopByHopOptionHeader(type={}, length={})".format(self.type, self.length)
class HopByHopOption(ConvertibleToBytes):
@@ -814,8 +789,7 @@ class HopByHopOption(ConvertibleToBytes):
return len(self.header) + len(self.value)
def __repr__(self):
return "HopByHopOption(header={}, value={})".format(
self.header, self.value)
return "HopByHopOption(header={}, value={})".format(self.header, self.value)
class MPLOption(ConvertibleToBytes):
@@ -833,8 +807,7 @@ class MPLOption(ConvertibleToBytes):
self.seed_id = seed_id
def to_bytes(self):
smv = (((self.S & 0x03) << 6) | ((self.M & 0x01) << 5) |
((self.V & 0x01) << 4))
smv = (((self.S & 0x03) << 6) | ((self.M & 0x01) << 5) | ((self.V & 0x01) << 4))
return bytearray([smv, self.sequence]) + self.seed_id
@@ -855,8 +828,8 @@ class MPLOption(ConvertibleToBytes):
return self._header_length + self._seed_id_length[self.S]
def __repr__(self):
return "MPLOption(S={}, M={}, V={}, sequence={}, seed_id={})".format(
self.S, self.M, self.V, self.sequence, hexlify(self.seed_id))
return "MPLOption(S={}, M={}, V={}, sequence={}, seed_id={})".format(self.S, self.M, self.V, self.sequence,
hexlify(self.seed_id))
class IPv6PacketFactory(PacketFactory):
@@ -919,17 +892,13 @@ class IPv6PacketFactory(PacketFactory):
try:
return self._ehf[next_header]
except KeyError:
raise RuntimeError(
"Could not get Extension Header factory for next_header={}.".
format(next_header))
raise RuntimeError("Could not get Extension Header factory for next_header={}.".format(next_header))
def _get_upper_layer_protocol_factory_for(self, next_header):
try:
return self._ulpf[next_header]
except KeyError:
raise RuntimeError(
"Could not get Upper Layer Protocol factory for next_header={}."
.format(next_header))
raise RuntimeError("Could not get Upper Layer Protocol factory for next_header={}.".format(next_header))
def _parse_extension_headers(self, data, next_header, message_info):
extension_headers = []
@@ -956,11 +925,9 @@ class IPv6PacketFactory(PacketFactory):
message_info.source_ipv6 = ipv6_header.source_address
message_info.destination_ipv6 = ipv6_header.destination_address
next_header, extension_headers = self._parse_extension_headers(
data, ipv6_header.next_header, message_info)
next_header, extension_headers = self._parse_extension_headers(data, ipv6_header.next_header, message_info)
upper_layer_protocol = self._parse_upper_layer_protocol(
data, next_header, message_info)
upper_layer_protocol = self._parse_upper_layer_protocol(data, next_header, message_info)
return IPv6Packet(ipv6_header, upper_layer_protocol, extension_headers)
@@ -972,16 +939,13 @@ class HopByHopOptionsFactory(object):
_many_bytes_padding = 0x01
def __init__(self, options_factories=None):
self._options_factories = (options_factories
if options_factories is not None else {})
self._options_factories = (options_factories if options_factories is not None else {})
def _get_HopByHopOption_value_factory(self, _type):
try:
return self._options_factories[_type]
except KeyError:
raise RuntimeError(
"Could not find HopByHopOption value factory for type={}.".
format(_type))
raise RuntimeError("Could not find HopByHopOption value factory for type={}.".format(_type))
def parse(self, data, message_info):
options = []
@@ -998,8 +962,7 @@ class HopByHopOptionsFactory(object):
data.read(option_header.length)
else:
factory = self._get_HopByHopOption_value_factory(
option_header.type)
factory = self._get_HopByHopOption_value_factory(option_header.type)
option_data = data.read(option_header.length)
@@ -1029,13 +992,11 @@ class HopByHopFactory(PacketFactory):
# Note! Two bytes were read (next_header and hdr_ext_len) so they must
# be substracted from header length
hop_by_hop_length = (
self._calculate_extension_header_length(hdr_ext_len) - 2)
hop_by_hop_length = (self._calculate_extension_header_length(hdr_ext_len) - 2)
hop_by_hop_data = data.read(hop_by_hop_length)
options = self._hop_by_hop_options_factory.parse(
io.BytesIO(hop_by_hop_data), message_info)
options = self._hop_by_hop_options_factory.parse(io.BytesIO(hop_by_hop_data), message_info)
hop_by_hop = HopByHop(next_header, options, hdr_ext_len)
@@ -1103,8 +1064,7 @@ class UDPDatagramFactory(PacketFactory):
header = self._udp_header_factory.parse(data, message_info)
# Update message payload length: UDP header (8B) + payload length
message_info.payload_length += len(header) + (len(data.getvalue()) -
data.tell())
message_info.payload_length += len(header) + (len(data.getvalue()) - data.tell())
message_info.src_port = header.src_port
message_info.dst_port = header.dst_port
@@ -1118,8 +1078,7 @@ class ICMPv6Factory(PacketFactory):
""" Factory that produces ICMPv6 messages from data. """
def __init__(self, body_factories=None):
self._body_factories = (body_factories
if body_factories is not None else {})
self._body_factories = (body_factories if body_factories is not None else {})
def _get_icmpv6_body_factory(self, _type):
try:
@@ -1127,9 +1086,8 @@ class ICMPv6Factory(PacketFactory):
except KeyError:
if "default" not in self._body_factories:
raise RuntimeError(
"Could not find specialized factory to parse ICMP body. "
"Unsupported ICMP type: {}".format(_type))
raise RuntimeError("Could not find specialized factory to parse ICMP body. "
"Unsupported ICMP type: {}".format(_type))
default_factory = self._body_factories["default"]
@@ -1143,8 +1101,7 @@ class ICMPv6Factory(PacketFactory):
factory = self._get_icmpv6_body_factory(header.type)
message_info.payload_length += len(header) + (len(data.getvalue()) -
data.tell())
message_info.payload_length += len(header) + (len(data.getvalue()) - data.tell())
return ICMPv6(header, factory.parse(data, message_info))
@@ -1233,8 +1190,7 @@ class ICMPv6DestinationUnreachable(ConvertibleToBytes, BuildableFromBytes):
unused = struct.unpack(">I", data.read(4))[0]
if unused != 0:
raise RuntimeError(
"Invalid value of unused field in the ICMPv6 Destination Unreachable data. Expected value: 0."
)
"Invalid value of unused field in the ICMPv6 Destination Unreachable data. Expected value: 0.")
return cls(bytearray(data.read()))