Skip to content

Commit e59ec1b

Browse files
Rémi Lapeyremethane
authored andcommitted
bpo-35734: ipaddress: remove unused methods (GH-11591)
1 parent c88fece commit e59ec1b

File tree

2 files changed

+1
-71
lines changed

2 files changed

+1
-71
lines changed

Lib/ipaddress.py

Lines changed: 0 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,9 +1077,6 @@ class _BaseV4:
10771077
# Equivalent to 255.255.255.255 or 32 bits of 1's.
10781078
_ALL_ONES = (2**IPV4LENGTH) - 1
10791079

1080-
# the valid octets for host and netmasks. only useful for IPv4.
1081-
_valid_mask_octets = frozenset({255, 254, 252, 248, 240, 224, 192, 128, 0})
1082-
10831080
_max_prefixlen = IPV4LENGTH
10841081
# There are only a handful of valid v4 netmasks, so we cache them all
10851082
# when constructed (see _make_netmask()).
@@ -1182,58 +1179,6 @@ def _string_from_ip_int(cls, ip_int):
11821179
"""
11831180
return '.'.join(map(str, ip_int.to_bytes(4, 'big')))
11841181

1185-
def _is_valid_netmask(self, netmask):
1186-
"""Verify that the netmask is valid.
1187-
1188-
Args:
1189-
netmask: A string, either a prefix or dotted decimal
1190-
netmask.
1191-
1192-
Returns:
1193-
A boolean, True if the prefix represents a valid IPv4
1194-
netmask.
1195-
1196-
"""
1197-
mask = netmask.split('.')
1198-
if len(mask) == 4:
1199-
try:
1200-
for x in mask:
1201-
if int(x) not in self._valid_mask_octets:
1202-
return False
1203-
except ValueError:
1204-
# Found something that isn't an integer or isn't valid
1205-
return False
1206-
for idx, y in enumerate(mask):
1207-
if idx > 0 and y > mask[idx - 1]:
1208-
return False
1209-
return True
1210-
try:
1211-
netmask = int(netmask)
1212-
except ValueError:
1213-
return False
1214-
return 0 <= netmask <= self._max_prefixlen
1215-
1216-
def _is_hostmask(self, ip_str):
1217-
"""Test if the IP string is a hostmask (rather than a netmask).
1218-
1219-
Args:
1220-
ip_str: A string, the potential hostmask.
1221-
1222-
Returns:
1223-
A boolean, True if the IP string is a hostmask.
1224-
1225-
"""
1226-
bits = ip_str.split('.')
1227-
try:
1228-
parts = [x for x in map(int, bits) if x in self._valid_mask_octets]
1229-
except ValueError:
1230-
return False
1231-
if len(parts) != len(bits):
1232-
return False
1233-
if parts[0] < parts[-1]:
1234-
return True
1235-
return False
1236-
12371182
def _reverse_pointer(self):
12381183
"""Return the reverse DNS pointer name for the IPv4 address.
12391184

Lib/test/test_ipaddress.py

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,27 +1040,12 @@ def testZeroNetmask(self):
10401040
ipv4_zero_netmask = ipaddress.IPv4Interface('1.2.3.4/0')
10411041
self.assertEqual(int(ipv4_zero_netmask.network.netmask), 0)
10421042
self.assertEqual(ipv4_zero_netmask._prefix_from_prefix_string('0'), 0)
1043-
self.assertTrue(ipv4_zero_netmask._is_valid_netmask('0'))
1044-
self.assertTrue(ipv4_zero_netmask._is_valid_netmask('0.0.0.0'))
1045-
self.assertFalse(ipv4_zero_netmask._is_valid_netmask('invalid'))
10461043

10471044
ipv6_zero_netmask = ipaddress.IPv6Interface('::1/0')
10481045
self.assertEqual(int(ipv6_zero_netmask.network.netmask), 0)
10491046
self.assertEqual(ipv6_zero_netmask._prefix_from_prefix_string('0'), 0)
10501047

1051-
def testIPv4NetAndHostmasks(self):
1052-
net = self.ipv4_network
1053-
self.assertFalse(net._is_valid_netmask('invalid'))
1054-
self.assertTrue(net._is_valid_netmask('128.128.128.128'))
1055-
self.assertFalse(net._is_valid_netmask('128.128.128.127'))
1056-
self.assertFalse(net._is_valid_netmask('128.128.128.255'))
1057-
self.assertTrue(net._is_valid_netmask('255.128.128.128'))
1058-
1059-
self.assertFalse(net._is_hostmask('invalid'))
1060-
self.assertTrue(net._is_hostmask('128.255.255.255'))
1061-
self.assertFalse(net._is_hostmask('255.255.255.255'))
1062-
self.assertFalse(net._is_hostmask('1.2.3.4'))
1063-
1048+
def testIPv4Net(self):
10641049
net = ipaddress.IPv4Network('127.0.0.0/0.0.0.255')
10651050
self.assertEqual(net.prefixlen, 24)
10661051

0 commit comments

Comments
 (0)