summaryrefslogtreecommitdiff
path: root/Lib/ipaddress.py
diff options
context:
space:
mode:
authorNick Coghlan <ncoghlan@gmail.com>2012-06-17 16:33:00 +1000
committerNick Coghlan <ncoghlan@gmail.com>2012-06-17 16:33:00 +1000
commit8671c2512aa28e5ba1249283611ee92a2275a9f2 (patch)
tree3d8491f15b46725bcfd6c8cd649f2e929d2975b2 /Lib/ipaddress.py
parent6ea5d822ee0dc8820e0352d9a49baa0d0c7003a2 (diff)
downloadcpython-8671c2512aa28e5ba1249283611ee92a2275a9f2.tar.gz
Improve an internal ipaddress test, add a comment explaining why treating networks as containers of interfaces rather than addresses would prove confusing
Diffstat (limited to 'Lib/ipaddress.py')
-rw-r--r--Lib/ipaddress.py21
1 files changed, 10 insertions, 11 deletions
diff --git a/Lib/ipaddress.py b/Lib/ipaddress.py
index abbdcf88ae..05ea4533ff 100644
--- a/Lib/ipaddress.py
+++ b/Lib/ipaddress.py
@@ -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):
@@ -727,12 +728,12 @@ class _BaseNetwork(_IPAddressBase):
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):