mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Improve an internal ipaddress test, add a comment explaining why treating networks as containers of interfaces rather than addresses would prove confusing
This commit is contained in:
parent
5b0dac12b8
commit
d972265df8
2 changed files with 31 additions and 17 deletions
|
@ -416,6 +416,11 @@ class _IPAddressBase:
|
|||
"""Return the shorthand version of the IP address as a string."""
|
||||
return str(self)
|
||||
|
||||
@property
|
||||
def version(self):
|
||||
msg = '%200s has no version specified' % (type(self),)
|
||||
raise NotImplementedError(msg)
|
||||
|
||||
def _ip_int_from_prefix(self, prefixlen=None):
|
||||
"""Turn the prefix length netmask into a int for comparison.
|
||||
|
||||
|
@ -555,10 +560,6 @@ class _BaseAddress(_IPAddressBase):
|
|||
def _get_address_key(self):
|
||||
return (self._version, self)
|
||||
|
||||
@property
|
||||
def version(self):
|
||||
raise NotImplementedError('BaseIP has no version')
|
||||
|
||||
|
||||
class _BaseNetwork(_IPAddressBase):
|
||||
|
||||
|
@ -726,13 +727,13 @@ class _BaseNetwork(_IPAddressBase):
|
|||
"""Number of hosts in the current subnet."""
|
||||
return int(self.broadcast_address) - int(self.network_address) + 1
|
||||
|
||||
@property
|
||||
def version(self):
|
||||
raise NotImplementedError('BaseNet has no version')
|
||||
|
||||
@property
|
||||
def _address_class(self):
|
||||
raise NotImplementedError('BaseNet has no associated address class')
|
||||
# Returning bare address objects (rather than interfaces) allows for
|
||||
# more consistent behaviour across the network address, broadcast
|
||||
# address and individual host addresses.
|
||||
msg = '%200s has no associated address class' % (type(self),)
|
||||
raise NotImplementedError(msg)
|
||||
|
||||
@property
|
||||
def prefixlen(self):
|
||||
|
@ -1333,7 +1334,6 @@ class IPv4Network(_BaseV4, _BaseNetwork):
|
|||
|
||||
"""
|
||||
# Class to use when creating address objects
|
||||
# TODO (ncoghlan): Investigate using IPv4Interface instead
|
||||
_address_class = IPv4Address
|
||||
|
||||
def __init__(self, address, strict=True):
|
||||
|
@ -1945,7 +1945,6 @@ class IPv6Network(_BaseV6, _BaseNetwork):
|
|||
"""
|
||||
|
||||
# Class to use when creating address objects
|
||||
# TODO (ncoghlan): Investigate using IPv6Interface instead
|
||||
_address_class = IPv6Address
|
||||
|
||||
def __init__(self, address, strict=True):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue